From afbb127ab11bc5b487982c3495611541657b4369 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Fri, 17 Nov 2023 23:44:38 +0000 Subject: [PATCH] Update via seamapi/seam-connect@81cdbd278e2f1e1fed6982990d227a83d584b3b1 --- src/lib/seam/connect/openapi.ts | 313 +++++++++++++++--- src/lib/seam/connect/route-types.ts | 199 ++++++++++- src/lib/seam/connect/unstable/model-types.ts | 2 + .../access-codes/managed-access-code.ts | 134 ++++++-- .../connect/unstable/models/acs/credential.ts | 3 +- .../unstable/models/acs/credential_pool.ts | 19 ++ .../seam/connect/unstable/models/acs/index.ts | 1 + .../unstable/models/devices/managed-device.ts | 2 +- src/lib/seam/connect/unstable/schemas.ts | 2 + 9 files changed, 601 insertions(+), 74 deletions(-) create mode 100644 src/lib/seam/connect/unstable/models/acs/credential_pool.ts diff --git a/src/lib/seam/connect/openapi.ts b/src/lib/seam/connect/openapi.ts index 60c30dc8..f39fbbe7 100644 --- a/src/lib/seam/connect/openapi.ts +++ b/src/lib/seam/connect/openapi.ts @@ -3,34 +3,122 @@ export default { schemas: { access_code: { properties: { - access_code_id: { format: 'uuid', type: 'string' }, - code: { nullable: true, type: 'string' }, - common_code_key: { nullable: true, type: 'string' }, - created_at: { format: 'date-time', type: 'string' }, - device_id: { format: 'uuid', type: 'string' }, - ends_at: { format: 'date-time', nullable: true, type: 'string' }, - errors: { nullable: true }, - is_backup: { type: 'boolean' }, - is_backup_access_code_available: { type: 'boolean' }, - is_external_modification_allowed: { type: 'boolean' }, - is_managed: { enum: [true], type: 'boolean' }, - is_offline_access_code: { type: 'boolean' }, - is_one_time_use: { type: 'boolean' }, - is_scheduled_on_device: { type: 'boolean' }, - is_waiting_for_code_assignment: { type: 'boolean' }, - name: { nullable: true, type: 'string' }, + access_code_id: { + description: 'Unique identifier for the access code.', + format: 'uuid', + type: 'string', + }, + code: { + description: + 'Code used for access. Typically, a numeric or alphanumeric string.', + nullable: true, + type: 'string', + }, + common_code_key: { + description: + 'Unique identifier for a group of access codes that share the same code.', + nullable: true, + type: 'string', + }, + created_at: { + description: 'Date and time at which the access code was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: + 'Unique identifier for the device associated with the access code.', + format: 'uuid', + type: 'string', + }, + ends_at: { + description: + 'Date and time after which the time-bound access code becomes inactive.', + format: 'date-time', + nullable: true, + type: 'string', + }, + errors: { + description: + 'Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.', + nullable: true, + }, + is_backup: { + description: 'Indicates whether the access code is a backup code.', + type: 'boolean', + }, + is_backup_access_code_available: { + description: + 'Indicates whether a backup access code is available for use if the primary access code is lost or compromised.', + type: 'boolean', + }, + is_external_modification_allowed: { + description: + 'Indicates whether changes to the access code from external sources are permitted.', + type: 'boolean', + }, + is_managed: { + description: 'Indicates whether Seam manages the access code.', + enum: [true], + type: 'boolean', + }, + is_offline_access_code: { + description: + 'Indicates whether the access code is intended for use in offline scenarios. If "true," this code can be created on a device without a network connection.', + type: 'boolean', + }, + is_one_time_use: { + description: + 'Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use.', + type: 'boolean', + }, + is_scheduled_on_device: { + description: + 'Indicates whether the code is set on the device according to a preconfigured schedule.', + type: 'boolean', + }, + is_waiting_for_code_assignment: { + description: + 'Indicates whether the access code is waiting for a code assignment.', + type: 'boolean', + }, + name: { + description: + 'Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes.', + nullable: true, + type: 'string', + }, pulled_backup_access_code_id: { + description: + 'Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code.', format: 'uuid', nullable: true, type: 'string', }, - starts_at: { format: 'date-time', nullable: true, type: 'string' }, + starts_at: { + description: + 'Date and time at which the time-bound access code becomes active.', + format: 'date-time', + nullable: true, + type: 'string', + }, status: { + description: + '\n Current status of the access code within the operational lifecycle. Values are "setting," a transitional phase that indicates that the code is being configured or activated; "set", which indicates that the code is active and operational; "unset," which indicates a deactivated or unused state, either before activation or after deliberate deactivation; "removing," which indicates a transitional period in which the code is being deleted or made inactive; and "unknown," which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting.\n ', enum: ['setting', 'set', 'unset', 'removing', 'unknown'], type: 'string', }, - type: { enum: ['time_bound', 'ongoing'], type: 'string' }, - warnings: { nullable: true }, + type: { + description: + 'Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration.', + enum: ['time_bound', 'ongoing'], + type: 'string', + }, + warnings: { + description: + 'Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention.', + nullable: true, + }, }, required: [ 'common_code_key', @@ -503,11 +591,11 @@ export default { manufacturer: { type: 'string' }, model: { properties: { - access_codes_supported: { type: 'boolean' }, accessory_keypad_supported: { type: 'boolean' }, display_name: { type: 'string' }, manufacturer_display_name: { type: 'string' }, offline_access_codes_supported: { type: 'boolean' }, + online_access_codes_supported: { type: 'boolean' }, }, required: ['display_name', 'manufacturer_display_name'], type: 'object', @@ -1441,18 +1529,66 @@ export default { }, unmanaged_access_code: { properties: { - access_code_id: { format: 'uuid', type: 'string' }, - code: { nullable: true, type: 'string' }, - created_at: { format: 'date-time', type: 'string' }, - device_id: { format: 'uuid', type: 'string' }, - ends_at: { format: 'date-time', nullable: true, type: 'string' }, - errors: { nullable: true }, + access_code_id: { + description: 'Unique identifier for the access code.', + format: 'uuid', + type: 'string', + }, + code: { + description: + 'Code used for access. Typically, a numeric or alphanumeric string.', + nullable: true, + type: 'string', + }, + created_at: { + description: 'Date and time at which the access code was created.', + format: 'date-time', + type: 'string', + }, + device_id: { + description: + 'Unique identifier for the device associated with the access code.', + format: 'uuid', + type: 'string', + }, + ends_at: { + description: + 'Date and time after which the time-bound access code becomes inactive.', + format: 'date-time', + nullable: true, + type: 'string', + }, + errors: { + description: + 'Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.', + nullable: true, + }, is_managed: { enum: [false], type: 'boolean' }, - name: { nullable: true, type: 'string' }, - starts_at: { format: 'date-time', nullable: true, type: 'string' }, + name: { + description: + 'Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes.', + nullable: true, + type: 'string', + }, + starts_at: { + description: + 'Date and time at which the time-bound access code becomes active.', + format: 'date-time', + nullable: true, + type: 'string', + }, status: { enum: ['set'], type: 'string' }, - type: { enum: ['time_bound', 'ongoing'], type: 'string' }, - warnings: { nullable: true }, + type: { + description: + 'Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration.', + enum: ['time_bound', 'ongoing'], + type: 'string', + }, + warnings: { + description: + 'Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention.', + nullable: true, + }, }, required: [ 'type', @@ -3018,6 +3154,81 @@ export default { 'x-fern-sdk-method-name': 'remove_user', }, }, + '/acs/credential_pools/list': { + post: { + operationId: 'acsCredentialPoolsListPost', + requestBody: { + content: { + 'application/json': { + schema: { + properties: { + acs_system_id: { format: 'uuid', type: 'string' }, + }, + required: ['acs_system_id'], + type: 'object', + }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: { + properties: { + acs_credential_pools: { + items: { + properties: { + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, + acs_system_id: { format: 'uuid', type: 'string' }, + created_at: { format: 'date-time', type: 'string' }, + display_name: { minLength: 1, type: 'string' }, + external_type: { + enum: ['hid_part_number'], + type: 'string', + }, + external_type_display_name: { type: 'string' }, + workspace_id: { format: 'uuid', type: 'string' }, + }, + required: [ + 'acs_credential_pool_id', + 'acs_system_id', + 'display_name', + 'external_type', + 'external_type_display_name', + 'created_at', + 'workspace_id', + ], + type: 'object', + }, + type: 'array', + }, + ok: { type: 'boolean' }, + }, + required: ['acs_credential_pools', 'ok'], + type: 'object', + }, + }, + }, + description: 'OK', + }, + 400: { description: 'Bad Request' }, + 401: { description: 'Unauthorized' }, + }, + security: [ + { access_token: [], seam_workspace: [] }, + { seam_client_session_token: [] }, + { client_session_token: [] }, + ], + summary: '/acs/credential_pools/list', + tags: [], + 'x-fern-sdk-group-name': ['acs', 'credential_pools'], + 'x-fern-sdk-method-name': 'list', + }, + }, '/acs/credentials/assign': { patch: { operationId: 'acsCredentialsAssignPatch', @@ -3044,6 +3255,10 @@ export default { acs_credential: { properties: { acs_credential_id: { format: 'uuid', type: 'string' }, + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, acs_system_id: { format: 'uuid', type: 'string' }, acs_user_id: { format: 'uuid', type: 'string' }, code: { nullable: true, type: 'string' }, @@ -3053,7 +3268,7 @@ export default { enum: [ 'pti_card', 'brivo_credential', - 'hid_cm_credential', + 'hid_credential', ], type: 'string', }, @@ -3118,6 +3333,10 @@ export default { acs_credential: { properties: { acs_credential_id: { format: 'uuid', type: 'string' }, + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, acs_system_id: { format: 'uuid', type: 'string' }, acs_user_id: { format: 'uuid', type: 'string' }, code: { nullable: true, type: 'string' }, @@ -3127,7 +3346,7 @@ export default { enum: [ 'pti_card', 'brivo_credential', - 'hid_cm_credential', + 'hid_credential', ], type: 'string', }, @@ -3195,6 +3414,10 @@ export default { acs_credential: { properties: { acs_credential_id: { format: 'uuid', type: 'string' }, + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, acs_system_id: { format: 'uuid', type: 'string' }, acs_user_id: { format: 'uuid', type: 'string' }, code: { nullable: true, type: 'string' }, @@ -3204,7 +3427,7 @@ export default { enum: [ 'pti_card', 'brivo_credential', - 'hid_cm_credential', + 'hid_credential', ], type: 'string', }, @@ -3314,6 +3537,10 @@ export default { acs_credential: { properties: { acs_credential_id: { format: 'uuid', type: 'string' }, + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, acs_system_id: { format: 'uuid', type: 'string' }, acs_user_id: { format: 'uuid', type: 'string' }, code: { nullable: true, type: 'string' }, @@ -3323,7 +3550,7 @@ export default { enum: [ 'pti_card', 'brivo_credential', - 'hid_cm_credential', + 'hid_credential', ], type: 'string', }, @@ -3410,6 +3637,10 @@ export default { items: { properties: { acs_credential_id: { format: 'uuid', type: 'string' }, + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, acs_system_id: { format: 'uuid', type: 'string' }, acs_user_id: { format: 'uuid', type: 'string' }, code: { nullable: true, type: 'string' }, @@ -3419,7 +3650,7 @@ export default { enum: [ 'pti_card', 'brivo_credential', - 'hid_cm_credential', + 'hid_credential', ], type: 'string', }, @@ -3489,6 +3720,10 @@ export default { acs_credential: { properties: { acs_credential_id: { format: 'uuid', type: 'string' }, + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, acs_system_id: { format: 'uuid', type: 'string' }, acs_user_id: { format: 'uuid', type: 'string' }, code: { nullable: true, type: 'string' }, @@ -3498,7 +3733,7 @@ export default { enum: [ 'pti_card', 'brivo_credential', - 'hid_cm_credential', + 'hid_credential', ], type: 'string', }, @@ -3563,6 +3798,10 @@ export default { acs_credential: { properties: { acs_credential_id: { format: 'uuid', type: 'string' }, + acs_credential_pool_id: { + format: 'uuid', + type: 'string', + }, acs_system_id: { format: 'uuid', type: 'string' }, acs_user_id: { format: 'uuid', type: 'string' }, code: { nullable: true, type: 'string' }, @@ -3572,7 +3811,7 @@ export default { enum: [ 'pti_card', 'brivo_credential', - 'hid_cm_credential', + 'hid_credential', ], type: 'string', }, diff --git a/src/lib/seam/connect/route-types.ts b/src/lib/seam/connect/route-types.ts index b8c47855..ac2c561f 100644 --- a/src/lib/seam/connect/route-types.ts +++ b/src/lib/seam/connect/route-types.ts @@ -50,26 +50,49 @@ export interface Routes { } } access_code: { + /** Unique identifier for a group of access codes that share the same code. */ common_code_key: string | null + /** Indicates whether the code is set on the device according to a preconfigured schedule. */ is_scheduled_on_device?: boolean | undefined + /** Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration. */ type: 'time_bound' | 'ongoing' + /** Indicates whether the access code is waiting for a code assignment. */ is_waiting_for_code_assignment?: boolean | undefined + /** Unique identifier for the access code. */ access_code_id: string + /** Unique identifier for the device associated with the access code. */ device_id: string + /** Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. */ name: string | null + /** Code used for access. Typically, a numeric or alphanumeric string. */ code: string | null + /** Date and time at which the access code was created. */ created_at: string + /** Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues. */ errors?: any + /** Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention. */ warnings?: any + /** Indicates whether Seam manages the access code. */ is_managed: true + /** Date and time at which the time-bound access code becomes active. */ starts_at?: (string | null) | undefined + /** Date and time after which the time-bound access code becomes inactive. */ ends_at?: (string | null) | undefined + /** + Current status of the access code within the operational lifecycle. Values are "setting," a transitional phase that indicates that the code is being configured or activated; "set", which indicates that the code is active and operational; "unset," which indicates a deactivated or unused state, either before activation or after deliberate deactivation; "removing," which indicates a transitional period in which the code is being deleted or made inactive; and "unknown," which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. + */ status: 'setting' | 'set' | 'unset' | 'removing' | 'unknown' + /** Indicates whether a backup access code is available for use if the primary access code is lost or compromised. */ is_backup_access_code_available: boolean + /** Indicates whether the access code is a backup code. */ is_backup?: boolean | undefined + /** Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code. */ pulled_backup_access_code_id?: (string | null) | undefined + /** Indicates whether changes to the access code from external sources are permitted. */ is_external_modification_allowed: boolean + /** Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use. */ is_one_time_use: boolean + /** Indicates whether the access code is intended for use in offline scenarios. If "true," this code can be created on a device without a network connection. */ is_offline_access_code: boolean } } @@ -99,26 +122,49 @@ export interface Routes { formData: {} jsonResponse: { access_codes: Array<{ + /** Unique identifier for a group of access codes that share the same code. */ common_code_key: string | null + /** Indicates whether the code is set on the device according to a preconfigured schedule. */ is_scheduled_on_device?: boolean | undefined + /** Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration. */ type: 'time_bound' | 'ongoing' + /** Indicates whether the access code is waiting for a code assignment. */ is_waiting_for_code_assignment?: boolean | undefined + /** Unique identifier for the access code. */ access_code_id: string + /** Unique identifier for the device associated with the access code. */ device_id: string + /** Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. */ name: string | null + /** Code used for access. Typically, a numeric or alphanumeric string. */ code: string | null + /** Date and time at which the access code was created. */ created_at: string + /** Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues. */ errors?: any + /** Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention. */ warnings?: any + /** Indicates whether Seam manages the access code. */ is_managed: true + /** Date and time at which the time-bound access code becomes active. */ starts_at?: (string | null) | undefined + /** Date and time after which the time-bound access code becomes inactive. */ ends_at?: (string | null) | undefined + /** + Current status of the access code within the operational lifecycle. Values are "setting," a transitional phase that indicates that the code is being configured or activated; "set", which indicates that the code is active and operational; "unset," which indicates a deactivated or unused state, either before activation or after deliberate deactivation; "removing," which indicates a transitional period in which the code is being deleted or made inactive; and "unknown," which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. + */ status: 'setting' | 'set' | 'unset' | 'removing' | 'unknown' + /** Indicates whether a backup access code is available for use if the primary access code is lost or compromised. */ is_backup_access_code_available: boolean + /** Indicates whether the access code is a backup code. */ is_backup?: boolean | undefined + /** Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code. */ pulled_backup_access_code_id?: (string | null) | undefined + /** Indicates whether changes to the access code from external sources are permitted. */ is_external_modification_allowed: boolean + /** Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use. */ is_one_time_use: boolean + /** Indicates whether the access code is intended for use in offline scenarios. If "true," this code can be created on a device without a network connection. */ is_offline_access_code: boolean }> } @@ -191,26 +237,49 @@ export interface Routes { formData: {} jsonResponse: { access_code: { + /** Unique identifier for a group of access codes that share the same code. */ common_code_key: string | null + /** Indicates whether the code is set on the device according to a preconfigured schedule. */ is_scheduled_on_device?: boolean | undefined + /** Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration. */ type: 'time_bound' | 'ongoing' + /** Indicates whether the access code is waiting for a code assignment. */ is_waiting_for_code_assignment?: boolean | undefined + /** Unique identifier for the access code. */ access_code_id: string + /** Unique identifier for the device associated with the access code. */ device_id: string + /** Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. */ name: string | null + /** Code used for access. Typically, a numeric or alphanumeric string. */ code: string | null + /** Date and time at which the access code was created. */ created_at: string + /** Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues. */ errors?: any + /** Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention. */ warnings?: any + /** Indicates whether Seam manages the access code. */ is_managed: true + /** Date and time at which the time-bound access code becomes active. */ starts_at?: (string | null) | undefined + /** Date and time after which the time-bound access code becomes inactive. */ ends_at?: (string | null) | undefined + /** + Current status of the access code within the operational lifecycle. Values are "setting," a transitional phase that indicates that the code is being configured or activated; "set", which indicates that the code is active and operational; "unset," which indicates a deactivated or unused state, either before activation or after deliberate deactivation; "removing," which indicates a transitional period in which the code is being deleted or made inactive; and "unknown," which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. + */ status: 'setting' | 'set' | 'unset' | 'removing' | 'unknown' + /** Indicates whether a backup access code is available for use if the primary access code is lost or compromised. */ is_backup_access_code_available: boolean + /** Indicates whether the access code is a backup code. */ is_backup?: boolean | undefined + /** Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code. */ pulled_backup_access_code_id?: (string | null) | undefined + /** Indicates whether changes to the access code from external sources are permitted. */ is_external_modification_allowed: boolean + /** Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use. */ is_one_time_use: boolean + /** Indicates whether the access code is intended for use in offline scenarios. If "true," this code can be created on a device without a network connection. */ is_offline_access_code: boolean } } @@ -228,26 +297,49 @@ export interface Routes { formData: {} jsonResponse: { access_codes: Array<{ + /** Unique identifier for a group of access codes that share the same code. */ common_code_key: string | null + /** Indicates whether the code is set on the device according to a preconfigured schedule. */ is_scheduled_on_device?: boolean | undefined + /** Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration. */ type: 'time_bound' | 'ongoing' + /** Indicates whether the access code is waiting for a code assignment. */ is_waiting_for_code_assignment?: boolean | undefined + /** Unique identifier for the access code. */ access_code_id: string + /** Unique identifier for the device associated with the access code. */ device_id: string + /** Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. */ name: string | null + /** Code used for access. Typically, a numeric or alphanumeric string. */ code: string | null + /** Date and time at which the access code was created. */ created_at: string + /** Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues. */ errors?: any + /** Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention. */ warnings?: any + /** Indicates whether Seam manages the access code. */ is_managed: true + /** Date and time at which the time-bound access code becomes active. */ starts_at?: (string | null) | undefined + /** Date and time after which the time-bound access code becomes inactive. */ ends_at?: (string | null) | undefined + /** + Current status of the access code within the operational lifecycle. Values are "setting," a transitional phase that indicates that the code is being configured or activated; "set", which indicates that the code is active and operational; "unset," which indicates a deactivated or unused state, either before activation or after deliberate deactivation; "removing," which indicates a transitional period in which the code is being deleted or made inactive; and "unknown," which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. + */ status: 'setting' | 'set' | 'unset' | 'removing' | 'unknown' + /** Indicates whether a backup access code is available for use if the primary access code is lost or compromised. */ is_backup_access_code_available: boolean + /** Indicates whether the access code is a backup code. */ is_backup?: boolean | undefined + /** Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code. */ pulled_backup_access_code_id?: (string | null) | undefined + /** Indicates whether changes to the access code from external sources are permitted. */ is_external_modification_allowed: boolean + /** Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use. */ is_one_time_use: boolean + /** Indicates whether the access code is intended for use in offline scenarios. If "true," this code can be created on a device without a network connection. */ is_offline_access_code: boolean }> } @@ -263,26 +355,49 @@ export interface Routes { formData: {} jsonResponse: { backup_access_code: { + /** Unique identifier for a group of access codes that share the same code. */ common_code_key: string | null + /** Indicates whether the code is set on the device according to a preconfigured schedule. */ is_scheduled_on_device?: boolean | undefined + /** Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration. */ type: 'time_bound' | 'ongoing' + /** Indicates whether the access code is waiting for a code assignment. */ is_waiting_for_code_assignment?: boolean | undefined + /** Unique identifier for the access code. */ access_code_id: string + /** Unique identifier for the device associated with the access code. */ device_id: string + /** Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. */ name: string | null + /** Code used for access. Typically, a numeric or alphanumeric string. */ code: string | null + /** Date and time at which the access code was created. */ created_at: string + /** Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues. */ errors?: any + /** Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention. */ warnings?: any + /** Indicates whether Seam manages the access code. */ is_managed: true + /** Date and time at which the time-bound access code becomes active. */ starts_at?: (string | null) | undefined + /** Date and time after which the time-bound access code becomes inactive. */ ends_at?: (string | null) | undefined + /** + Current status of the access code within the operational lifecycle. Values are "setting," a transitional phase that indicates that the code is being configured or activated; "set", which indicates that the code is active and operational; "unset," which indicates a deactivated or unused state, either before activation or after deliberate deactivation; "removing," which indicates a transitional period in which the code is being deleted or made inactive; and "unknown," which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. + */ status: 'setting' | 'set' | 'unset' | 'removing' | 'unknown' + /** Indicates whether a backup access code is available for use if the primary access code is lost or compromised. */ is_backup_access_code_available: boolean + /** Indicates whether the access code is a backup code. */ is_backup?: boolean | undefined + /** Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code. */ pulled_backup_access_code_id?: (string | null) | undefined + /** Indicates whether changes to the access code from external sources are permitted. */ is_external_modification_allowed: boolean + /** Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use. */ is_one_time_use: boolean + /** Indicates whether the access code is intended for use in offline scenarios. If "true," this code can be created on a device without a network connection. */ is_offline_access_code: boolean } } @@ -300,16 +415,26 @@ export interface Routes { formData: {} jsonResponse: { access_code: { + /** Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration. */ type: 'time_bound' | 'ongoing' + /** Unique identifier for the access code. */ access_code_id: string + /** Unique identifier for the device associated with the access code. */ device_id: string + /** Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. */ name: string | null + /** Code used for access. Typically, a numeric or alphanumeric string. */ code: string | null + /** Date and time at which the access code was created. */ created_at: string + /** Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues. */ errors?: any + /** Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention. */ warnings?: any is_managed: false + /** Date and time at which the time-bound access code becomes active. */ starts_at?: (string | null) | undefined + /** Date and time after which the time-bound access code becomes inactive. */ ends_at?: (string | null) | undefined status: 'set' } @@ -381,16 +506,26 @@ export interface Routes { formData: {} jsonResponse: { access_code: { + /** Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration. */ type: 'time_bound' | 'ongoing' + /** Unique identifier for the access code. */ access_code_id: string + /** Unique identifier for the device associated with the access code. */ device_id: string + /** Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. */ name: string | null + /** Code used for access. Typically, a numeric or alphanumeric string. */ code: string | null + /** Date and time at which the access code was created. */ created_at: string + /** Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues. */ errors?: any + /** Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention. */ warnings?: any is_managed: false + /** Date and time at which the time-bound access code becomes active. */ starts_at?: (string | null) | undefined + /** Date and time after which the time-bound access code becomes inactive. */ ends_at?: (string | null) | undefined status: 'set' } @@ -408,16 +543,26 @@ export interface Routes { formData: {} jsonResponse: { access_codes: Array<{ + /** Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration. */ type: 'time_bound' | 'ongoing' + /** Unique identifier for the access code. */ access_code_id: string + /** Unique identifier for the device associated with the access code. */ device_id: string + /** Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. */ name: string | null + /** Code used for access. Typically, a numeric or alphanumeric string. */ code: string | null + /** Date and time at which the access code was created. */ created_at: string + /** Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues. */ errors?: any + /** Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention. */ warnings?: any is_managed: false + /** Date and time at which the time-bound access code becomes active. */ starts_at?: (string | null) | undefined + /** Date and time after which the time-bound access code becomes inactive. */ ends_at?: (string | null) | undefined status: 'set' }> @@ -610,6 +755,27 @@ export interface Routes { formData: {} jsonResponse: {} } + '/acs/credential_pools/list': { + route: '/acs/credential_pools/list' + method: 'GET' | 'POST' + queryParams: {} + jsonBody: {} + commonParams: { + acs_system_id: string + } + formData: {} + jsonResponse: { + acs_credential_pools: Array<{ + acs_credential_pool_id: string + acs_system_id: string + display_name: string + external_type: 'hid_part_number' + external_type_display_name: string + created_at: string + workspace_id: string + }> + } + } '/acs/credentials/assign': { route: '/acs/credentials/assign' method: 'PATCH' | 'POST' @@ -624,10 +790,11 @@ export interface Routes { acs_credential: { acs_credential_id: string acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined acs_system_id: string display_name: string code: string | null - external_type: 'pti_card' | 'brivo_credential' | 'hid_cm_credential' + external_type: 'pti_card' | 'brivo_credential' | 'hid_credential' external_type_display_name: string created_at: string workspace_id: string @@ -648,10 +815,11 @@ export interface Routes { acs_credential: { acs_credential_id: string acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined acs_system_id: string display_name: string code: string | null - external_type: 'pti_card' | 'brivo_credential' | 'hid_cm_credential' + external_type: 'pti_card' | 'brivo_credential' | 'hid_credential' external_type_display_name: string created_at: string workspace_id: string @@ -682,10 +850,11 @@ export interface Routes { acs_credential: { acs_credential_id: string acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined acs_system_id: string display_name: string code: string | null - external_type: 'pti_card' | 'brivo_credential' | 'hid_cm_credential' + external_type: 'pti_card' | 'brivo_credential' | 'hid_credential' external_type_display_name: string created_at: string workspace_id: string @@ -713,10 +882,11 @@ export interface Routes { acs_credentials: Array<{ acs_credential_id: string acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined acs_system_id: string display_name: string code: string | null - external_type: 'pti_card' | 'brivo_credential' | 'hid_cm_credential' + external_type: 'pti_card' | 'brivo_credential' | 'hid_credential' external_type_display_name: string created_at: string workspace_id: string @@ -737,10 +907,11 @@ export interface Routes { acs_credential: { acs_credential_id: string acs_user_id?: string | undefined + acs_credential_pool_id?: string | undefined acs_system_id: string display_name: string code: string | null - external_type: 'pti_card' | 'brivo_credential' | 'hid_cm_credential' + external_type: 'pti_card' | 'brivo_credential' | 'hid_credential' external_type_display_name: string created_at: string workspace_id: string @@ -1541,7 +1712,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined @@ -2248,7 +2419,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined @@ -3372,7 +3543,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined @@ -3958,7 +4129,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined @@ -4665,7 +4836,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined @@ -5251,7 +5422,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined @@ -6272,7 +6443,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined @@ -7009,7 +7180,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined @@ -7721,7 +7892,7 @@ export interface Routes { display_name: string manufacturer_display_name: string offline_access_codes_supported?: boolean | undefined - access_codes_supported?: boolean | undefined + online_access_codes_supported?: boolean | undefined accessory_keypad_supported?: boolean | undefined } has_direct_power?: boolean | undefined diff --git a/src/lib/seam/connect/unstable/model-types.ts b/src/lib/seam/connect/unstable/model-types.ts index 5da6b24b..1dc95aab 100644 --- a/src/lib/seam/connect/unstable/model-types.ts +++ b/src/lib/seam/connect/unstable/model-types.ts @@ -4,6 +4,8 @@ export type { AcsAccessGroupExternalType, AcsCredential, AcsCredentialExternalType, + AcsCredentialPool, + AcsCredentialPoolExternalType, AcsSystem, AcsSystemExternalType, AcsUser, diff --git a/src/lib/seam/connect/unstable/models/access-codes/managed-access-code.ts b/src/lib/seam/connect/unstable/models/access-codes/managed-access-code.ts index eeff66d0..8167df7f 100644 --- a/src/lib/seam/connect/unstable/models/access-codes/managed-access-code.ts +++ b/src/lib/seam/connect/unstable/models/access-codes/managed-access-code.ts @@ -1,27 +1,119 @@ import { z } from 'zod' export const managed_access_code = z.object({ - common_code_key: z.string().nullable(), - is_scheduled_on_device: z.boolean().optional(), - type: z.enum(['time_bound', 'ongoing']), - is_waiting_for_code_assignment: z.boolean().optional(), - access_code_id: z.string().uuid(), - device_id: z.string().uuid(), - name: z.string().nullable(), - code: z.string().nullable(), - created_at: z.string().datetime(), - errors: z.any(), - warnings: z.any(), - is_managed: z.literal(true), - starts_at: z.string().datetime().nullable().optional(), - ends_at: z.string().datetime().nullable().optional(), - status: z.enum(['setting', 'set', 'unset', 'removing', 'unknown']), - is_backup_access_code_available: z.boolean(), - is_backup: z.boolean().optional(), - pulled_backup_access_code_id: z.string().uuid().nullable().optional(), - is_external_modification_allowed: z.boolean(), - is_one_time_use: z.boolean(), - is_offline_access_code: z.boolean(), + common_code_key: z + .string() + .nullable() + .describe( + 'Unique identifier for a group of access codes that share the same code.', + ), + is_scheduled_on_device: z + .boolean() + .optional() + .describe( + 'Indicates whether the code is set on the device according to a preconfigured schedule.', + ), + type: z + .enum(['time_bound', 'ongoing']) + .describe( + 'Nature of the access code. Values are "ongoing" for access codes that are active continuously until deactivated manually or "time_bound" for access codes that have a specific duration.', + ), + is_waiting_for_code_assignment: z + .boolean() + .optional() + .describe( + 'Indicates whether the access code is waiting for a code assignment.', + ), + access_code_id: z + .string() + .uuid() + .describe('Unique identifier for the access code.'), + device_id: z + .string() + .uuid() + .describe( + 'Unique identifier for the device associated with the access code.', + ), + name: z + .string() + .nullable() + .describe( + 'Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes.', + ), + code: z + .string() + .nullable() + .describe( + 'Code used for access. Typically, a numeric or alphanumeric string.', + ), + created_at: z + .string() + .datetime() + .describe('Date and time at which the access code was created.'), + errors: z + .any() + .describe( + 'Collection of errors associated with the access code, structured in a dictionary format. A unique "error_code" keys each error. Each error entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the error. "created_at" is a date that indicates when the error was generated. This structure enables detailed tracking and timely response to critical issues.', + ), + warnings: z + .any() + .describe( + 'Collection of warnings associated with the access code, structured in a dictionary format. A unique "warning_code" keys each warning. Each warning entry is an object containing two fields: "message" and "created_at." "message" is a string that describes the warning. "created_at" is a date that indicates when the warning was generated. This structure enables detailed tracking and timely response to potential issues that are not critical but that may require attention.', + ), + is_managed: z + .literal(true) + .describe('Indicates whether Seam manages the access code.'), + starts_at: z + .string() + .datetime() + .nullable() + .optional() + .describe( + 'Date and time at which the time-bound access code becomes active.', + ), + ends_at: z + .string() + .datetime() + .nullable() + .optional() + .describe( + 'Date and time after which the time-bound access code becomes inactive.', + ), + status: z.enum(['setting', 'set', 'unset', 'removing', 'unknown']).describe(` + Current status of the access code within the operational lifecycle. Values are "setting," a transitional phase that indicates that the code is being configured or activated; "set", which indicates that the code is active and operational; "unset," which indicates a deactivated or unused state, either before activation or after deliberate deactivation; "removing," which indicates a transitional period in which the code is being deleted or made inactive; and "unknown," which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. + `), + is_backup_access_code_available: z + .boolean() + .describe( + 'Indicates whether a backup access code is available for use if the primary access code is lost or compromised.', + ), + is_backup: z + .boolean() + .optional() + .describe('Indicates whether the access code is a backup code.'), + pulled_backup_access_code_id: z + .string() + .uuid() + .nullable() + .optional() + .describe( + 'Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code.', + ), + is_external_modification_allowed: z + .boolean() + .describe( + 'Indicates whether changes to the access code from external sources are permitted.', + ), + is_one_time_use: z + .boolean() + .describe( + 'Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use.', + ), + is_offline_access_code: z + .boolean() + .describe( + 'Indicates whether the access code is intended for use in offline scenarios. If "true," this code can be created on a device without a network connection.', + ), }) export type ManagedAccessCode = z.infer diff --git a/src/lib/seam/connect/unstable/models/acs/credential.ts b/src/lib/seam/connect/unstable/models/acs/credential.ts index 137e65b6..afe720e5 100644 --- a/src/lib/seam/connect/unstable/models/acs/credential.ts +++ b/src/lib/seam/connect/unstable/models/acs/credential.ts @@ -3,7 +3,7 @@ import { z } from 'zod' export const acs_credential_external_type = z.enum([ 'pti_card', 'brivo_credential', - 'hid_cm_credential', + 'hid_credential', ]) export type AcsCredentialExternalType = z.infer< @@ -13,6 +13,7 @@ export type AcsCredentialExternalType = z.infer< export const acs_credential = z.object({ acs_credential_id: z.string().uuid(), acs_user_id: z.string().uuid().optional(), + acs_credential_pool_id: z.string().uuid().optional(), acs_system_id: z.string().uuid(), display_name: z.string().nonempty(), code: z.string().nullable(), diff --git a/src/lib/seam/connect/unstable/models/acs/credential_pool.ts b/src/lib/seam/connect/unstable/models/acs/credential_pool.ts new file mode 100644 index 00000000..c5f13a6b --- /dev/null +++ b/src/lib/seam/connect/unstable/models/acs/credential_pool.ts @@ -0,0 +1,19 @@ +import { z } from 'zod' + +export const acs_credential_pool_external_type = z.enum(['hid_part_number']) + +export type AcsCredentialPoolExternalType = z.infer< + typeof acs_credential_pool_external_type +> + +export const acs_credential_pool = z.object({ + acs_credential_pool_id: z.string().uuid(), + acs_system_id: z.string().uuid(), + display_name: z.string().nonempty(), + external_type: acs_credential_pool_external_type, + external_type_display_name: z.string(), + created_at: z.string().datetime(), + workspace_id: z.string().uuid(), +}) + +export type AcsCredentialPool = z.output diff --git a/src/lib/seam/connect/unstable/models/acs/index.ts b/src/lib/seam/connect/unstable/models/acs/index.ts index 4907f033..60e3915a 100644 --- a/src/lib/seam/connect/unstable/models/acs/index.ts +++ b/src/lib/seam/connect/unstable/models/acs/index.ts @@ -1,5 +1,6 @@ export * from './access_group.js' export * from './credential.js' +export * from './credential_pool.js' export * from './entrance.js' export * from './system.js' export * from './user.js' diff --git a/src/lib/seam/connect/unstable/models/devices/managed-device.ts b/src/lib/seam/connect/unstable/models/devices/managed-device.ts index 9b6f3846..6efa4539 100644 --- a/src/lib/seam/connect/unstable/models/devices/managed-device.ts +++ b/src/lib/seam/connect/unstable/models/devices/managed-device.ts @@ -18,7 +18,7 @@ export const common_device_properties = z.object({ manufacturer_display_name: z.string(), offline_access_codes_supported: z.boolean().optional(), - access_codes_supported: z.boolean().optional(), + online_access_codes_supported: z.boolean().optional(), accessory_keypad_supported: z.boolean().optional(), }), has_direct_power: z.boolean().optional(), diff --git a/src/lib/seam/connect/unstable/schemas.ts b/src/lib/seam/connect/unstable/schemas.ts index 9f69c143..ae256b4d 100644 --- a/src/lib/seam/connect/unstable/schemas.ts +++ b/src/lib/seam/connect/unstable/schemas.ts @@ -4,6 +4,8 @@ export { acs_access_group_external_type, acs_credential, acs_credential_external_type, + acs_credential_pool, + acs_credential_pool_external_type, acs_entrance, acs_system, acs_system_external_type,