From 8e09da6ac6738678455b17e04e6728b5db7cbf85 Mon Sep 17 00:00:00 2001 From: Andrii Balitskyi <84702959+andrii-balitskyi@users.noreply.github.com> Date: Fri, 20 Dec 2024 18:34:08 +0100 Subject: [PATCH] feat: Add routePath to Resource and blueprint.events (#141) Co-authored-by: Seam Bot --- src/lib/blueprint.test.ts | 2 +- src/lib/blueprint.ts | 130 +- ...d-common-openapi-schema-properties.test.ts | 38 + .../find-common-openapi-schema-properties.ts | 36 + src/lib/openapi/index.ts | 3 + .../{openapi-schema.ts => openapi/schemas.ts} | 16 + src/lib/{openapi.ts => openapi/types.ts} | 2 + test/fixtures/types/openapi.ts | 37 + test/snapshots/blueprint.test.ts.md | 150 + test/snapshots/blueprint.test.ts.snap | Bin 13964 -> 15048 bytes test/snapshots/seam-blueprint.test.ts.md | 12300 +++++++++++++--- test/snapshots/seam-blueprint.test.ts.snap | Bin 107309 -> 142238 bytes 12 files changed, 10293 insertions(+), 2421 deletions(-) create mode 100644 src/lib/openapi/find-common-openapi-schema-properties.test.ts create mode 100644 src/lib/openapi/find-common-openapi-schema-properties.ts create mode 100644 src/lib/openapi/index.ts rename src/lib/{openapi-schema.ts => openapi/schemas.ts} (83%) rename src/lib/{openapi.ts => openapi/types.ts} (97%) diff --git a/src/lib/blueprint.test.ts b/src/lib/blueprint.test.ts index a602dd06..2ab64520 100644 --- a/src/lib/blueprint.test.ts +++ b/src/lib/blueprint.test.ts @@ -8,7 +8,7 @@ import { type Method, type OpenapiAuthMethod, } from 'lib/blueprint.js' -import type { OpenapiOperation, OpenapiSchema } from 'lib/openapi.js' +import type { OpenapiOperation, OpenapiSchema } from 'lib/openapi/types.js' test('createProperties: assigns appropriate default values', (t) => { const minimalProperties = { diff --git a/src/lib/blueprint.ts b/src/lib/blueprint.ts index fb694905..a9f1736e 100644 --- a/src/lib/blueprint.ts +++ b/src/lib/blueprint.ts @@ -9,23 +9,27 @@ import type { CodeSampleDefinition, CodeSampleSyntax, } from './code-sample/schema.js' +import { findCommonOpenapiSchemaProperties } from './openapi/find-common-openapi-schema-properties.js' +import { + type AuthMethodSchema, + EventResourceSchema, + OpenapiOperationSchema, + PropertySchema, + ResourceSchema, +} from './openapi/schemas.js' import type { Openapi, OpenapiOperation, OpenapiPathItem, OpenapiPaths, OpenapiSchema, -} from './openapi.js' -import { - type AuthMethodSchema, - OpenapiOperationSchema, - PropertySchema, -} from './openapi-schema.js' +} from './openapi/types.js' export interface Blueprint { title: string routes: Route[] resources: Record + events: EventResource[] } export interface Route { @@ -43,6 +47,7 @@ export interface Resource { resourceType: string properties: Property[] description: string + routePath: string isDeprecated: boolean deprecationMessage: string isUndocumented: boolean @@ -51,6 +56,12 @@ export interface Resource { draftMessage: string } +interface EventResource extends Resource { + resourceType: 'event' + eventType: string + targetResourceType: string | null +} + export interface Namespace { path: string isDeprecated: boolean @@ -277,6 +288,43 @@ export interface BlueprintOptions { formatCode?: (content: string, syntax: CodeSampleSyntax) => Promise } +const createEvents = ( + schemas: Openapi['components']['schemas'], + resources: Record, +): EventResource[] => { + const eventSchema = schemas['event'] + if ( + eventSchema == null || + typeof eventSchema !== 'object' || + !('oneOf' in eventSchema) || + !Array.isArray(eventSchema.oneOf) + ) { + return [] + } + + return eventSchema.oneOf + .map((schema) => { + if ( + typeof schema !== 'object' || + schema.properties?.event_type?.enum?.[0] == null + ) { + return null + } + + const eventType = schema.properties.event_type.enum[0] + const targetResourceType = Object.keys(resources).find((resourceName) => + eventType.split('.').includes(resourceName), + ) + + return { + ...createResource('event', schema as OpenapiSchema), + eventType, + targetResourceType: targetResourceType ?? null, + } + }) + .filter((event): event is EventResource => event !== null) +} + export const createBlueprint = async ( typesModule: TypesModuleInput, { formatCode = async (content) => content }: BlueprintOptions = {}, @@ -291,10 +339,13 @@ export const createBlueprint = async ( formatCode, } + const resources = createResources(openapi.components.schemas) + return { title: openapi.info.title, routes: await createRoutes(openapi.paths, context), - resources: createResources(openapi.components.schemas), + resources, + events: createEvents(openapi.components.schemas, resources), } } @@ -752,39 +803,60 @@ const createParameter = ( } } -const createResources = ( +export const createResources = ( schemas: Openapi['components']['schemas'], ): Record => { return Object.entries(schemas).reduce>( - (acc, [schemaName, schema]) => { - if ( - typeof schema === 'object' && - schema !== null && - 'properties' in schema && - typeof schema.properties === 'object' && - schema.properties !== null - ) { + (resources, [schemaName, schema]) => { + const { success: isValidEventSchema, data: parsedEvent } = + EventResourceSchema.safeParse(schema) + if (isValidEventSchema) { + const commonProperties = findCommonOpenapiSchemaProperties( + parsedEvent.oneOf, + ) + const eventSchema: OpenapiSchema = { + properties: commonProperties, + type: 'object', + } + return { + ...resources, + [schemaName]: createResource(schemaName, eventSchema), + } + } + + const { success: isValidResourceSchema } = + ResourceSchema.safeParse(schema) + if (isValidResourceSchema) { return { - ...acc, - [schemaName]: { - resourceType: schemaName, - properties: createProperties(schema.properties, [schemaName]), - description: schema.description ?? '', - isDeprecated: schema.deprecated ?? false, - deprecationMessage: schema['x-deprecated'] ?? '', - isUndocumented: (schema['x-undocumented'] ?? '').length > 0, - undocumentedMessage: schema['x-undocumented'] ?? '', - isDraft: (schema['x-draft'] ?? '').length > 0, - draftMessage: schema['x-draft'] ?? '', - }, + ...resources, + [schemaName]: createResource(schemaName, schema), } } - return acc + + return resources }, {}, ) } +const createResource = ( + schemaName: string, + schema: OpenapiSchema, +): Resource => { + return { + resourceType: schemaName, + properties: createProperties(schema.properties ?? {}, [schemaName]), + description: schema.description ?? '', + isDeprecated: schema.deprecated ?? false, + routePath: schema['x-route-path'] ?? '', + deprecationMessage: schema['x-deprecated'] ?? '', + isUndocumented: (schema['x-undocumented'] ?? '').length > 0, + undocumentedMessage: schema['x-undocumented'] ?? '', + isDraft: (schema['x-draft'] ?? '').length > 0, + draftMessage: schema['x-draft'] ?? '', + } +} + const createResponse = ( operation: OpenapiOperation, path: string, diff --git a/src/lib/openapi/find-common-openapi-schema-properties.test.ts b/src/lib/openapi/find-common-openapi-schema-properties.test.ts new file mode 100644 index 00000000..9ce4bbcd --- /dev/null +++ b/src/lib/openapi/find-common-openapi-schema-properties.test.ts @@ -0,0 +1,38 @@ +import test from 'ava' + +import type { OpenapiSchema } from 'lib/openapi/types.js' + +import { findCommonOpenapiSchemaProperties } from './find-common-openapi-schema-properties.js' + +test('findCommonOpenapiSchemaProperties: extracts common properties from openapi schemas', (t) => { + const schemas: OpenapiSchema[] = [ + { + type: 'object', + properties: { + event_id: { type: 'string', format: 'uuid' }, + event_type: { type: 'string' }, + created_at: { type: 'string', format: 'date-time' }, + foo_id: { type: 'string' }, + }, + }, + { + type: 'object', + properties: { + event_id: { type: 'string', format: 'uuid' }, + event_type: { type: 'string' }, + created_at: { type: 'string', format: 'date-time' }, + bar_id: { type: 'string' }, + }, + }, + ] + + const commonProps = findCommonOpenapiSchemaProperties(schemas) + const commonKeys = Object.keys(commonProps) + + t.is(commonKeys.length, 3) + t.true( + ['event_id', 'event_type', 'created_at'].every((key) => + commonKeys.includes(key), + ), + ) +}) diff --git a/src/lib/openapi/find-common-openapi-schema-properties.ts b/src/lib/openapi/find-common-openapi-schema-properties.ts new file mode 100644 index 00000000..10b18c13 --- /dev/null +++ b/src/lib/openapi/find-common-openapi-schema-properties.ts @@ -0,0 +1,36 @@ +import type { OpenapiSchema } from 'lib/openapi/types.js' + +export function findCommonOpenapiSchemaProperties( + schemas: OpenapiSchema[], +): Record { + const firstSchema = schemas[0] + if (schemas.length === 0 || firstSchema?.properties == null) { + return {} + } + + return Object.entries(firstSchema.properties).reduce< + Record + >((commonProps, [propKey, propValue]) => { + const isPropInAllSchemas = schemas.every((schema) => + Object.keys(schema.properties ?? {}).includes(propKey), + ) + + if (!isPropInAllSchemas) { + return commonProps + } + + if ('enum' in propValue) { + const mergedEnumValues = schemas.reduce((allEnums, schema) => { + const enumValues = schema.properties?.[propKey]?.enum ?? [] + return [...new Set([...allEnums, ...enumValues])] + }, []) + + return { + ...commonProps, + [propKey]: { ...propValue, enum: mergedEnumValues }, + } + } + + return { ...commonProps, [propKey]: propValue } + }, {}) +} diff --git a/src/lib/openapi/index.ts b/src/lib/openapi/index.ts new file mode 100644 index 00000000..104c92f3 --- /dev/null +++ b/src/lib/openapi/index.ts @@ -0,0 +1,3 @@ +export * from './find-common-openapi-schema-properties.js' +export * from './schemas.js' +export * from './types.js' diff --git a/src/lib/openapi-schema.ts b/src/lib/openapi/schemas.ts similarity index 83% rename from src/lib/openapi-schema.ts rename to src/lib/openapi/schemas.ts index fb84a20b..0ec83345 100644 --- a/src/lib/openapi-schema.ts +++ b/src/lib/openapi/schemas.ts @@ -94,3 +94,19 @@ export const PropertySchema: z.ZodSchema = z.object({ $ref: z.string().optional(), format: z.string().optional(), }) + +export const ResourceSchema = z.object({ + type: z.literal('object'), + properties: z.record(z.string(), PropertySchema), + required: z.array(z.string()).default([]), + description: z.string().default(''), + 'x-route-path': z.string().default(''), + 'x-undocumented': z.string().default(''), + 'x-deprecated': z.string().default(''), + 'x-draft': z.string().default(''), +}) + +export const EventResourceSchema = z.object({ + discriminator: z.object({ propertyName: z.string() }), + oneOf: z.array(ResourceSchema), +}) diff --git a/src/lib/openapi.ts b/src/lib/openapi/types.ts similarity index 97% rename from src/lib/openapi.ts rename to src/lib/openapi/types.ts index 6df44b12..7c6e7a3d 100644 --- a/src/lib/openapi.ts +++ b/src/lib/openapi/types.ts @@ -71,12 +71,14 @@ export interface OpenapiSchema { items?: OpenapiSchema $ref?: string required?: string[] + enum?: string[] format?: string description?: string deprecated?: boolean 'x-deprecated'?: string 'x-draft'?: string 'x-undocumented'?: string + 'x-route-path'?: string } export interface OpenapiComponents { diff --git a/test/fixtures/types/openapi.ts b/test/fixtures/types/openapi.ts index d64b13fb..f88051b9 100644 --- a/test/fixtures/types/openapi.ts +++ b/test/fixtures/types/openapi.ts @@ -53,6 +53,7 @@ export default { }, }, required: ['foo_id', 'name'], + 'x-route-path': '/foos', }, plane: { type: 'object', @@ -69,6 +70,7 @@ export default { }, }, required: ['plane_id', 'name'], + 'x-route-path': '/planes', }, deprecated_resource: { type: 'object', @@ -83,6 +85,7 @@ export default { required: ['deprecated_resource_id'], deprecated: true, 'x-deprecated': 'This resource is deprecated', + 'x-route-path': '/deprecated/resources', }, draft_resource: { type: 'object', @@ -96,6 +99,7 @@ export default { }, required: ['draft_resource_id'], 'x-draft': 'This resource is draft', + 'x-route-path': '/draft/resources', }, undocumented_resource: { type: 'object', @@ -109,6 +113,39 @@ export default { }, required: ['undocumented_resource_id'], 'x-undocumented': 'This resource is undocumented', + 'x-route-path': '/undocumented/resources', + }, + event: { + oneOf: [ + { + type: 'object', + description: 'A foo.created event', + properties: { + event_id: { + description: 'Event ID', + format: 'uuid', + type: 'string', + }, + event_type: { + description: 'Type of event', + type: 'string', + enum: ['foo.created'], + }, + foo_id: { + description: 'ID of the foo that was created', + format: 'uuid', + type: 'string', + }, + created_at: { + description: 'When the event occurred', + type: 'string', + format: 'date-time', + }, + }, + required: ['event_id', 'event_type', 'foo_id', 'created_at'], + 'x-route-path': '/foos', + }, + ], }, }, }, diff --git a/test/snapshots/blueprint.test.ts.md b/test/snapshots/blueprint.test.ts.md index ed7e97a1..74ad027e 100644 --- a/test/snapshots/blueprint.test.ts.md +++ b/test/snapshots/blueprint.test.ts.md @@ -9,6 +9,76 @@ Generated by [AVA](https://avajs.dev). > blueprint { + events: [ + { + deprecationMessage: '', + description: 'A foo.created event', + draftMessage: '', + eventType: 'foo.created', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Event ID', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Type of event', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'foo.created', + }, + ], + }, + { + deprecationMessage: '', + description: 'ID of the foo that was created', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'foo_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'When the event occurred', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '/foos', + targetResourceType: 'foo', + undocumentedMessage: '', + }, + ], resources: { deprecated_resource: { deprecationMessage: 'This resource is deprecated', @@ -32,6 +102,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'deprecated_resource', + routePath: '/deprecated/resources', undocumentedMessage: '', }, draft_resource: { @@ -56,6 +127,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'draft_resource', + routePath: '/draft/resources', undocumentedMessage: '', }, foo: { @@ -190,6 +262,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'foo', + routePath: '/foos', undocumentedMessage: '', }, plane: { @@ -226,6 +299,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'plane', + routePath: '/planes', undocumentedMessage: '', }, undocumented_resource: { @@ -250,6 +324,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'undocumented_resource', + routePath: '/undocumented/resources', undocumentedMessage: 'This resource is undocumented', }, }, @@ -907,6 +982,76 @@ Generated by [AVA](https://avajs.dev). > blueprint { + events: [ + { + deprecationMessage: '', + description: 'A foo.created event', + draftMessage: '', + eventType: 'foo.created', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Event ID', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Type of event', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'foo.created', + }, + ], + }, + { + deprecationMessage: '', + description: 'ID of the foo that was created', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'foo_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'When the event occurred', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '/foos', + targetResourceType: 'foo', + undocumentedMessage: '', + }, + ], resources: { deprecated_resource: { deprecationMessage: 'This resource is deprecated', @@ -930,6 +1075,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'deprecated_resource', + routePath: '/deprecated/resources', undocumentedMessage: '', }, draft_resource: { @@ -954,6 +1100,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'draft_resource', + routePath: '/draft/resources', undocumentedMessage: '', }, foo: { @@ -1088,6 +1235,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'foo', + routePath: '/foos', undocumentedMessage: '', }, plane: { @@ -1124,6 +1272,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'plane', + routePath: '/planes', undocumentedMessage: '', }, undocumented_resource: { @@ -1148,6 +1297,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'undocumented_resource', + routePath: '/undocumented/resources', undocumentedMessage: 'This resource is undocumented', }, }, diff --git a/test/snapshots/blueprint.test.ts.snap b/test/snapshots/blueprint.test.ts.snap index 0d558af814b3098d738a8e97f1cdae4d141d378a..bb582328a9b033f850580bfa7976216557e4cb39 100644 GIT binary patch literal 15048 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 XoE+MCyGax;{-TS}4xt6ALqq*9k5E2! literal 13964 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 M8w@WALZ6`iFWcK5a{vGU diff --git a/test/snapshots/seam-blueprint.test.ts.md b/test/snapshots/seam-blueprint.test.ts.md index c3203117..31c816c5 100644 --- a/test/snapshots/seam-blueprint.test.ts.md +++ b/test/snapshots/seam-blueprint.test.ts.md @@ -9,18 +9,19 @@ Generated by [AVA](https://avajs.dev). > blueprint { - resources: { - access_code: { + events: [ + { deprecationMessage: '', - description: '', + description: 'An access code was created.', draftMessage: '', + eventType: 'access_code.created', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: 'Unique identifier for the access code.', + description: 'The ID of the access code.', draftMessage: '', format: 'id', isDeprecated: false, @@ -32,882 +33,932 @@ Generated by [AVA](https://avajs.dev). }, { deprecationMessage: '', - description: 'Code used for access. Typically, a numeric or alphanumeric string.', + description: 'The ID of the connected account.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'code', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Unique identifier for a group of access codes that share the same code.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'common_code_key', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the access code was created.', + description: 'The ID of the device.', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Unique identifier for the device associated with the access code.', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_id', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time after which the time-bound access code becomes inactive.', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'access_code.created', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'ends_at', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - 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.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An access code was changed.', + draftMessage: '', + eventType: 'access_code.changed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Indicates whether the access code is a backup code.', + description: 'The ID of the access code.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_backup', + jsonType: 'string', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether a backup access code is available for use if the primary access code is lost or compromised.', + description: 'The ID of the connected account.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_backup_access_code_available', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether changes to the access code from external sources are permitted.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_external_modification_allowed', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether Seam manages the access code.', + description: 'The ID of the device.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_managed', + jsonType: 'string', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - 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.', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_offline_access_code', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use.', + description: '', draftMessage: '', - format: 'boolean', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_one_time_use', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'access_code.changed', + }, + ], }, { deprecationMessage: '', - description: 'Indicates whether the code is set on the device according to a preconfigured schedule.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_scheduled_on_device', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether the access code is waiting for a code assignment.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_waiting_for_code_assignment', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An access code was natively scheduled on a device.', + draftMessage: '', + eventType: 'access_code.scheduled_on_device', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes.', + description: 'The ID of the access code.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_code_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'The code of the access code.', draftMessage: '', format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'name', + name: 'code', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code.', + description: 'The ID of the connected account.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'pulled_backup_access_code_id', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the time-bound access code becomes active.', + description: 'Time at which the event was created.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'starts_at', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: `␊ - 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.␊ - `, + description: 'The ID of the device.', draftMessage: '', - format: 'enum', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'status', + name: 'device_id', undocumentedMessage: '', - values: [ - { - name: 'setting', - }, - { - name: 'set', - }, - { - name: 'unset', - }, - { - name: 'removing', - }, - { - name: 'unknown', - }, - ], }, { deprecationMessage: '', - 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.', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', draftMessage: '', format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'type', + name: 'event_type', undocumentedMessage: '', values: [ { - name: 'time_bound', - }, - { - name: 'ongoing', + name: 'access_code.scheduled_on_device', }, ], }, { deprecationMessage: '', - 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.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'warnings', + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, ], - resourceType: 'access_code', + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', undocumentedMessage: '', }, - acs_access_group: { + { deprecationMessage: '', - description: `Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users.␊ - The \`acs_access_group\` object represents an [access group](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups) within an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).`, + description: 'An access code was set on a device.', draftMessage: '', + eventType: 'access_code.set_on_device', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { - deprecationMessage: 'Use `external_type`.', - description: '', + deprecationMessage: '', + description: 'The ID of the access code.', draftMessage: '', - format: 'enum', - isDeprecated: true, + format: 'id', + isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'access_group_type', + name: 'access_code_id', undocumentedMessage: '', - values: [ - { - name: 'pti_unit', - }, - { - name: 'pti_access_level', - }, - { - name: 'salto_ks_access_group', - }, - { - name: 'brivo_group', - }, - ], }, { - deprecationMessage: 'Use `external_type_display_name`.', - description: '', + deprecationMessage: '', + description: 'The code of the access code.', draftMessage: '', format: 'string', - isDeprecated: true, + isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'access_group_type_display_name', + name: 'code', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the access group.', + description: 'The ID of the connected account.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_access_group_id', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the access control system that contains the access group.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'id', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_system_id', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the access group was created.', + description: 'The ID of the device.', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Brand-specific terminology for the access group type.', + description: '', draftMessage: '', format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type', + name: 'event_type', undocumentedMessage: '', values: [ { - name: 'pti_unit', - }, - { - name: 'pti_access_level', - }, - { - name: 'salto_ks_access_group', - }, - { - name: 'brivo_group', + name: 'access_code.set_on_device', }, ], }, { deprecationMessage: '', - description: 'Display name that corresponds to the brand-specific terminology for the access group type.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type_display_name', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_managed', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An access code was removed from a device.', + draftMessage: '', + eventType: 'access_code.removed_from_device', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Name of the access group.', + description: 'The ID of the access code.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'name', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the access group.', + description: 'The ID of the connected account.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'workspace_id', + name: 'connected_account_id', undocumentedMessage: '', }, - ], - resourceType: 'acs_access_group', - undocumentedMessage: '', - }, - acs_credential: { - deprecationMessage: '', - description: `Means by which a user gains access at an entrance.␊ - The \`acs_credential\` object represents a credential that provides an ACS user access within an access control system. For each acs_credential object, you define the access method. You can also specify additional properties, such as a code.`, - draftMessage: '', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - properties: [ { deprecationMessage: '', - description: 'Access method for the credential. Supported values: `code`, `card`, `mobile_key`.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'enum', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'access_method', + name: 'created_at', undocumentedMessage: '', - values: [ - { - name: 'code', - }, - { - name: 'card', - }, - { - name: 'mobile_key', - }, - ], }, { deprecationMessage: '', - description: 'ID of the credential.', + description: 'The ID of the device.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_credential_id', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_credential_pool_id', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the access control system that contains the credential.', + description: '', draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_system_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'access_code.removed_from_device', + }, + ], }, { deprecationMessage: '', - description: 'ID of the ACS user to whom the credential belongs.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'id', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_user_id', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'card_number', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'There was an unusually long delay in setting an access code on a device.', + draftMessage: '', + eventType: 'access_code.delay_in_setting_on_device', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Access (PIN) code for the credential.', + description: 'The ID of the access code.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'code', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the credential was created.', + description: 'The ID of the connected account.', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Display name that corresponds to the credential type.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the credential validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.', + description: 'The ID of the device.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'ends_at', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Errors associated with the `acs_credential`.', + description: 'ID of the event.', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Brand-specific terminology for the credential type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.', + description: '', draftMessage: '', format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type', + name: 'event_type', undocumentedMessage: '', values: [ { - name: 'pti_card', - }, - { - name: 'brivo_credential', - }, - { - name: 'hid_credential', - }, - { - name: 'visionline_card', - }, - { - name: 'salto_ks_credential', + name: 'access_code.delay_in_setting_on_device', }, ], }, { deprecationMessage: '', - description: 'Display name that corresponds to the brand-specific terminology for the credential type.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type_display_name', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_issued', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An access code failed to be set on a device.', + draftMessage: '', + eventType: 'access_code.failed_to_set_on_device', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Indicates whether the latest state of the credential has been synced from Seam to the provider.', + description: 'The ID of the access code.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_latest_desired_state_synced_with_provider', + jsonType: 'string', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'The ID of the connected account.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_managed', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether the credential is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_multi_phone_sync_credential', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether the credential can only be used once. If "true," the code becomes invalid after the first use.', + description: 'The ID of the device.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_one_time_use', + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'datetime', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'issued_at', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'access_code.failed_to_set_on_device', + }, + ], }, { deprecationMessage: '', - description: 'Date and time at which the state of the credential was most recently synced from Seam to the provider.', + description: 'Time when the event occurred.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'latest_desired_state_synced_with_provider_at', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the parent credential.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'parent_acs_credential_id', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An access code was deleted.', + draftMessage: '', + eventType: 'access_code.deleted', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'The ID of the access code.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the credential validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + description: 'The code of the access code.', draftMessage: '', format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'starts_at', + name: 'code', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Visionline-specific metadata for the credential.', + description: 'The ID of the connected account.', draftMessage: '', - format: 'object', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'visionline_metadata', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'auto_join', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'enum', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'card_function_type', - undocumentedMessage: '', - values: [ - { - name: 'guest', - }, - { - name: 'staff', - }, - ], - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'card_id', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'list', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'array', - name: 'common_acs_entrance_ids', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'credential_id', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'list', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'array', - name: 'guest_acs_entrance_ids', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'is_valid', - undocumentedMessage: '', - }, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'The ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'list', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'array', - name: 'joiner_acs_credential_ids', - undocumentedMessage: '', + name: 'access_code.deleted', }, ], - undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Warnings associated with the `acs_credential`.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'warnings', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the credential.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, @@ -918,44 +969,47 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'acs_credential', + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', undocumentedMessage: '', }, - acs_credential_pool: { + { deprecationMessage: '', - description: '', + description: 'There was an unusually long delay in removing an access code from a device.', draftMessage: '', + eventType: 'access_code.delay_in_removing_from_device', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'The ID of the access code.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_credential_pool_id', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'The ID of the connected account.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_system_id', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', format: 'datetime', isDeprecated: false, @@ -967,14 +1021,26 @@ Generated by [AVA](https://avajs.dev). }, { deprecationMessage: '', - description: '', + description: 'The ID of the device.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { @@ -986,29 +1052,29 @@ Generated by [AVA](https://avajs.dev). isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type', + name: 'event_type', undocumentedMessage: '', values: [ { - name: 'hid_part_number', + name: 'access_code.delay_in_removing_from_device', }, ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type_display_name', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, @@ -1019,32 +1085,47 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'acs_credential_pool', + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', undocumentedMessage: '', }, - acs_credential_provisioning_automation: { + { deprecationMessage: '', - description: '', + description: 'An access code failed to be removed from a device.', draftMessage: '', + eventType: 'access_code.failed_to_remove_from_device', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'The ID of the access code.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_credential_provisioning_automation_id', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'The ID of the connected account.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', draftMessage: '', format: 'datetime', isDeprecated: false, @@ -1056,32 +1137,61 @@ Generated by [AVA](https://avajs.dev). }, { deprecationMessage: '', - description: '', + description: 'The ID of the device.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'credential_manager_acs_system_id', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'user_identity_id', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'access_code.failed_to_remove_from_device', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, @@ -1091,1227 +1201,820 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'acs_credential_provisioning_automation', + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', undocumentedMessage: '', }, - acs_entrance: { + { deprecationMessage: '', - description: 'Represents an [entrance](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).', + description: 'An access code was modified external to Seam.', draftMessage: '', + eventType: 'access_code.modified_external_to_seam', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: 'ID of the entrance.', + description: 'The ID of the access code.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_entrance_id', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the access control system that contains the entrance.', + description: 'The ID of the connected account.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_system_id', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'object', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'assa_abloy_vostio_metadata', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'number', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'number', - name: 'door_number', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'enum', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_type', - undocumentedMessage: '', - values: [ - { - name: 'CommonDoor', - }, - { - name: 'EntranceDoor', - }, - { - name: 'GuestDoor', - }, - { - name: 'Elevator', - }, - ], - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'pms_id', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'stand_open', - undocumentedMessage: '', - }, - ], + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the entrance was created.', + description: 'The ID of the device.', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Display name for the entrance.', + description: 'ID of the event.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'object', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'dormakaba_community_metadata', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'access_point_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'number', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'number', - name: 'common_area_number', - undocumentedMessage: '', - }, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'list', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'array', - name: 'inner_access_points_names', - undocumentedMessage: '', + name: 'access_code.modified_external_to_seam', }, ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An access code was deleted external to Seam.', + draftMessage: '', + eventType: 'access_code.deleted_external_to_seam', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'The ID of the access code.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_code_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'The ID of the connected account.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'The ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'object', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'latch_metadata', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'accessibility_type', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_type', - undocumentedMessage: '', - }, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'is_connected', - undocumentedMessage: '', + name: 'access_code.deleted_external_to_seam', }, ], - undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'object', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'salto_ks_metadata', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'battery_level', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'intrusion_alarm', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'left_open_alarm', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'lock_type', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'locked_state', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'online', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'privacy_mode', - undocumentedMessage: '', - }, - ], - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'object', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'object', - name: 'salto_space_metadata', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_description', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'ext_door_id', - undocumentedMessage: '', - }, - ], + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'object', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'visionline_metadata', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'enum', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_category', - undocumentedMessage: '', - values: [ - { - name: 'entrance', - }, - { - name: 'guest', - }, - { - name: 'elevator reader', - }, - { - name: 'common', - }, - { - name: 'common (PMS)', - }, - ], - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'door_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'list', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'array', - name: 'profiles', - undocumentedMessage: '', - }, - ], + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, ], - resourceType: 'acs_entrance', + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', undocumentedMessage: '', }, - acs_system: { + { deprecationMessage: '', - description: 'Represents an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).', + description: 'A backup access code was pulled from the backup access code pool and set on a device.', draftMessage: '', + eventType: 'access_code.backup_access_code_pulled', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: 'ID of the `acs_system`.', + description: 'The ID of the access code.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_system_id', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether the `acs_system` supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', + description: '', draftMessage: '', - format: 'boolean', + format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_add_acs_users_to_acs_access_groups', + jsonType: 'string', + name: 'backup_access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether it is possible to [launch enrollment automations](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) for the `acs_system`.', + description: 'The ID of the connected account.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_automate_enrollment', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether the `acs_system` supports creating [access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_create_acs_access_groups', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether the `acs_system` supports [removing users from access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', + description: 'The ID of the device.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remove_acs_users_from_acs_access_groups', + jsonType: 'string', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'IDs of the [connected accounts](https://docs.seam.co/latest/core-concepts/connected-accounts) associated with the `acs_system`.', + description: 'ID of the event.', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'connected_account_ids', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the `acs_system` was created.', + description: '', draftMessage: '', - format: 'datetime', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'access_code.backup_access_code_pulled', + }, + ], }, { deprecationMessage: '', - description: 'ID of the default credential manager acs_system for this access control system.', - draftMessage: 'Needs review', - format: 'id', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', isDeprecated: false, - isDraft: true, + isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'default_credential_manager_acs_system_id', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Errors associated with the `acs_system`.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An unmanaged access code was successfully converted to a managed access code.', + draftMessage: '', + eventType: 'access_code.unmanaged.converted_to_managed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Brand-specific terminology for the `acs_system` type.', + description: 'The ID of the access code.', draftMessage: '', - format: 'enum', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type', + name: 'access_code_id', undocumentedMessage: '', - values: [ - { - name: 'pti_site', - }, - { - name: 'alta_org', - }, - { - name: 'salto_ks_site', - }, - { - name: 'salto_space_system', - }, - { - name: 'brivo_account', - }, - { - name: 'hid_credential_manager_organization', - }, - { - name: 'visionline_system', - }, - { - name: 'assa_abloy_credential_service', - }, - { - name: 'latch_building', - }, - { - name: 'dormakaba_community', - }, - { - name: 'legic_connect', - }, - { - name: 'assa_abloy_vostio', - }, - { - name: 'assa_abloy_vostio_credential_service', - }, - ], }, { deprecationMessage: '', - description: 'Display name that corresponds to the brand-specific terminology for the `acs_system` type.', + description: 'The ID of the connected account.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type_display_name', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Alternative text for the `acs_system` image.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'image_alt_text', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'URL for the image that represents the `acs_system`.', + description: 'The ID of the device.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'image_url', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates if the `acs_system` is a credential manager.', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_credential_manager', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'object', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'location', - properties: [ + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: 'Time zone in which the `acs_system` is located.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'time_zone', - undocumentedMessage: '', + name: 'access_code.unmanaged.converted_to_managed', }, ], - undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Name of the `acs_system`.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'name', + name: 'occurred_at', undocumentedMessage: '', }, { - deprecationMessage: 'Use `external_type`.', - description: '', + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'enum', - isDeprecated: true, + format: 'id', + isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'system_type', + name: 'workspace_id', undocumentedMessage: '', - values: [ - { - name: 'pti_site', - }, - { - name: 'alta_org', - }, - { - name: 'salto_ks_site', - }, - { - name: 'salto_space_system', - }, - { - name: 'brivo_account', - }, - { - name: 'hid_credential_manager_organization', - }, - { - name: 'visionline_system', - }, - { - name: 'assa_abloy_credential_service', - }, - { - name: 'latch_building', - }, - { - name: 'dormakaba_community', - }, - { - name: 'legic_connect', - }, - { - name: 'assa_abloy_vostio', - }, - { - name: 'assa_abloy_vostio_credential_service', - }, - ], }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An unmanaged access code failed to be converted to a managed access code.', + draftMessage: '', + eventType: 'access_code.unmanaged.failed_to_convert_to_managed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { - deprecationMessage: 'Use `external_type_display_name`.', - description: '', + deprecationMessage: '', + description: 'The ID of the access code.', draftMessage: '', - format: 'string', - isDeprecated: true, + format: 'id', + isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'system_type_display_name', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'The ID of the connected account.', draftMessage: '', - format: 'object', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'visionline_metadata', - properties: [ - { - deprecationMessage: '', - description: 'IP address or hostname of the main Visionline server relative to the Seam Bridge on the local network.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'lan_address', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Keyset loaded into a reader. Mobile keys and reader administration tools securely authenticate only with readers programmed with a matching keyset.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'mobile_access_uuid', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Unique ID assigned by the ASSA ABLOY licensing team that identifies each hotel in your credential manager.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'system_id', - undocumentedMessage: '', - }, - ], + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Warnings associated with the `acs_system`.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'warnings', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_system`.', + description: 'The ID of the device.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'workspace_id', + name: 'device_id', undocumentedMessage: '', }, - ], - resourceType: 'acs_system', - undocumentedMessage: '', - }, - acs_user: { - deprecationMessage: '', - description: 'Represents a [user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).', - draftMessage: '', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - properties: [ { deprecationMessage: '', - description: '`starts_at` and `ends_at` timestamps for the `acs_user`\'s access.', - draftMessage: '', - format: 'object', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'object', - name: 'access_schedule', - properties: [ - { - deprecationMessage: '', - description: 'Date and time at which the user\'s access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', - draftMessage: '', - format: 'datetime', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'ends_at', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Date and time at which the user\'s access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', - draftMessage: '', - format: 'datetime', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'starts_at', - undocumentedMessage: '', - }, - ], - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'ID of the access control system that contains the `acs_user`.', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_system_id', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the `acs_user`.', + description: '', draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'acs_user_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'access_code.unmanaged.failed_to_convert_to_managed', + }, + ], }, { deprecationMessage: '', - description: 'Date and time at which the `acs_user` was created.', + description: 'Time when the event occurred.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Display name for the `acs_user`.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', - undocumentedMessage: '', - }, - { - deprecationMessage: 'use email_address.', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: true, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'email', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An unmanaged access code was created on a device.', + draftMessage: '', + eventType: 'access_code.unmanaged.created', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Email address of the `acs_user`.', + description: 'The ID of the access code.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'email_address', + name: 'access_code_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Errors associated with the `acs_user`.', + description: 'The ID of the connected account.', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Brand-specific terminology for the `acs_user` type.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'enum', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type', + name: 'created_at', undocumentedMessage: '', - values: [ - { - name: 'pti_user', - }, - { - name: 'brivo_user', - }, - { - name: 'hid_credential_manager_user', - }, - { - name: 'salto_site_user', - }, - { - name: 'latch_user', - }, - { - name: 'dormakaba_community_user', - }, - ], }, { deprecationMessage: '', - description: 'Display name that corresponds to the brand-specific terminology for the `acs_user` type.', + description: 'The ID of the device.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'external_type_display_name', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Full name of the `acs_user`.', + description: 'ID of the event.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'full_name', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'hid_acs_system_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'access_code.unmanaged.created', + }, + ], }, { deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: true, - jsonType: 'boolean', - name: 'is_latest_desired_state_synced_with_provider', - undocumentedMessage: 'Only used internally.', - }, - { - deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_managed', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether the `acs_user` is currently [suspended](https://docs.seam.co/latest/capability-guides/access-systems/user-management/suspending-and-unsuspending-users).', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_suspended', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An unmanaged access code was removed from a device.', + draftMessage: '', + eventType: 'access_code.unmanaged.removed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: '', + description: 'The ID of the access code.', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, - isUndocumented: true, + isUndocumented: false, jsonType: 'string', - name: 'latest_desired_state_synced_with_provider_at', - undocumentedMessage: 'Only used internally.', + name: 'access_code_id', + undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Phone number of the `acs_user` in E.164 format (for example, `+15555550100`).', + description: 'The ID of the connected account.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'phone_number', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Email address of the user identity associated with the `acs_user`.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'user_identity_email_address', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Full name of the user identity associated with the `acs_user`.', + description: 'The ID of the device.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'user_identity_full_name', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the user identity associated with the `acs_user`.', + description: 'ID of the event.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'user_identity_id', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Phone number of the user identity associated with the `acs_user` in E.164 format (for example, `+15555550100`).', + description: '', draftMessage: '', - format: 'string', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'user_identity_phone_number', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'access_code.unmanaged.removed', + }, + ], }, { deprecationMessage: '', - description: 'Warnings associated with the `acs_user`.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'warnings', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_user`.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, @@ -2322,338 +2025,390 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'acs_user', + resourceType: 'event', + routePath: '', + targetResourceType: 'access_code', undocumentedMessage: '', }, - client_session: { + { deprecationMessage: '', - description: '', + description: 'An ACS system was connected.', draftMessage: '', + eventType: 'acs_system.connected', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the ACS system.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'client_session_id', + name: 'acs_system_id', undocumentedMessage: '', }, { - deprecationMessage: '', - description: '', + deprecationMessage: 'Will be removed.', + description: 'ID of the connected account.', draftMessage: '', - format: 'list', - isDeprecated: false, + format: 'id', + isDeprecated: true, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'connect_webview_ids', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'connected_account_ids', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'number', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'number', - name: 'device_count', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'acs_system.connected', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'expires_at', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'token', + name: 'workspace_id', undocumentedMessage: '', }, - { - deprecationMessage: '', - description: '', + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'acs_system', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An ACS system was added.', + draftMessage: '', + eventType: 'acs_system.added', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the ACS system.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'user_identifier_key', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: 'Will be removed.', + description: 'ID of the connected account.', + draftMessage: '', + format: 'id', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'user_identity_ids', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'workspace_id', + name: 'event_id', undocumentedMessage: '', }, - ], - resourceType: 'client_session', - undocumentedMessage: '', - }, - connect_webview: { - deprecationMessage: '', - description: '', - draftMessage: '', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - properties: [ { - deprecationMessage: 'Unused. Will be removed.', + deprecationMessage: '', description: '', draftMessage: '', - format: 'list', - isDeprecated: true, + format: 'enum', + isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'accepted_devices', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'acs_system.added', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'accepted_providers', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { - deprecationMessage: 'Unused. Will be removed.', - description: '', + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', - isDeprecated: true, + format: 'id', + isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'any_device_allowed', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'acs_system', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An ACS system was disconnected.', + draftMessage: '', + eventType: 'acs_system.disconnected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the ACS system.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'any_provider_allowed', + jsonType: 'string', + name: 'acs_system_id', undocumentedMessage: '', }, { - deprecationMessage: '', - description: '', + deprecationMessage: 'Will be removed.', + description: 'ID of the connected account.', draftMessage: '', - format: 'datetime', - isDeprecated: false, + format: 'id', + isDeprecated: true, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'authorized_at', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'automatically_manage_new_devices', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'connect_webview_id', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'connected_account_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'acs_system.disconnected', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'record', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'custom_metadata', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'acs_system', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An ACS credential was deleted.', + draftMessage: '', + eventType: 'acs_credential.deleted', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', description: '', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'custom_redirect_failure_url', + name: 'acs_credential_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the ACS system.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'custom_redirect_url', + name: 'acs_system_id', undocumentedMessage: '', }, { - deprecationMessage: '', - description: '', + deprecationMessage: 'Will be removed.', + description: 'ID of the connected account.', draftMessage: '', - format: 'enum', - isDeprecated: false, + format: 'id', + isDeprecated: true, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_selection_mode', + name: 'connected_account_id', undocumentedMessage: '', - values: [ - { - name: 'none', - }, - { - name: 'single', - }, - { - name: 'multiple', - }, - ], }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'login_successful', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'selected_provider', + name: 'event_id', undocumentedMessage: '', }, { @@ -2665,47 +2420,29 @@ Generated by [AVA](https://avajs.dev). isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'status', + name: 'event_type', undocumentedMessage: '', values: [ { - name: 'pending', - }, - { - name: 'failed', - }, - { - name: 'authorized', + name: 'acs_credential.deleted', }, ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'url', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'wait_for_device_creation', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, @@ -2716,13 +2453,16 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'connect_webview', + resourceType: 'event', + routePath: '', + targetResourceType: 'acs_credential', undocumentedMessage: '', }, - connected_account: { + { deprecationMessage: '', - description: '', + description: 'An ACS credential was issued.', draftMessage: '', + eventType: 'acs_credential.issued', isDeprecated: false, isDraft: false, isUndocumented: false, @@ -2731,477 +2471,534 @@ Generated by [AVA](https://avajs.dev). deprecationMessage: '', description: '', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'account_type', + name: 'acs_credential_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the ACS system.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'account_type_display_name', + name: 'acs_system_id', undocumentedMessage: '', }, { - deprecationMessage: '', - description: '', + deprecationMessage: 'Will be removed.', + description: 'ID of the connected account.', draftMessage: '', - format: 'boolean', - isDeprecated: false, + format: 'id', + isDeprecated: true, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'automatically_manage_new_devices', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'id', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'connected_account_id', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'record', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'custom_metadata', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'acs_credential.issued', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'object', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'user_identifier', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'api_url', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'email', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'exclusive', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'phone', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'username', - undocumentedMessage: '', - }, - ], - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'list', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'array', - name: 'warnings', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, ], - resourceType: 'connected_account', + resourceType: 'event', + routePath: '', + targetResourceType: 'acs_credential', undocumentedMessage: '', }, - device: { + { deprecationMessage: '', - description: '', + description: 'An ACS user was deleted.', draftMessage: '', + eventType: 'acs_user.deleted', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the ACS system.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_cool', + jsonType: 'string', + name: 'acs_system_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_heat', + jsonType: 'string', + name: 'acs_user_id', undocumentedMessage: '', }, { - deprecationMessage: '', - description: '', + deprecationMessage: 'Will be removed.', + description: 'ID of the connected account.', draftMessage: '', - format: 'boolean', - isDeprecated: false, + format: 'id', + isDeprecated: true, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_heat_cool', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_program_offline_access_codes', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_program_online_access_codes', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'boolean', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remotely_lock', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'acs_user.deleted', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remotely_unlock', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_connection', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'acs_user', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An ACS encoder was added.', + draftMessage: '', + eventType: 'acs_encoder.added', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the ACS encoder.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_disconnection', + jsonType: 'string', + name: 'acs_encoder_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the ACS system.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_removal', + jsonType: 'string', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: 'Will be removed.', + description: 'ID of the connected account.', + draftMessage: '', + format: 'id', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_turn_off_hvac', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Collection of capabilities that the device supports when connected to Seam. Values are "access_code," which indicates that the device can manage and utilize digital PIN codes for secure access; "lock," which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; "noise_detection," which indicates that the device supports monitoring and responding to ambient noise levels; "thermostat," which indicates that the device can regulate and adjust indoor temperatures; and "battery," which indicates that the device can manage battery life and health.', + description: 'ID of the event.', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'capabilities_supported', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Unique identifier for the account associated with the device.', + description: '', draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'connected_account_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'acs_encoder.added', + }, + ], }, { deprecationMessage: '', - description: 'Date and time at which the device object was created.', + description: 'Time when the event occurred.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'record', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'custom_metadata', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An ACS encoder was removed.', + draftMessage: '', + eventType: 'acs_encoder.removed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Unique identifier for the device.', + description: 'ID of the ACS encoder.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_id', + name: 'acs_encoder_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Display name of the device, defaults to nickname (if it is set) or properties.appearance.name otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices.', + description: 'ID of the ACS system.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: 'Will be removed.', + description: 'ID of the connected account.', + draftMessage: '', + format: 'id', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Array of errors associated with the device. Each error object within the array contains two fields: "error_code" and "message." "error_code" is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether Seam manages the device.', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_managed', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Location information for the device.', + description: '', draftMessage: '', - format: 'object', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'location', - properties: [ + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: 'Name of the device location.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'location_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Time zone of the device location.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'timezone', - undocumentedMessage: '', + name: 'acs_encoder.removed', }, ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Optional nickname to describe the device, settable through Seam', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'nickname', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A client session was deleted.', + draftMessage: '', + eventType: 'client_session.deleted', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the client session.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'client_session_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Array of warnings associated with the device. Each warning object within the array contains two fields: "warning_code" and "message." "warning_code" is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'warnings', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Unique identifier for the Seam workspace associated with the device.', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'client_session.deleted', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, @@ -3212,147 +3009,170 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'device', + resourceType: 'event', + routePath: '', + targetResourceType: 'client_session', undocumentedMessage: '', }, - device_provider: { + { deprecationMessage: '', - description: '', + description: 'A connected account was connected for the first time, was reconnected after being disconnected.', draftMessage: '', + eventType: 'connected_account.connected', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the connect webview.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_cool', + jsonType: 'string', + name: 'connect_webview_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the connected account.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_heat', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_heat_cool', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_program_offline_access_codes', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'boolean', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_program_online_access_codes', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'connected_account.connected', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remotely_lock', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remotely_unlock', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'connected_account', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A connected account was created.', + draftMessage: '', + eventType: 'connected_account.created', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the connect webview.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_connection', + jsonType: 'string', + name: 'connect_webview_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the connected account.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_disconnection', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_removal', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_turn_off_hvac', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { @@ -3364,197 +3184,80 @@ Generated by [AVA](https://avajs.dev). isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_provider_name', + name: 'event_type', undocumentedMessage: '', values: [ { - name: 'dormakaba_community', - }, - { - name: 'legic_connect', - }, - { - name: 'akuvox', - }, - { - name: 'august', - }, - { - name: 'avigilon_alta', - }, - { - name: 'brivo', - }, - { - name: 'butterflymx', - }, - { - name: 'schlage', - }, - { - name: 'smartthings', - }, - { - name: 'yale', - }, - { - name: 'genie', - }, - { - name: 'doorking', - }, - { - name: 'salto', - }, - { - name: 'salto_ks', - }, - { - name: 'lockly', - }, - { - name: 'ttlock', - }, - { - name: 'linear', - }, - { - name: 'noiseaware', - }, - { - name: 'nuki', - }, - { - name: 'seam_relay_admin', - }, - { - name: 'igloo', - }, - { - name: 'kwikset', - }, - { - name: 'minut', - }, - { - name: 'my_2n', - }, - { - name: 'controlbyweb', - }, - { - name: 'nest', - }, - { - name: 'igloohome', - }, - { - name: 'ecobee', - }, - { - name: 'hubitat', - }, - { - name: 'four_suites', - }, - { - name: 'dormakaba_oracode', - }, - { - name: 'pti', - }, - { - name: 'wyze', - }, - { - name: 'seam_passport', - }, - { - name: 'visionline', - }, - { - name: 'assa_abloy_credential_service', - }, - { - name: 'seam_bridge', - }, - { - name: 'tedee', - }, - { - name: 'honeywell_resideo', - }, - { - name: 'latch', - }, - { - name: 'akiles', - }, - { - name: 'assa_abloy_vostio', - }, - { - name: 'assa_abloy_vostio_credential_service', - }, - { - name: 'tado', - }, - { - name: 'salto_space', + name: 'connected_account.created', }, ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'image_url', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'connected_account', + undocumentedMessage: '', + }, + { + deprecationMessage: 'Use `connect_webview.login_succeeded`.', + description: 'A connected account had a successful connect webview login.', + draftMessage: '', + eventType: 'connected_account.successful_login', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the connect webview.', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'provider_categories', + jsonType: 'string', + name: 'connect_webview_id', undocumentedMessage: '', }, - ], - resourceType: 'device_provider', - undocumentedMessage: '', - }, - enrollment_automation: { - deprecationMessage: '', - description: 'Represents an [enrollment automation](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system) within the [Seam mobile access solution](https://docs.seam.co/latest/capability-guides/mobile-access-in-development).', - draftMessage: '', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - properties: [ { deprecationMessage: '', - description: 'Date and time at which the enrollment automation was created.', + description: 'ID of the connected account.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', draftMessage: '', format: 'datetime', isDeprecated: false, @@ -3566,43 +3269,48 @@ Generated by [AVA](https://avajs.dev). }, { deprecationMessage: '', - description: 'ID of the associated [ACS system](https://docs.seam.co/latest/capability-guides/access-systems) that serves as the credential manager.', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'credential_manager_acs_system_id', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the enrollment automation.', + description: '', draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'enrollment_automation_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'connected_account.successful_login', + }, + ], }, { deprecationMessage: '', - description: 'ID of the associated [user identity](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).', + description: 'Time when the event occurred.', draftMessage: '', - format: 'id', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'user_identity_id', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the enrollment automation.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, @@ -3613,20 +3321,35 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'enrollment_automation', + resourceType: 'event', + routePath: '', + targetResourceType: 'connected_account', undocumentedMessage: '', }, - network: { + { deprecationMessage: '', - description: '', + description: 'A connected account was disconnected.', draftMessage: '', + eventType: 'connected_account.disconnected', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the connected account.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', draftMessage: '', format: 'datetime', isDeprecated: false, @@ -3638,31 +3361,48 @@ Generated by [AVA](https://avajs.dev). }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'network_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'connected_account.disconnected', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, @@ -3673,291 +3413,342 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'network', + resourceType: 'event', + routePath: '', + targetResourceType: 'connected_account', undocumentedMessage: '', }, - noise_threshold: { + { deprecationMessage: '', - description: '', + description: 'A connected account completed the first sync with Seam and devices are now available.', draftMessage: '', + eventType: 'connected_account.completed_first_sync', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the connected account.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_id', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'ends_daily_at', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'name', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'number', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'number', - name: 'noise_threshold_decibels', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'noise_threshold_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'connected_account.completed_first_sync', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'number', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'number', - name: 'noise_threshold_nrs', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'starts_daily_at', + name: 'workspace_id', undocumentedMessage: '', }, ], - resourceType: 'noise_threshold', + resourceType: 'event', + routePath: '', + targetResourceType: 'connected_account', undocumentedMessage: '', }, - phone: { + { deprecationMessage: '', - description: '', + description: 'A connected account was deleted.', draftMessage: '', + eventType: 'connected_account.deleted', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the connected account.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_cool', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_heat', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_heat_cool', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'boolean', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_program_offline_access_codes', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'connected_account.deleted', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_program_online_access_codes', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remotely_lock', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'connected_account', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A connected account completed the first sync after reconnection with Seam and devices are now available.', + draftMessage: '', + eventType: 'connected_account.completed_first_sync_after_reconnection', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the connected account.', + draftMessage: '', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remotely_unlock', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_connection', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_disconnection', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'boolean', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_removal', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'connected_account.completed_first_sync_after_reconnection', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_turn_off_hvac', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Collection of capabilities that the device supports when connected to Seam. Values are "access_code," which indicates that the device can manage and utilize digital PIN codes for secure access; "lock," which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; "noise_detection," which indicates that the device supports monitoring and responding to ambient noise levels; "thermostat," which indicates that the device can regulate and adjust indoor temperatures; and "battery," which indicates that the device can manage battery life and health.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'capabilities_supported', + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'connected_account', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A lock door action attempt succeeded.', + draftMessage: '', + eventType: 'action_attempt.lock_door.succeeded', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'The ID of the action attempt.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'action_attempt_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the device object was created.', + description: 'The type of action.', draftMessage: '', - format: 'datetime', + format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'action_type', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'record', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'custom_metadata', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Unique identifier for the device.', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_id', + name: 'event_id', undocumentedMessage: '', }, { @@ -3969,397 +3760,324 @@ Generated by [AVA](https://avajs.dev). isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_type', + name: 'event_type', undocumentedMessage: '', values: [ { - name: 'android_phone', - }, - { - name: 'ios_phone', + name: 'action_attempt.lock_door.succeeded', }, ], }, { deprecationMessage: '', - description: 'Display name of the device, defaults to nickname (if it is set) or properties.appearance.name otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'display_name', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Array of errors associated with the device. Each error object within the array contains two fields: "error_code" and "message." "error_code" is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.', + description: 'The status of the action.', draftMessage: '', - format: 'list', + format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'status', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Indicates whether Seam manages the device.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_managed', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A lock door action attempt failed.', + draftMessage: '', + eventType: 'action_attempt.lock_door.failed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Location information for the device.', + description: 'The ID of the action attempt.', draftMessage: '', - format: 'object', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'location', - properties: [ - { - deprecationMessage: '', - description: 'Name of the device location.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'location_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Time zone of the device location.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'timezone', - undocumentedMessage: '', - }, - ], + jsonType: 'string', + name: 'action_attempt_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Optional nickname to describe the device, settable through Seam', + description: 'The type of action.', draftMessage: '', format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'nickname', + name: 'action_type', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'object', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'properties', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'object', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'object', - name: 'assa_abloy_credential_service_metadata', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'list', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'array', - name: 'endpoints', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'has_active_endpoint', - undocumentedMessage: '', - }, - ], - undocumentedMessage: '', - }, - ], + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Array of warnings associated with the device. Each warning object within the array contains two fields: "warning_code" and "message." "warning_code" is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it.', + description: 'ID of the event.', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'warnings', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Unique identifier for the Seam workspace associated with the device.', + description: '', draftMessage: '', - format: 'id', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'workspace_id', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'action_attempt.lock_door.failed', + }, + ], }, - ], - resourceType: 'phone', - undocumentedMessage: '', - }, - service_health: { - deprecationMessage: '', - description: '', - draftMessage: '', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - properties: [ { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'description', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'The status of the action.', draftMessage: '', format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'service', + name: 'status', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'enum', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'status', + name: 'workspace_id', undocumentedMessage: '', - values: [ - { - name: 'healthy', - }, - { - name: 'degraded', - }, - { - name: 'down', - }, - ], }, ], - resourceType: 'service_health', + resourceType: 'event', + routePath: '', + targetResourceType: null, undocumentedMessage: '', }, - thermostat_schedule: { + { deprecationMessage: '', - description: 'Represents a [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](https://docs.seam.co/latest/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time.', + description: 'An unlock door action attempt succeeded.', draftMessage: '', + eventType: 'action_attempt.unlock_door.succeeded', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.', + description: 'The ID of the action attempt.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'climate_preset_key', + name: 'action_attempt_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the thermostat schedule was created.', + description: 'The type of action.', draftMessage: '', - format: 'datetime', + format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'action_type', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the desired thermostat device.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'id', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_id', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the thermostat schedule ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + description: 'ID of the event.', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'ends_at', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Number of minutes for which a person at the thermostat can change the thermostat\'s settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).', + description: '', draftMessage: '', - format: 'number', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'number', - name: 'max_override_period_minutes', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'action_attempt.unlock_door.succeeded', + }, + ], }, { deprecationMessage: '', - description: 'User-friendly name to identify the thermostat schedule.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'string', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'name', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the thermostat schedule starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + description: 'The status of the action.', draftMessage: '', - format: 'datetime', + format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'starts_at', + name: 'status', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'ID of the thermostat schedule.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'thermostat_schedule_id', + name: 'workspace_id', undocumentedMessage: '', }, - { - deprecationMessage: '', - description: 'Indicates whether a person at the thermostat can change the thermostat\'s settings.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: true, - jsonType: 'boolean', - name: 'unstable_is_override_allowed', - undocumentedMessage: 'Unstable', - }, ], - resourceType: 'thermostat_schedule', + resourceType: 'event', + routePath: '', + targetResourceType: null, undocumentedMessage: '', }, - unmanaged_access_code: { + { deprecationMessage: '', - description: '', + description: 'An unlock door action attempt failed.', draftMessage: '', + eventType: 'action_attempt.unlock_door.failed', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: 'Unique identifier for the access code.', + description: 'The ID of the action attempt.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'access_code_id', + name: 'action_attempt_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Code used for access. Typically, a numeric or alphanumeric string.', + description: 'The type of action.', draftMessage: '', format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'code', + name: 'action_type', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the access code was created.', + description: 'Time at which the event was created.', draftMessage: '', format: 'datetime', isDeprecated: false, @@ -4371,74 +4089,130 @@ Generated by [AVA](https://avajs.dev). }, { deprecationMessage: '', - description: 'Unique identifier for the device associated with the access code.', + description: 'ID of the event.', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_id', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time after which the time-bound access code becomes inactive.', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'action_attempt.unlock_door.failed', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'ends_at', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - 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.', + description: 'The status of the action.', draftMessage: '', - format: 'list', + format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'status', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_managed', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A connect webview had a successful login.', + draftMessage: '', + eventType: 'connect_webview.login_succeeded', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes.', + description: 'ID of the connect webview.', draftMessage: '', - format: 'string', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'name', + name: 'connect_webview_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Date and time at which the time-bound access code becomes active.', + description: 'ID of the connected account.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', draftMessage: '', format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'starts_at', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { @@ -4450,463 +4224,8081 @@ Generated by [AVA](https://avajs.dev). isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'status', + name: 'event_type', undocumentedMessage: '', values: [ { - name: 'set', + name: 'connect_webview.login_succeeded', }, ], }, { deprecationMessage: '', - 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.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'enum', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'type', + name: 'occurred_at', undocumentedMessage: '', - values: [ - { - name: 'time_bound', - }, - { - name: 'ongoing', - }, - ], }, { deprecationMessage: '', - 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.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'warnings', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, ], - resourceType: 'unmanaged_access_code', + resourceType: 'event', + routePath: '', + targetResourceType: 'connect_webview', undocumentedMessage: '', }, - unmanaged_device: { + { deprecationMessage: '', - description: '', + description: 'A connect webview had a failed login.', draftMessage: '', + eventType: 'connect_webview.login_failed', isDeprecated: false, isDraft: false, isUndocumented: false, properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the connect webview.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_cool', + jsonType: 'string', + name: 'connect_webview_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_heat', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_hvac_heat_cool', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'boolean', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_program_offline_access_codes', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'connect_webview.login_failed', + }, + ], }, { deprecationMessage: '', - description: '', + description: 'Time when the event occurred.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_program_online_access_codes', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remotely_lock', + jsonType: 'string', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'connect_webview', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A new device was connected to Seam.', + draftMessage: '', + eventType: 'device.connected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_remotely_unlock', + jsonType: 'string', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'Time at which the event was created.', draftMessage: '', - format: 'boolean', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_connection', + jsonType: 'string', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the device.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_disconnection', + jsonType: 'string', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_simulate_removal', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'boolean', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'can_turn_off_hvac', + jsonType: 'string', + name: 'event_type', undocumentedMessage: '', + values: [ + { + name: 'device.connected', + }, + ], }, { deprecationMessage: '', - description: 'Collection of capabilities that the device supports when connected to Seam. Values are "access_code," which indicates that the device can manage and utilize digital PIN codes for secure access; "lock," which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; "noise_detection," which indicates that the device supports monitoring and responding to ambient noise levels; "thermostat," which indicates that the device can regulate and adjust indoor temperatures; and "battery," which indicates that the device can manage battery life and health.', + description: 'Time when the event occurred.', draftMessage: '', - format: 'list', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'capabilities_supported', + jsonType: 'string', + name: 'occurred_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Unique identifier for the account associated with the device.', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', draftMessage: '', format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'connected_account_id', + name: 'workspace_id', undocumentedMessage: '', }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A device was added or reconnected to Seam.', + draftMessage: '', + eventType: 'device.added', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ { deprecationMessage: '', - description: 'Date and time at which the device object was created.', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', draftMessage: '', - format: 'datetime', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'created_at', + name: 'connected_account_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Unique identifier for the device.', + description: 'Time at which the event was created.', draftMessage: '', - format: 'id', + format: 'datetime', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'device_id', + name: 'created_at', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Array of errors associated with the device. Each error object within the array contains two fields: "error_code" and "message." "error_code" is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.', + description: 'ID of the device.', draftMessage: '', - format: 'list', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'array', - name: 'errors', + jsonType: 'string', + name: 'device_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: '', + description: 'ID of the event.', draftMessage: '', - format: 'boolean', + format: 'id', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'boolean', - name: 'is_managed', + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Location information for the device.', + description: '', draftMessage: '', - format: 'object', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'location', - properties: [ + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: 'Name of the device location.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'location_name', - undocumentedMessage: '', + name: 'device.added', }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device.', + draftMessage: '', + eventType: 'device.converted_to_unmanaged', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: 'Time zone of the device location.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'timezone', - undocumentedMessage: '', + name: 'device.converted_to_unmanaged', }, ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A managed device was successfully converted to an [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices).', + draftMessage: '', + eventType: 'device.unmanaged.converted_to_managed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', undocumentedMessage: '', }, { deprecationMessage: '', description: '', draftMessage: '', - format: 'object', + format: 'enum', isDeprecated: false, isDraft: false, isUndocumented: false, - jsonType: 'object', - name: 'properties', - properties: [ + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: 'Represents the accessory keypad state.', - draftMessage: '', - format: 'object', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'object', - name: 'accessory_keypad', - properties: [ - { - deprecationMessage: '', - description: 'Indicates if the keypad battery properties.', - draftMessage: '', - format: 'object', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'object', - name: 'battery', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'number', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'number', - name: 'level', - undocumentedMessage: '', - }, - ], - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Indicates if the accessory_keypad is connected to the device.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'is_connected', - undocumentedMessage: '', - }, - ], - undocumentedMessage: '', + name: 'device.unmanaged.converted_to_managed', }, - { - deprecationMessage: '', - description: 'Represents the current status of the battery charge level. Values are "critical," which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; "low," which signifies that the battery is under the preferred threshold and should be charged soon; "good," which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and "full," which represents a battery that is fully charged, providing the maximum duration of usage.', - draftMessage: '', - format: 'object', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'object', - name: 'battery', - properties: [ - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'number', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'number', - name: 'level', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: '', - draftMessage: '', - format: 'enum', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'status', - undocumentedMessage: '', - values: [ - { - name: 'critical', - }, - { - name: 'low', - }, - { - name: 'good', - }, - { - name: 'full', - }, - ], - }, - ], - undocumentedMessage: '', + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) was connected to Seam.', + draftMessage: '', + eventType: 'device.unmanaged.connected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.unmanaged.connected', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A device was disconnected from Seam.', + draftMessage: '', + eventType: 'device.disconnected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Error code associated with the disconnection event, if any.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'error_code', + undocumentedMessage: '', + values: [ + { + name: 'account_disconnected', + }, + { + name: 'hub_disconnected', + }, + { + name: 'device_disconnected', + }, + ], + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.disconnected', }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) was disconnected from Seam.', + draftMessage: '', + eventType: 'device.unmanaged.disconnected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Error code associated with the disconnection event, if any.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'error_code', + undocumentedMessage: '', + values: [ + { + name: 'account_disconnected', + }, + { + name: 'hub_disconnected', + }, + { + name: 'device_disconnected', + }, + ], + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.unmanaged.disconnected', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A device detected that it was tampered with, for example, opened or moved.', + draftMessage: '', + eventType: 'device.tampered', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.tampered', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A device battery level dropped below the low threshold.', + draftMessage: '', + eventType: 'device.low_battery', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'battery_level', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.low_battery', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A device battery status changed since the last `battery_status_changed` event.', + draftMessage: '', + eventType: 'device.battery_status_changed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'battery_level', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Battery status of the device, calculated from the numeric `battery_level` value.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'battery_status', + undocumentedMessage: '', + values: [ + { + name: 'critical', + }, + { + name: 'low', + }, + { + name: 'good', + }, + { + name: 'full', + }, + ], + }, + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.battery_status_changed', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A device was removed externally from the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + eventType: 'device.removed', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.removed', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A device was [deleted](https://docs.seam.co/latest/api/devices/delete).', + draftMessage: '', + eventType: 'device.deleted', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.deleted', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Seam detected that a device is using a third-party integration that will interfere with Seam device management.', + draftMessage: '', + eventType: 'device.third_party_integration_detected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.third_party_integration_detected', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Seam detected that a device is no longer using a third-party integration that was interfering with Seam device management.', + draftMessage: '', + eventType: 'device.third_party_integration_no_longer_detected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.third_party_integration_no_longer_detected', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A Salto device activated privacy mode.', + draftMessage: '', + eventType: 'device.salto.privacy_mode_activated', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.salto.privacy_mode_activated', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A Salto device deactivated privacy mode.', + draftMessage: '', + eventType: 'device.salto.privacy_mode_deactivated', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.salto.privacy_mode_deactivated', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Seam detected a flaky device connection.', + draftMessage: '', + eventType: 'device.connection_became_flaky', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.connection_became_flaky', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Seam detected that a previously-flaky device connection stabilized.', + draftMessage: '', + eventType: 'device.connection_stabilized', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.connection_stabilized', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A third-party subscription is required to use all device features.', + draftMessage: '', + eventType: 'device.error.subscription_required', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.error.subscription_required', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A third-party subscription is active or no longer required to use all device features.', + draftMessage: '', + eventType: 'device.error.subscription_required.resolved', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.error.subscription_required.resolved', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An accessory keypad was connected to a device.', + draftMessage: '', + eventType: 'device.accessory_keypad_connected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.accessory_keypad_connected', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An accessory keypad was disconnected from a device.', + draftMessage: '', + eventType: 'device.accessory_keypad_disconnected', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'device.accessory_keypad_disconnected', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Extended periods of noise or noise exceeding a [threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) were detected.', + draftMessage: '', + eventType: 'noise_sensor.noise_threshold_triggered', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'noise_sensor.noise_threshold_triggered', + }, + ], + }, + { + deprecationMessage: '', + description: 'Metadata from Minut.', + draftMessage: '', + format: 'record', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'minut_metadata', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Detected noise level in decibels.', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'noise_level_decibels', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Detected noise level in Noiseaware Noise Risk Score (NRS).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'noise_level_nrs', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [noise threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) that was triggered.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'noise_threshold_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Name of the [noise threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) that was triggered.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'noise_threshold_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Metadata from Noiseaware.', + draftMessage: '', + format: 'record', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'noiseaware_metadata', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A lock was locked.', + draftMessage: '', + eventType: 'lock.locked', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used to lock the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_code_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) associated with the lock action.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'action_attempt_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'lock.locked', + }, + ], + }, + { + deprecationMessage: '', + description: 'Method by which a lock device was locked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'method', + undocumentedMessage: '', + values: [ + { + name: 'keycode', + }, + { + name: 'manual', + }, + { + name: 'automatic', + }, + { + name: 'unknown', + }, + { + name: 'seamapi', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A lock was unlocked.', + draftMessage: '', + eventType: 'lock.unlocked', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used to unlock the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_code_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) associated with the unlock action.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'action_attempt_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'lock.unlocked', + }, + ], + }, + { + deprecationMessage: '', + description: 'Method by which a lock device was unlocked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'method', + undocumentedMessage: '', + values: [ + { + name: 'keycode', + }, + { + name: 'manual', + }, + { + name: 'automatic', + }, + { + name: 'unknown', + }, + { + name: 'seamapi', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'The lock denied access to a user after one or more consecutive invalid attempts to unlock the device.', + draftMessage: '', + eventType: 'lock.access_denied', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used in the unlock attempts.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_code_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'lock.access_denied', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A thermostat [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) was activated.', + draftMessage: '', + eventType: 'thermostat.climate_preset_activated', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) that was activated.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'climate_preset_key', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'thermostat.climate_preset_activated', + }, + ], + }, + { + deprecationMessage: '', + description: 'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) that was activated is the [fallback climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_fallback_climate_preset', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that prompted the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to be activated.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'thermostat_schedule_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A thermostat was adjusted manually.', + draftMessage: '', + eventType: 'thermostat.manually_adjusted', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/set-points).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'cooling_set_point_celsius', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Temperature to which the thermostat should cool (in °F).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'cooling_set_point_fahrenheit', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'thermostat.manually_adjusted', + }, + ], + }, + { + deprecationMessage: '', + description: 'Desired fan mode setting, such as `on`, `auto`, or `circulate`.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'fan_mode_setting', + undocumentedMessage: '', + values: [ + { + name: 'auto', + }, + { + name: 'on', + }, + { + name: 'circulate', + }, + ], + }, + { + deprecationMessage: '', + description: 'Temperature to which the thermostat should heat (in °C).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'heating_set_point_celsius', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Temperature to which the thermostat should heat (in °F).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'heating_set_point_fahrenheit', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Desired [HVAC mode](https://docs.seam.co/latest/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'hvac_mode_setting', + undocumentedMessage: '', + values: [ + { + name: 'off', + }, + { + name: 'heat', + }, + { + name: 'cool', + }, + { + name: 'heat_cool', + }, + ], + }, + { + deprecationMessage: '', + description: 'Method used to adjust the thermostat manually. `seam` indicates that the Seam API, Seam CLI, or Seam Console was used to adjust the thermostat.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'method', + undocumentedMessage: '', + values: [ + { + name: 'seam', + }, + { + name: 'external', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A thermostat\'s temperature reading exceeded the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + eventType: 'thermostat.temperature_threshold_exceeded', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'thermostat.temperature_threshold_exceeded', + }, + ], + }, + { + deprecationMessage: '', + description: 'Lower temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'lower_limit_celsius', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Lower temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'lower_limit_fahrenheit', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Temperature, in °C, reported by the thermostat.', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'temperature_celsius', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Temperature, in °F, reported by the thermostat.', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'temperature_fahrenheit', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Upper temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'upper_limit_celsius', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Upper temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'upper_limit_fahrenheit', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A thermostat\'s temperature reading no longer exceeds the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + eventType: 'thermostat.temperature_threshold_no_longer_exceeded', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'thermostat.temperature_threshold_no_longer_exceeded', + }, + ], + }, + { + deprecationMessage: '', + description: 'Lower temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'lower_limit_celsius', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Lower temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'lower_limit_fahrenheit', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Temperature, in °C, reported by the thermostat.', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'temperature_celsius', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Temperature, in °F, reported by the thermostat.', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'temperature_fahrenheit', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Upper temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'upper_limit_celsius', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Upper temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'upper_limit_fahrenheit', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: null, + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'An enrollment automation was deleted.', + draftMessage: '', + eventType: 'enrollment_automation.deleted', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the enrollment automation.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'enrollment_automation_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'enrollment_automation.deleted', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'enrollment_automation', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'A phone device was deactivated.', + draftMessage: '', + eventType: 'phone.deactivated', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'phone.deactivated', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + targetResourceType: 'phone', + undocumentedMessage: '', + }, + ], + resources: { + access_code: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Unique identifier for the access code.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_code_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Code used for access. Typically, a numeric or alphanumeric string.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Unique identifier for a group of access codes that share the same code.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'common_code_key', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the access code was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Unique identifier for the device associated with the access code.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time after which the time-bound access code becomes inactive.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'ends_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + 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.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'errors', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the access code is a backup code.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_backup', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether a backup access code is available for use if the primary access code is lost or compromised.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_backup_access_code_available', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether changes to the access code from external sources are permitted.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_external_modification_allowed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether Seam manages the access code.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_managed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + 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.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_offline_access_code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the access code can only be used once. If "true," the code becomes invalid after the first use.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_one_time_use', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the code is set on the device according to a preconfigured schedule.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_scheduled_on_device', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the access code is waiting for a code assignment.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_waiting_for_code_assignment', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Identifier of the pulled backup access code. Used to associate the pulled backup access code with the original access code.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'pulled_backup_access_code_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the time-bound access code becomes active.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'starts_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: `␊ + 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.␊ + `, + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'status', + undocumentedMessage: '', + values: [ + { + name: 'setting', + }, + { + name: 'set', + }, + { + name: 'unset', + }, + { + name: 'removing', + }, + { + name: 'unknown', + }, + ], + }, + { + deprecationMessage: '', + 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.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'type', + undocumentedMessage: '', + values: [ + { + name: 'time_bound', + }, + { + name: 'ongoing', + }, + ], + }, + { + deprecationMessage: '', + 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.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'warnings', + undocumentedMessage: '', + }, + ], + resourceType: 'access_code', + routePath: '', + undocumentedMessage: '', + }, + acs_access_group: { + deprecationMessage: '', + description: `Group that defines the entrances to which a set of users has access and, in some cases, the access schedule for these entrances and users.␊ + The \`acs_access_group\` object represents an [access group](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups) within an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).`, + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: 'Use `external_type`.', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_group_type', + undocumentedMessage: '', + values: [ + { + name: 'pti_unit', + }, + { + name: 'pti_access_level', + }, + { + name: 'salto_ks_access_group', + }, + { + name: 'brivo_group', + }, + ], + }, + { + deprecationMessage: 'Use `external_type_display_name`.', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_group_type_display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the access group.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_access_group_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the access control system that contains the access group.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the access group was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Brand-specific terminology for the access group type.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type', + undocumentedMessage: '', + values: [ + { + name: 'pti_unit', + }, + { + name: 'pti_access_level', + }, + { + name: 'salto_ks_access_group', + }, + { + name: 'brivo_group', + }, + ], + }, + { + deprecationMessage: '', + description: 'Display name that corresponds to the brand-specific terminology for the access group type.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type_display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_managed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Name of the access group.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the access group.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'acs_access_group', + routePath: '', + undocumentedMessage: '', + }, + acs_credential: { + deprecationMessage: '', + description: `Means by which a user gains access at an entrance.␊ + The \`acs_credential\` object represents a credential that provides an ACS user access within an access control system. For each acs_credential object, you define the access method. You can also specify additional properties, such as a code.`, + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Access method for the credential. Supported values: `code`, `card`, `mobile_key`.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_method', + undocumentedMessage: '', + values: [ + { + name: 'code', + }, + { + name: 'card', + }, + { + name: 'mobile_key', + }, + ], + }, + { + deprecationMessage: '', + description: 'ID of the credential.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_credential_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_credential_pool_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the access control system that contains the credential.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the ACS user to whom the credential belongs.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_user_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'card_number', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Access (PIN) code for the credential.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the credential was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Display name that corresponds to the credential type.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the credential validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'ends_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Errors associated with the `acs_credential`.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'errors', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Brand-specific terminology for the credential type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type', + undocumentedMessage: '', + values: [ + { + name: 'pti_card', + }, + { + name: 'brivo_credential', + }, + { + name: 'hid_credential', + }, + { + name: 'visionline_card', + }, + { + name: 'salto_ks_credential', + }, + ], + }, + { + deprecationMessage: '', + description: 'Display name that corresponds to the brand-specific terminology for the credential type.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type_display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_issued', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the latest state of the credential has been synced from Seam to the provider.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_latest_desired_state_synced_with_provider', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_managed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the credential is a [multi-phone sync credential](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_multi_phone_sync_credential', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the credential can only be used once. If "true," the code becomes invalid after the first use.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_one_time_use', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'issued_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the state of the credential was most recently synced from Seam to the provider.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'latest_desired_state_synced_with_provider_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the parent credential.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'parent_acs_credential_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the credential validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'starts_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Visionline-specific metadata for the credential.', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'visionline_metadata', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'auto_join', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'card_function_type', + undocumentedMessage: '', + values: [ + { + name: 'guest', + }, + { + name: 'staff', + }, + ], + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'card_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'common_acs_entrance_ids', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'credential_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'guest_acs_entrance_ids', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_valid', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'joiner_acs_credential_ids', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Warnings associated with the `acs_credential`.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'warnings', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the credential.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'acs_credential', + routePath: '', + undocumentedMessage: '', + }, + acs_credential_pool: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_credential_pool_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type', + undocumentedMessage: '', + values: [ + { + name: 'hid_part_number', + }, + ], + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type_display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'acs_credential_pool', + routePath: '', + undocumentedMessage: '', + }, + acs_credential_provisioning_automation: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_credential_provisioning_automation_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'credential_manager_acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'user_identity_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'acs_credential_provisioning_automation', + routePath: '', + undocumentedMessage: '', + }, + acs_entrance: { + deprecationMessage: '', + description: 'Represents an [entrance](https://docs.seam.co/latest/capability-guides/access-systems/retrieving-entrance-details) within an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the entrance.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_entrance_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the access control system that contains the entrance.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'assa_abloy_vostio_metadata', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'door_number', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_type', + undocumentedMessage: '', + values: [ + { + name: 'CommonDoor', + }, + { + name: 'EntranceDoor', + }, + { + name: 'GuestDoor', + }, + { + name: 'Elevator', + }, + ], + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'pms_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'stand_open', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the entrance was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Display name for the entrance.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'dormakaba_community_metadata', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_point_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'common_area_number', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'inner_access_points_names', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'errors', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'latch_metadata', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'accessibility_type', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_type', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_connected', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'salto_ks_metadata', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'battery_level', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'intrusion_alarm', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'left_open_alarm', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'lock_type', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'locked_state', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'online', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'privacy_mode', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'salto_space_metadata', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_description', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'ext_door_id', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'visionline_metadata', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_category', + undocumentedMessage: '', + values: [ + { + name: 'entrance', + }, + { + name: 'guest', + }, + { + name: 'elevator reader', + }, + { + name: 'common', + }, + { + name: 'common (PMS)', + }, + ], + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'door_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'profiles', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + ], + resourceType: 'acs_entrance', + routePath: '', + undocumentedMessage: '', + }, + acs_system: { + deprecationMessage: '', + description: 'Represents an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'ID of the `acs_system`.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the `acs_system` supports [adding users to access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#add-an-acs-user-to-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_add_acs_users_to_acs_access_groups', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether it is possible to [launch enrollment automations](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system#prepare-the-phones-for-a-user-identity-to-start-receiving-mobile-credentials-using-an-enrollment-aut) for the `acs_system`.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_automate_enrollment', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the `acs_system` supports creating [access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_create_acs_access_groups', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the `acs_system` supports [removing users from access groups](https://docs.seam.co/latest/capability-guides/access-systems/assigning-users-to-access-groups#remove-an-acs-user-from-an-access-group). See also [Access Group-based Access Control Systems](https://docs.seam.co/latest/capability-guides/access-systems/understanding-access-control-system-differences#access-group-based-access-control-systems).', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_remove_acs_users_from_acs_access_groups', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'IDs of the [connected accounts](https://docs.seam.co/latest/core-concepts/connected-accounts) associated with the `acs_system`.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'connected_account_ids', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the `acs_system` was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the default credential manager acs_system for this access control system.', + draftMessage: 'Needs review', + format: 'id', + isDeprecated: false, + isDraft: true, + isUndocumented: false, + jsonType: 'string', + name: 'default_credential_manager_acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Errors associated with the `acs_system`.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'errors', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Brand-specific terminology for the `acs_system` type.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type', + undocumentedMessage: '', + values: [ + { + name: 'pti_site', + }, + { + name: 'alta_org', + }, + { + name: 'salto_ks_site', + }, + { + name: 'salto_space_system', + }, + { + name: 'brivo_account', + }, + { + name: 'hid_credential_manager_organization', + }, + { + name: 'visionline_system', + }, + { + name: 'assa_abloy_credential_service', + }, + { + name: 'latch_building', + }, + { + name: 'dormakaba_community', + }, + { + name: 'legic_connect', + }, + { + name: 'assa_abloy_vostio', + }, + { + name: 'assa_abloy_vostio_credential_service', + }, + ], + }, + { + deprecationMessage: '', + description: 'Display name that corresponds to the brand-specific terminology for the `acs_system` type.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type_display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Alternative text for the `acs_system` image.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'image_alt_text', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'URL for the image that represents the `acs_system`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'image_url', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates if the `acs_system` is a credential manager.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_credential_manager', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'location', + properties: [ + { + deprecationMessage: '', + description: 'Time zone in which the `acs_system` is located.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'time_zone', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Name of the `acs_system`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'name', + undocumentedMessage: '', + }, + { + deprecationMessage: 'Use `external_type`.', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'system_type', + undocumentedMessage: '', + values: [ + { + name: 'pti_site', + }, + { + name: 'alta_org', + }, + { + name: 'salto_ks_site', + }, + { + name: 'salto_space_system', + }, + { + name: 'brivo_account', + }, + { + name: 'hid_credential_manager_organization', + }, + { + name: 'visionline_system', + }, + { + name: 'assa_abloy_credential_service', + }, + { + name: 'latch_building', + }, + { + name: 'dormakaba_community', + }, + { + name: 'legic_connect', + }, + { + name: 'assa_abloy_vostio', + }, + { + name: 'assa_abloy_vostio_credential_service', + }, + ], + }, + { + deprecationMessage: 'Use `external_type_display_name`.', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'system_type_display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'visionline_metadata', + properties: [ + { + deprecationMessage: '', + description: 'IP address or hostname of the main Visionline server relative to the Seam Bridge on the local network.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'lan_address', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Keyset loaded into a reader. Mobile keys and reader administration tools securely authenticate only with readers programmed with a matching keyset.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'mobile_access_uuid', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Unique ID assigned by the ASSA ABLOY licensing team that identifies each hotel in your credential manager.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'system_id', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Warnings associated with the `acs_system`.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'warnings', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_system`.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'acs_system', + routePath: '', + undocumentedMessage: '', + }, + acs_user: { + deprecationMessage: '', + description: 'Represents a [user](https://docs.seam.co/latest/capability-guides/access-systems/user-management) in an [access control system](https://docs.seam.co/latest/capability-guides/access-systems).', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '`starts_at` and `ends_at` timestamps for the `acs_user`\'s access.', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'access_schedule', + properties: [ + { + deprecationMessage: '', + description: 'Date and time at which the user\'s access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'ends_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the user\'s access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'starts_at', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the access control system that contains the `acs_user`.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the `acs_user`.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'acs_user_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the `acs_user` was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Display name for the `acs_user`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: 'use email_address.', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'email', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Email address of the `acs_user`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'email_address', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Errors associated with the `acs_user`.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'errors', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Brand-specific terminology for the `acs_user` type.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type', + undocumentedMessage: '', + values: [ + { + name: 'pti_user', + }, + { + name: 'brivo_user', + }, + { + name: 'hid_credential_manager_user', + }, + { + name: 'salto_site_user', + }, + { + name: 'latch_user', + }, + { + name: 'dormakaba_community_user', + }, + ], + }, + { + deprecationMessage: '', + description: 'Display name that corresponds to the brand-specific terminology for the `acs_user` type.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'external_type_display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Full name of the `acs_user`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'full_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'hid_acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: true, + jsonType: 'boolean', + name: 'is_latest_desired_state_synced_with_provider', + undocumentedMessage: 'Only used internally.', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_managed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether the `acs_user` is currently [suspended](https://docs.seam.co/latest/capability-guides/access-systems/user-management/suspending-and-unsuspending-users).', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_suspended', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: true, + jsonType: 'string', + name: 'latest_desired_state_synced_with_provider_at', + undocumentedMessage: 'Only used internally.', + }, + { + deprecationMessage: '', + description: 'Phone number of the `acs_user` in E.164 format (for example, `+15555550100`).', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'phone_number', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Email address of the user identity associated with the `acs_user`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'user_identity_email_address', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Full name of the user identity associated with the `acs_user`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'user_identity_full_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the user identity associated with the `acs_user`.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'user_identity_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Phone number of the user identity associated with the `acs_user` in E.164 format (for example, `+15555550100`).', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'user_identity_phone_number', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Warnings associated with the `acs_user`.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'warnings', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the `acs_user`.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'acs_user', + routePath: '', + undocumentedMessage: '', + }, + client_session: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'client_session_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'connect_webview_ids', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'connected_account_ids', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'device_count', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'expires_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'token', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'user_identifier_key', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'user_identity_ids', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'client_session', + routePath: '', + undocumentedMessage: '', + }, + connect_webview: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: 'Unused. Will be removed.', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'accepted_devices', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'accepted_providers', + undocumentedMessage: '', + }, + { + deprecationMessage: 'Unused. Will be removed.', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: true, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'any_device_allowed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'any_provider_allowed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'authorized_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'automatically_manage_new_devices', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connect_webview_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'record', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'custom_metadata', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'custom_redirect_failure_url', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'custom_redirect_url', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_selection_mode', + undocumentedMessage: '', + values: [ + { + name: 'none', + }, + { + name: 'single', + }, + { + name: 'multiple', + }, + ], + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'login_successful', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'selected_provider', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'status', + undocumentedMessage: '', + values: [ + { + name: 'pending', + }, + { + name: 'failed', + }, + { + name: 'authorized', + }, + ], + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'url', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'wait_for_device_creation', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'connect_webview', + routePath: '', + undocumentedMessage: '', + }, + connected_account: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'account_type', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'account_type_display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'automatically_manage_new_devices', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'connected_account_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'record', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'custom_metadata', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'errors', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'user_identifier', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'api_url', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'email', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'exclusive', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'phone', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'username', + undocumentedMessage: '', + }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'warnings', + undocumentedMessage: '', + }, + ], + resourceType: 'connected_account', + routePath: '', + undocumentedMessage: '', + }, + device_provider: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_hvac_cool', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_hvac_heat', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_hvac_heat_cool', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_program_offline_access_codes', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_program_online_access_codes', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_remotely_lock', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_remotely_unlock', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_simulate_connection', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_simulate_disconnection', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_simulate_removal', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_turn_off_hvac', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_provider_name', + undocumentedMessage: '', + values: [ + { + name: 'dormakaba_community', + }, + { + name: 'legic_connect', + }, + { + name: 'akuvox', + }, + { + name: 'august', + }, + { + name: 'avigilon_alta', + }, + { + name: 'brivo', + }, + { + name: 'butterflymx', + }, + { + name: 'schlage', + }, + { + name: 'smartthings', + }, + { + name: 'yale', + }, + { + name: 'genie', + }, + { + name: 'doorking', + }, + { + name: 'salto', + }, + { + name: 'salto_ks', + }, + { + name: 'lockly', + }, + { + name: 'ttlock', + }, + { + name: 'linear', + }, + { + name: 'noiseaware', + }, + { + name: 'nuki', + }, + { + name: 'seam_relay_admin', + }, + { + name: 'igloo', + }, + { + name: 'kwikset', + }, + { + name: 'minut', + }, + { + name: 'my_2n', + }, + { + name: 'controlbyweb', + }, + { + name: 'nest', + }, + { + name: 'igloohome', + }, + { + name: 'ecobee', + }, + { + name: 'hubitat', + }, + { + name: 'four_suites', + }, + { + name: 'dormakaba_oracode', + }, + { + name: 'pti', + }, + { + name: 'wyze', + }, + { + name: 'seam_passport', + }, + { + name: 'visionline', + }, + { + name: 'assa_abloy_credential_service', + }, + { + name: 'seam_bridge', + }, + { + name: 'tedee', + }, + { + name: 'honeywell_resideo', + }, + { + name: 'latch', + }, + { + name: 'akiles', + }, + { + name: 'assa_abloy_vostio', + }, + { + name: 'assa_abloy_vostio_credential_service', + }, + { + name: 'tado', + }, + { + name: 'salto_space', + }, + ], + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'image_url', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'provider_categories', + undocumentedMessage: '', + }, + ], + resourceType: 'device_provider', + routePath: '', + undocumentedMessage: '', + }, + enrollment_automation: { + deprecationMessage: '', + description: 'Represents an [enrollment automation](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/issuing-mobile-credentials-from-an-access-control-system) within the [Seam mobile access solution](https://docs.seam.co/latest/capability-guides/mobile-access-in-development).', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Date and time at which the enrollment automation was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the associated [ACS system](https://docs.seam.co/latest/capability-guides/access-systems) that serves as the credential manager.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'credential_manager_acs_system_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the enrollment automation.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'enrollment_automation_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the associated [user identity](https://docs.seam.co/latest/capability-guides/mobile-access-in-development/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'user_identity_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces) that contains the enrollment automation.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'enrollment_automation', + routePath: '', + undocumentedMessage: '', + }, + event: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Time at which the event was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the event.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'event_type', + undocumentedMessage: '', + values: [ + { + name: 'access_code.created', + }, + { + name: 'access_code.changed', + }, + { + name: 'access_code.scheduled_on_device', + }, + { + name: 'access_code.set_on_device', + }, + { + name: 'access_code.removed_from_device', + }, + { + name: 'access_code.delay_in_setting_on_device', + }, + { + name: 'access_code.failed_to_set_on_device', + }, + { + name: 'access_code.deleted', + }, + { + name: 'access_code.delay_in_removing_from_device', + }, + { + name: 'access_code.failed_to_remove_from_device', + }, + { + name: 'access_code.modified_external_to_seam', + }, + { + name: 'access_code.deleted_external_to_seam', + }, + { + name: 'access_code.backup_access_code_pulled', + }, + { + name: 'access_code.unmanaged.converted_to_managed', + }, + { + name: 'access_code.unmanaged.failed_to_convert_to_managed', + }, + { + name: 'access_code.unmanaged.created', + }, + { + name: 'access_code.unmanaged.removed', + }, + { + name: 'acs_system.connected', + }, + { + name: 'acs_system.added', + }, + { + name: 'acs_system.disconnected', + }, + { + name: 'acs_credential.deleted', + }, + { + name: 'acs_credential.issued', + }, + { + name: 'acs_user.deleted', + }, + { + name: 'acs_encoder.added', + }, + { + name: 'acs_encoder.removed', + }, + { + name: 'client_session.deleted', + }, + { + name: 'connected_account.connected', + }, + { + name: 'connected_account.created', + }, + { + name: 'connected_account.successful_login', + }, + { + name: 'connected_account.disconnected', + }, + { + name: 'connected_account.completed_first_sync', + }, + { + name: 'connected_account.deleted', + }, + { + name: 'connected_account.completed_first_sync_after_reconnection', + }, + { + name: 'action_attempt.lock_door.succeeded', + }, + { + name: 'action_attempt.lock_door.failed', + }, + { + name: 'action_attempt.unlock_door.succeeded', + }, + { + name: 'action_attempt.unlock_door.failed', + }, + { + name: 'connect_webview.login_succeeded', + }, + { + name: 'connect_webview.login_failed', + }, + { + name: 'device.connected', + }, + { + name: 'device.added', + }, + { + name: 'device.converted_to_unmanaged', + }, + { + name: 'device.unmanaged.converted_to_managed', + }, + { + name: 'device.unmanaged.connected', + }, + { + name: 'device.disconnected', + }, + { + name: 'device.unmanaged.disconnected', + }, + { + name: 'device.tampered', + }, + { + name: 'device.low_battery', + }, + { + name: 'device.battery_status_changed', + }, + { + name: 'device.removed', + }, + { + name: 'device.deleted', + }, + { + name: 'device.third_party_integration_detected', + }, + { + name: 'device.third_party_integration_no_longer_detected', + }, + { + name: 'device.salto.privacy_mode_activated', + }, + { + name: 'device.salto.privacy_mode_deactivated', + }, + { + name: 'device.connection_became_flaky', + }, + { + name: 'device.connection_stabilized', + }, + { + name: 'device.error.subscription_required', + }, + { + name: 'device.error.subscription_required.resolved', + }, + { + name: 'device.accessory_keypad_connected', + }, + { + name: 'device.accessory_keypad_disconnected', + }, + { + name: 'noise_sensor.noise_threshold_triggered', + }, + { + name: 'lock.locked', + }, + { + name: 'lock.unlocked', + }, + { + name: 'lock.access_denied', + }, + { + name: 'thermostat.climate_preset_activated', + }, + { + name: 'thermostat.manually_adjusted', + }, + { + name: 'thermostat.temperature_threshold_exceeded', + }, + { + name: 'thermostat.temperature_threshold_no_longer_exceeded', + }, + { + name: 'enrollment_automation.deleted', + }, + { + name: 'phone.deactivated', + }, + ], + }, + { + deprecationMessage: '', + description: 'Time when the event occurred.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'occurred_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'event', + routePath: '', + undocumentedMessage: '', + }, + network: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'network_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'workspace_id', + undocumentedMessage: '', + }, + ], + resourceType: 'network', + routePath: '', + undocumentedMessage: '', + }, + noise_threshold: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'ends_daily_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'noise_threshold_decibels', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'noise_threshold_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'number', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'number', + name: 'noise_threshold_nrs', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'starts_daily_at', + undocumentedMessage: '', + }, + ], + resourceType: 'noise_threshold', + routePath: '', + undocumentedMessage: '', + }, + phone: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_hvac_cool', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_hvac_heat', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_hvac_heat_cool', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_program_offline_access_codes', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_program_online_access_codes', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_remotely_lock', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_remotely_unlock', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_simulate_connection', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_simulate_disconnection', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_simulate_removal', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'can_turn_off_hvac', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Collection of capabilities that the device supports when connected to Seam. Values are "access_code," which indicates that the device can manage and utilize digital PIN codes for secure access; "lock," which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; "noise_detection," which indicates that the device supports monitoring and responding to ambient noise levels; "thermostat," which indicates that the device can regulate and adjust indoor temperatures; and "battery," which indicates that the device can manage battery life and health.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'capabilities_supported', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the device object was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'record', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'custom_metadata', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Unique identifier for the device.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_type', + undocumentedMessage: '', + values: [ { - deprecationMessage: '', - description: 'Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.', - draftMessage: '', - format: 'number', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'number', - name: 'battery_level', - undocumentedMessage: '', + name: 'android_phone', }, { - deprecationMessage: '', - description: 'Alt text for the device image.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'image_alt_text', - undocumentedMessage: '', + name: 'ios_phone', }, + ], + }, + { + deprecationMessage: '', + description: 'Display name of the device, defaults to nickname (if it is set) or properties.appearance.name otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'display_name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Array of errors associated with the device. Each error object within the array contains two fields: "error_code" and "message." "error_code" is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. "message" provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'errors', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Indicates whether Seam manages the device.', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_managed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Location information for the device.', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'location', + properties: [ { deprecationMessage: '', - description: 'Image URL for the device.', + description: 'Name of the device location.', draftMessage: '', format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'image_url', + name: 'location_name', undocumentedMessage: '', }, { deprecationMessage: '', - description: 'Manufacturer of the device.', + description: 'Time zone of the device location.', draftMessage: '', format: 'string', isDeprecated: false, isDraft: false, isUndocumented: false, jsonType: 'string', - name: 'manufacturer', + name: 'timezone', undocumentedMessage: '', }, + ], + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Optional nickname to describe the device, settable through Seam', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'nickname', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'object', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'object', + name: 'properties', + properties: [ { deprecationMessage: '', description: '', @@ -4916,141 +12308,33 @@ Generated by [AVA](https://avajs.dev). isDraft: false, isUndocumented: false, jsonType: 'object', - name: 'model', - properties: [ - { - deprecationMessage: 'use device.properties.model.can_connect_accessory_keypad', - description: '', - draftMessage: '', - format: 'boolean', - isDeprecated: true, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'accessory_keypad_supported', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Indicates whether the device can connect a accessory keypad.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'can_connect_accessory_keypad', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Display name of the device model.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'display_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Indicates whether the device has a built in accessory keypad.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'has_built_in_keypad', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Display name that corresponds to the manufacturer-specific terminology for the device.', - draftMessage: '', - format: 'string', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'manufacturer_display_name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Indicates whether the device supports offline access codes.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'offline_access_codes_supported', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Indicates whether the device supports online access codes.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'online_access_codes_supported', - undocumentedMessage: '', - }, - ], - undocumentedMessage: '', - }, - { - deprecationMessage: 'use device.display_name instead', - description: 'Name of the device.', - draftMessage: '', - format: 'string', - isDeprecated: true, - isDraft: false, - isUndocumented: false, - jsonType: 'string', - name: 'name', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Indicates whether it is currently possible to use offline access codes for the device.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'offline_access_codes_enabled', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Indicates whether the device is online.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'online', - undocumentedMessage: '', - }, - { - deprecationMessage: '', - description: 'Indicates whether it is currently possible to use online access codes for the device.', - draftMessage: '', - format: 'boolean', - isDeprecated: false, - isDraft: false, - isUndocumented: false, - jsonType: 'boolean', - name: 'online_access_codes_enabled', + name: 'assa_abloy_credential_service_metadata', + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'endpoints', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'has_active_endpoint', + undocumentedMessage: '', + }, + ], undocumentedMessage: '', }, ], @@ -5081,7 +12365,238 @@ Generated by [AVA](https://avajs.dev). undocumentedMessage: '', }, ], - resourceType: 'unmanaged_device', + resourceType: 'phone', + routePath: '', + undocumentedMessage: '', + }, + service_health: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'description', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'service', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'status', + undocumentedMessage: '', + values: [ + { + name: 'healthy', + }, + { + name: 'degraded', + }, + { + name: 'down', + }, + ], + }, + ], + resourceType: 'service_health', + routePath: '', + undocumentedMessage: '', + }, + unmanaged_access_code: { + deprecationMessage: '', + description: '', + draftMessage: '', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + properties: [ + { + deprecationMessage: '', + description: 'Unique identifier for the access code.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'access_code_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Code used for access. Typically, a numeric or alphanumeric string.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'code', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the access code was created.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'created_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Unique identifier for the device associated with the access code.', + draftMessage: '', + format: 'id', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'device_id', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time after which the time-bound access code becomes inactive.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'ends_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + 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.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'errors', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'boolean', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'boolean', + name: 'is_managed', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes.', + draftMessage: '', + format: 'string', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'name', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: 'Date and time at which the time-bound access code becomes active.', + draftMessage: '', + format: 'datetime', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'starts_at', + undocumentedMessage: '', + }, + { + deprecationMessage: '', + description: '', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'status', + undocumentedMessage: '', + values: [ + { + name: 'set', + }, + ], + }, + { + deprecationMessage: '', + 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.', + draftMessage: '', + format: 'enum', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'string', + name: 'type', + undocumentedMessage: '', + values: [ + { + name: 'time_bound', + }, + { + name: 'ongoing', + }, + ], + }, + { + deprecationMessage: '', + 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.', + draftMessage: '', + format: 'list', + isDeprecated: false, + isDraft: false, + isUndocumented: false, + jsonType: 'array', + name: 'warnings', + undocumentedMessage: '', + }, + ], + resourceType: 'unmanaged_access_code', + routePath: '', undocumentedMessage: '', }, user_identity: { @@ -5190,6 +12705,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'user_identity', + routePath: '', undocumentedMessage: '', }, webhook: { @@ -5250,6 +12766,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'webhook', + routePath: '', undocumentedMessage: '', }, workspace: { @@ -5322,6 +12839,7 @@ Generated by [AVA](https://avajs.dev). }, ], resourceType: 'workspace', + routePath: '', undocumentedMessage: '', }, }, diff --git a/test/snapshots/seam-blueprint.test.ts.snap b/test/snapshots/seam-blueprint.test.ts.snap index 1307191303fde3b094926e72c8a1ee474913846c..e7f4c91bef71d503714d6aafa636060bc8beba2e 100644 GIT binary patch literal 142238 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 literal 107309 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Ⓢ*(Nqt>Rs6tCS%*+IQO%r@EkA>s4bvf|UC zjlF`5V$wT)WmAqioUsGkNeG9v}lhwutBWID`&lB zqplqwPW*t)&su(ZjCi$g(7N(SgQzc!KQ7Vb%C3HQ1Tk zM#PV=W$v4(mPwtn=H`$~ASJgin@U)F5NsxxeB}zJR{SDzi6+UEcil6d9yj@jl~@^D zBh?}axHV9|7}ca5!wljJti}cuW6=*OABtUF9tM6aMp-@795QV1&NWqod`Roy*ol-c zN!T80@AH;;@YJ%VVe$T>yCq8M4+T<65}89rRf4(RmkA^7%C;315RGs}D=YE^;kG|VqE zqvm|qe;<%5i$`i1NMux zsDJL1{14N&Pp)a#a=&p%C@X8Pv7Wgt53H!^9I;pRRz%nEm)J)(9Ust#hG#;3a?~Xr z30acyi{tRS{*vl-K$~%ln6DwWHus5xKY|@OIgX7T$5MPL{pYsZ~Q#sB3@@xiC|6++5dBy0qDN3Ss4|9P#P@MNppa zxQ;RRI94eII}(WVmW6Q_)~@b_UD?#ew22rRp9fZxIvkeRm!9&*KIL7F9Wh^#Q4iy_ z(Z>3V7-g7CSV+@8yaD|%DP5iITaIDEr2{M8V7}YAuP79U@ITT?{F6zU@1HUCVv(wi zhmEWjXHKdryaZ?!iMGQ=87mU>5Fo7qyYk2=xjZ-62GU$II`~j`d5JZ=-<&#W*yNXs z(xBz0gNDpX*RJ%LXzn8} zNJG5skU<7hyk+ak#fXR|d`yMAg=I^@BK^U^$b*$N*|jZRmxu(ZWgRw1`M}g^&pKC)U*=zdLL#E6%g|BO?mT(K?(`Br)cm&>bTyRg3i~`J;Iz^Ae=S`MCTGX?xFdw7-puJw!^^iC4F&3q7)Se-?ahLCM0XFA>9zvqE&aZeB`tVn} zT#z}>)BJ=RgYCZ_yRuaSz0xkED*Z4Qcvuiw-7vMR^9YcoWNjg^ke^5xG|GrIYKb*k zjWw!>rDViXa$+exv3dyZ)|6>|;;O#ou|DlspS-RgIIGV((9Z!&^Z_hg(2G!m-qdN< z>%Hc5So-vpVEg+2j2@nez$nH`}wqXTItJRh&L%DIcXNrws^@<`cI!DMNon zE2^eA8vm{5FswbBOFc#Nd6wGvudwaaHN`6~{MeryMwFMiZMO(E6lR~T%)BD6G(Xnn zxWq}SN|9TQKS3$6{jHJfzC@ruv64bpSYcNw@qZRb{7rG~bR|C_YgXGfIVj{R0qx#l z1n(G5U32Z{CfJNHMVuu1m4H+4FfZ;H5%VNaMW8Ax1zR~zCBA`o*uoyea*zM}C-6Ka z;a%(UbtN9^s3y@EW%eb@fS1V6w^nS$*GjMC zSYv19jflw-s60^Z{ZfSNTIp7Q`XOTXp~R9LF)TT?(Nx&+T2?9dv`ylNq1-KRnqN(7 zlf5uvHB)21xvqq=FeLFukQ|DyuZKrDNphF*{T;#X`B1*pxQ^Ke29|}#RE2Grj(k*}>>MYj3~#)Pxavb%wb*^E;Fk(unzF;7%8pTe-3t zhUwC2PZF6K<|Jr*Y0dX8z%)IWrOTdU^4Tjf>`O|We=VotjD`vnHnp{g8SOi12e1$wYC=8^3OdjGeZ=Bq$~9ZYtl;p^ty zT?Fk(1*pYFfi9o4!l%r}g7yuwqUoix?6ftWGIm1Oe*3%V8R`w7cdK!W6YrSvb9SQ3 zK4s}}W+}$sdaq3|`rrEVhP9`2ssGTH|4R-2cSZl|n&_1rF09pgqrY*vlQ;dXHzJQk zd4oBzZs#dIaS}`7M8>Par^X>VQu!j>I$R0o;|(*~{;wlegg=ifu|J;jv(0tiC2*ng zLa?EfmIPK9*hj!XZnu|9(o47EqiI0a5(X1&HLD{hD9RT{z+Sse$sx_KEP*Gk$Psr{ zHRt9?IBrdHb5w6nQ+ z%oDZ?+LIs5jK~tFKXptn+1{D_m(3HW3nb1*5Ue+@WyDMw4wY!tsW3OvVY3^Z#M#E1=qFzPH~BZ9-ezT^gL=l;Q+;cLK%T z-CLTX!6i5aN};$DybbQq;@aTuTI|d3f4;LhlRLA!$?n-Rckev&%yaKdcV97dVQHR) zZF@@%chKRO;;Dlp-AH9iV+!_VCvFPTy(iY7=YjHE(SJyL5HSo7AkFP0J1@o8EpIoW z1h-sK%m|tFA%A3n=;AA}$ zBXnTZ0WLKqrLKyJn(0Z~TfOwgUkmrWJi5YO#_Ms7^m*3}qqO+*#{DMzIzYO+gVke& z=)yJn*SntZESjUrmDXTw(Kc3w6#_$-sNE)+Dr1Xj&YHC}q`xw(gEPz}#;8ebS*-Kj zb|aa)u@jOLyh5_#64UJ~Ga*tiLCy0w&LBuWyM?i1`NZ$)-ZZ+E;Q*?6P`MqVKa6C* zTq4FjisrtOISnkB6q`Wjrn`-;i5&-u97Wwm*d3ADqUnI>silMxc zO@GO-{mGZ)@TycCuYopF3b%Xpl`u)8PnaQxhY0&5iCKllg92FwZw} zn_+OGLgl~7!*~-IbfpsH&y*xa8Y)IwksDJp*3+`JI_!C}*&KNRSr4Tb?mYIZxf2@= zp(p9UD>jR4;*u#xFdQjsJ{E1?YYhjnUbYjdn?;k+GiXQly*|fyS{Z(9d`9W+QapFC zOxr8`8q+AJDwziTf-QEQt5l(j!K}yoWrY6f3_Je0(YZh8W;;oQS&VJfmv($9SDBl4 z1w)iIe`EWU_pa1B@kv)A&0J-onhGwAd3Gxd?)9>R*dfc&+eb3Fz6EHJc*N*YY!GvA zC*i_M)Xh;3`f9Z&5dY@0!lP8mBb{(C-eU-!t+-#CQ^?W6OZ?qJgJ~H1?vKfC5-|lBsMx3T>dJQFrY`-$Q1lfnhorU%xZb z%uLi2rxUSR)_<-$`M~yY!?qbh9MKtVYxX6WP-;cy#}nsbR4aY`r_|KDBMV=+|ma;9*^GNFR#*CY~Z@zM9dy*o7}L5+z~~EMm_D6 z`D|t}&Q)`VK;90m5uXO)yG4a7i<^93t0hDPBA>%N6iEh)3|J6p`6j(zJl<0b-and} zcV3C749#eO2c%o;fd{uR3F z-ulg)J+$ZsZtZGb1a1-hMSk-%p%9^|`nE!O-)d8^R{O_2$`On;44O3wPak^f`Q8pZ zHVi5?Q5srHJ?-2Ad+dM^Up#gWT87=Bm#yG<6GSx{ss;09rCu(Q_Cw5dR>gn0N-w$> zTYhzP`nF9u9{`SEM2g1$B@if3Zj1z{GPZa{Z}V~%4CO|Gk1(9#=nyW=w+Ny{6Slh$ zDA~Y<-CIP00$7u=)e63^#Z#+{=m+yLwC= z1Vl?k5U>9s6BqEq-&`$2wcB9V!q)C+bP`{<@&Orm$r7m&kFI48AL=3lqb&p4dPBJ6 zRS-cu(99mMIpRMXrYfY&Y08-fV31{VJ$!?gDQ&3N0F1Ek$M7Uc*~WW-UISFyzZu7^ zZN3gwN+Mc6fjgf<3Hp3kX%>o9oe)3_dDyYDiLY_!VHV6~*=hn`I|aolqmbY)Yc2ed zd%w9VhcFf9)fQOX*2(;J`}v7UZLjAK(y=1HAVk^;w71*WkaA_iD+n=j0<~ar8$kRl zQhpjgGkr9o__vnj(@@59@DTy>Ig{5w-guEY1R)ND+Aw>)PZ-~jg&-oMM3+}Ws)860 zrBNpT-g?-l&05P?Af}?AqaYvuoLP_q0fI`=WEbR~k>0)LecyG(6*ctfEtp=>1Pt=N z$(#gf@*)@pOemNEFUJ8Tcd?A{_j3WT7&3CZ^pKe7Ae41O@; zH!@)wWN3sSu!qin_a;Y7Tk9Gj{@6p8i@l@rMnR#%@iRk57m8cFEIC7^USPEVMEwqQ z@Vl=)V%gd&0HM1B9WC~~$y^4peD0&%zACkG`;qg@TH^&`h}@*Z+AS(?qUeJhB7hwF z&&n$!Z(_qh4&h2JwoKQF;7wL;Q2|f!HShPYdoU*}rw@Z!`C5sF_J8x&4Mh%v9eG<9 zhxSii+_py=niSZ&59IZ1$dDjr3{9TawX6^9YVnmR$Cn>I*7$CGQYBuvRW=kW_OjO2 zD7;RoAd-19cO`oXl~Hv~UJy)JPg{g(N#RN9VG%u%!b{LS2d;)m5cd%K>JSlWn&b@y z?rLi;-n3`cHyxZMV|BIJCTT0G48_9U@IhsMfxSV;c;)n`0esyXya7tk!BecZ; zd5i(Qe=`AQ;E%T$J@F+Q-EdHhNTd1Mu}d8i0#>;PbE3fXo8qN9}o zf4JzKT42Y!ps==P{JY6VwDSRQWS;Ov1M~F)VOl-2=wxnnl^9wf5YmMMJER62;)J#N z*S2v|0~UnwaJ=a5ra!r<$wS8CV2g3EJrM#ypSNwZiN~t)kbAYTwwu~Eo*Y1&8mu`7 zaOBINbD(1PJA?ZxpSg)G>TVR~oCCZSAq?5&=x>#}d_TGev77(GUGU0Wl@#>{3dr-J z*U*QoRl-7`z>Z272nvk%1_dqaCiq*z-v6M?mwN{(`@hUd@m`E=E3q0yBIxWx*x?ee zc?tNcg^*?s+~2C6cIEGjnppxCU(vCM0cNh~oc5*sI$omx(7-aqfaGF8#sGrKL)QL4 znY5;SW^`pP>|G#1$iAZ8Y|MB&snmgN`b1212Pyi-6y_R$|2yE-DNX9eni+`q3(_6Jej$c4`6fQ4Rw zvZv$Sq$D6KARNtE7)>8y?1cS<(Q;uhgVA2SJ z(o1IkJ$15qvxKYKMceP^%qBB=$6BGNnHM4d<&XS_N`C?idjd0liRXhu7bN=8ZC(;3 z`wT0is-O4e>$k5d71DVV#;x&wy^rK}#6yot!InM)^4>5^Qm7#9xTVNdkml8No>h0P zGq_Ani6JTad!Blc&yl`%FGV>j7)TlWuJ{))|p1J{g!#qi&wk?`{eCvj4W&{Mw;q}JS z4U^U30D~$uKfzAl0=xJJV8qw15yruGmc?VEczJ5g6fpV*ODWg zk7I&Ua`xYvq%~RbqZ=n+witzUsNAdvx%rqi%$1Ar8=StLLYhn<+--ymCD8{s?TD;q zqLKDPN?-RKkiGf_M?Q8Wkwp$FKp{8wa;V=LbV`GU~HWdI2?S)n1RZ8Y7w z5P**w_67&_3J3KL2Zd!A*4BmpPniT=%YpJXgh?C1*s$|!Alp@Vi`eG5kl9kaOIFyr zlhpE6ZQJD>ta1+KJ_kFPg9XpQ80TPo*)Sh96dAL5X>#>1MZXEw{#&WWX4-6+Sq|(B z3TpXN~_>B|Bi^ z@OX6^k{o)*=z=12L3J*{nEUV_1mfK0{UB#2Fy%hN-gssX3iVl@+~a}Ac~%;!&7)Hh z!Am?NKR}%*%uMWgD`I>>*)0%Q*A5#oMGcvvu1q0>d305~_OxYvNr zTR<#7#5MNsZ@`QrjFSQ_5PMv~)L+IlB*K?B&XUK?otGf^Y24i5 zCy?a-%>6zddwz7&OBiQV=m!$myZ};$!AQeku3<1?LM(s#TFmjlc4mT8W`bo7x;q_7 zp+JKC+qaPEx2SVPSZp$&N`>K0TrmLw9&*%D=;wF~XMNiiDv-Zx1xX%&JxKh{LVCU}YxUCs|u>mQo8=YmOsxA`C||J^arq3jPH^zhxDaDSJ=Z=ih-xQa@XxM1iV!s zcyn6yp%LoP5ts*6{<{NX`U6C$G28tCDi;&x=7IY~l+%3ugwb0&u(L|W>q^GOAZm2S z9!4>rk*Xt3!}dk~{p&E^&u&AnrIs-+yU!LcH$&<=;6?s{3Tie3#>xjQvnB8uefz&W zSQ`P5KYKvwO49X)gbme>T<-e-6m*7gzYZW~i@#V0csI=8lp*VfNr=^12e_~y{5MRp zZasK__V2u7yp40trmtke35`%n%QMhU!H zQJ4*7MBh>Zy-D$eIp~B)@kqGv)}ahTflg1*J6NzP61=b&zz``ujj_!22YmE4L)bkN zq$&%Ln+4c&C0K7jY#cO49dD|_3g6*_J2SX1Y)~y(z_DeO>uVcGLl5kG3{aYs@Gb_+ zpW4d5jD&ESlc}vOo%@6Y6>SWNUx8d7lRQns8#RP%x5NHIAqH(S2{SyXBPhf#0EjLF z!F-f~`WzsWx|C`gR&))lbDNh) z{*?m?IR*Pt23*i5G=-{O+X&QPwM`{^hxLhIv&|j2F_kM}~A_6d5l2S00N4im)_Y0$7-ms!Q zfXEDfhXHecDy=D!ELDrep|RKNBSqqlyRKlK7t@&@K8h&SzwXW3EP zrZ0%MJS%w}{4D=g4l*i-+K+{CQUb@E-v)IgCe%l{oiITznRqtYhgwfU(|fW2BJc2* zS7b_BGLGX%U>#Y&_gTQYcZ7$_DzmK_2_D6CTy#TwZp`@$Ij|F7g5~z)4+{_>-&grF zBw?Pf%r{9;ImUo07y7$K*@SnpX*1VgNK7jLu_Wua0Y)|X;{QHks&CHXUUh*SyP%?5 zf$EE@*BB;kIP;LmeIBgtQE~f99d#K>aCx8Xww?#$JEX5~jo{v-K}`k%C=cn|LgLAi zqdvG^;gvdpteil|MuJTz&|-7y@ozm8sWGrEcHD!~{9F)K?;O@-K>X zT^VC)GumSp$H(BhT%LolKX)kwHN^~reWCkk38;@hJ`;e_b;ESMwoRx-laH1=oFCu zPzb|`C+HPbLjKc4?aBkk#FefOHKmqwYTN332u2qa$?B7<{g}=B)KI^2FqZP6~LKG_c}1_tAv!nzvt)&W`L`>)b$Mz^pGfpsYB;jK9) ziEd!tTmIl^?rqkvOH5vgV!%Q!LmS45CRy5ow*uq$ncAANj`v(p z8Dsb@67p^m^0U|3bgr1tr(p|lo5wht%iQ))6n%UK6XwF3ZYU_Qaol#YMnt_7?7+SiLKYBIF_v$0QUw06_{705LNLq!|N8KveY^NNV}4wr$Lm zA?Si2|6vG*#YNcIsWN-Zi;h458_eiU?y%9P`hY)X^owWFbVmY)%L`R_IPDN2XWaZ7 z8dQSV^I%-_9U9bqAi(vI{;nwszo0-)}eI0stY-FguOCj zeC;30jTS)to&kuMF}B@i(j6@U_L^pZidBU3?P_GV!shdPu!|}}pH9rf@`hZr!)yY9 zU6%ydSJ7lv{^X`ojx!+&e()3SH2}i~P~7ur@Bn z^5T`Z=OM`nj}rTr9Z>ju}j~B9FFKz+USNJKxu(?}+@l_NLwc+xoU`!G>d^-tx zO9}Js5LEX)Y~vOva!I&6uYT<;fo^L8+^-N=3fHzpx#E9slbyXLLEkh1%sONh0<+vs z7GP*s!l$l;X`QOG7lP=sCML5aZRj`03< zNRKbmm;1{n_-1k(_4op++NG~Is8NP5flIgqr#J+gv~L&v6OK_*sF|0*i)D~kh<<{6 zt>{(j^8+aA)E5}vq3rhvg*03NVpkZ?L*f%|Y0%+UfU9fm^d13daO zJo8z4RJSy2BLWal!$2h@bG?E0>p?t!>=qVvL^$2S)vuDWa`L#$EczghKDz=&(c&3} zNRr(=G5`G%Rz!>E6C^2g{Um=d0v1Ob&BKi8tP#(TB4F0E1T+r`$IB5gHd_4A$H?(B z#;||*=F9T1KnaGR`$RHNf^~c+V0F!iPjBCIn9-6r)2vf|d};VYf^A5B$u?u-9L>Mk zp!48DL(sWo!#J%&h}NCtkoxdT@GV9|V_qGFTRqZvlYBgrp4aXmzHn@|83>aYywyLE z$Bm-Zy|2G6q|eKwodVpO$KFhYiVK*1U$WgSL(ly%=8mWR z=vV!Vd$jK)Rk33S{+F9wvo;sqyj207H$?IB>~1B=PfJ&d{isYwHb&hebU8#3G#nS$ zNy{89Y+;prDUy;Gn=h%}XRhRLtotpBPocG#TXG!A>vW;G*GnCXWc2K(3u)-mQf*Je zav4hY0kx66sUV!sRDFI8+|xiMw^lXb_XEVTqxR_hVfy>;>4l)f{qNzso;x@oyuI%3 zeC-dudx_LS^8L-)mdoj@33V+lOXn*@#oANe@}kIB?)^Hozf#n_pD&tD;ZMeA6?C%{ zmXz+k3b2IbS*9bj+6TXJzYF2q_8i!jU}hPxX?^qzyZJ&$tgbOt_`7j+v*? zl6x7l&l`Ll9K7ivf^MXr)mh*(PmMXIRBW;mE@iH0CKQttrDsQv6=PA&l}e9k-}RBl zsMgLsSj#e(pC7Ee8$yIfJ6ZrC}1Ze2r<1{H>U@g9PnR0c$ln@Lnr~BBW+U8Ce zk@#O(q{#Q}S{#>Xg4*&1``5e{&2yT{vAS234W4nBGB7*Q*w>FZFUhfn@XNk|?pzHj zMK_gt%Csv=-`cmSw6>zu$+5exw6+k=R>meGXjh9d)3TEF0JiVFnP>O_M4PmEwh2~s zSQg#!G18Q^K7!pu(36(B`~s>7Y~|d(1!6+?t+^iMQHI0FsF+#EVhw@Bt9)dZL%G%$ zJIii1-AE&cRSTaecFUSU6?V_vra_gpxJrljnG%=mN^1#ZWhCsELUn=*#t&iEd}$*x zJfPy-k#4Bh2sT=VlJSHP6;(DM5n>nB$}>FgNW0NUXsaekB|NJ4l@oK@Pn|WD;KX(@ zl>@A4f@1TdhckaFH)fytmo63UhO_OXqyFUX&4k@>a#R(RFBA)1tSWUUgt09&R8J)X z`AxKAkhR@4QYMLGE`}zr@kxV8-qpi?GOT82a{ZkV^=a3@Einy@+iW6TZ_e?*gmBt% zX#_n9l&rg*`nXb|rgIS8rycGtCdX1$-Qdmn`Lr6$p0i&GvZ5@E=y6_zcYOx&;qdtE zzizD)D}`QQ-9?Z6=*6BWK1MEG91*&B8N{GVY-c?xEV3mXc?d0&?UDhoo9L&MX$L(i z2eF(H)~Z&Ame!l1AW|U&&EwNPi}#Ik_Ur;w4V$EllRD`mlL95~|E4scUsi$C!+0;L zdd#O!IEu}5pE}srqUypV_&0lmE!_qF&M_uf#eSL)evy0e(#fz==G;(E=?CvmNptHu zOA&3;IE2@CvXe1(c&pB@nG&bd^1m~RW_qc6?tYDlOQ<2UDvJI;Ci$s#Qn~7!EY9AS z=wEk1BeWXO%VTrbg9Af3O$R;Cz%=cXR`_FJgHsc;mxq?#`*A2w#J=vj2PYBJtFjv; zi+b&xOI75bODAU~rzYcgG+IGPvW|4!ei;yq%B=|CH*+bMQNaMHL#bmhZ?ei4ujOtp zCS#(g9XA82oU%y)>w5=$e9%m7*Zi{RrZ3t<=PXZjajk??gFp)h?k}|M-U(MaEnk-Qob(Sm(taFk& zULKjy8Fl=T8Pd$8adRXO=-B0V@Ql5IxU)Xlh_`_gZZ))|iK%(_V%H_E=pj{9W{4w_ z4koav38iY^uJRzPl_)ENq7APq|$(Nvy2-u*rE3 z&K|$uZQbNjTSW#x5tyO$4Xu;w%y;XuBy|4QuV23y&luS~EUGkBT9f73AX6m$ zytq5q7*zsd+CI(@dRW0jXJ5X!_{dYjik@-5g_va%^2;@i8?(KCGUYnP8*jo957JOw z>wzD|#&rDbLDy|!v%^(nz86`i^wpEZ1L-VZCFcvuD>&mwI~SqsQx{Z8bAQs2(L@gVlhudU1EAYS zv~|WE?Da8n&E8F$d~q2~diJ6HTV_?ie=}zWaI}ivzQ;z`>J5WOEqr{xdR2qVyzp4q zLm)oxQ~ta6Qr)9QQikj$LQtu>c{x+bF9m@vOD^S-5GZ{~#42W~O$lX)NjJ} z^JydR?0_!G6q7@9;=OKbGU4nQqXy%t%Hjeu22p1&(N4=Y`x1!EiqR7S2?)TXXGR@?LN9gHoKCbdiG-lE^7F#Y!4cbwh^c#(&4 z5bt9nbQhlaE77et@06Yp>g0*lOOG53aXzYHR3TQk0dde{+buiB?UUKq96XY;i4ljG+VXJ!*BdIa2Hq$8wEyZB5RNsh)C#V< z<-dP81*quks`c1TkhSw0wYq&j9)jji_;>dCgevVRiTVV1S+^P`faCiM--0d=~aP66Rp3uUrpf~3T$F7uR>AsxbsC!2wjo0sJ_6=0nEnOfbU zG{fl{H~dJo*R+|0dTtvYOVY?ECD;6(fuBSY^arOVyhnDxK7N+J(LcC-3Lg!w)7QXE z5DpS&66eO{&}tXaaJUSxy(Y=CnvJvk&0E>9E>cJ{)tp1zW|hffgJ{}0KD4f6gL!o! z4f;E9(bN~@dPGj*u4p#BSAJ~HdpJ$3mfb~VeC`;G_}aNVo5OTMc*dt0bkL^GB|I^p`PD|I8@L&QnuS}6Ztm)myos`;n@yKfhz4839n#r;mfxPyp z&!K7BeI?|jJM$(2d`W$Pq+H{OF34qYq=>$>?>EAg6_K6}V4?74g`#=mR^7qT zB1x;2KWpR~zx(U-kTMe8|JqBdAQ8mzn+|&-PeqZE8W8IcusU?5#urD@|8BZkmQ+#q z6!>)7jWi0>O7Pmw6!h1JjYd76F=(u?tC&Q{WLKt1JJx@+^j5ccGd=^uC2+Hf;468_ zU)5Fif(SvNVUdgJ=%*A!`0M&mm(CieLCwY7uV&uQ?^6ROKg*`6=(Q+Juh9K4!8K#U zm4IAewVz09<{Yc6kL$)$EDNHiO!|ENq?1N`q<=`qma6NBN?AJ8^^44{7mS%${#qE)M2-|V$xqMfU3H+Ria;C2*Zci>Opy6S2X0W(SW+w<{XXR^$HiOjH_X{$(V!sRRjJ610d zL#c!(jatg2M7#ak7NPH*spmBxUikm8O86uS`rymfF%B%wXB5^&h_zOi1LYz$j9;qC za!a!((Jm2M9Vl$5)r@LTfnS#Hei64#L4swedpw|O_%lUTar_xgn+lF`qCIkdkz><_ zA*%I!M84Y4whisIL6{mlwrF3+QumZ%?1{AUqQ8eO`@L1*LJvs4;T$mb@p1zFGYy>^ z!6o#@?vkph51C)w?-`X?W}-G%5NK=zEcuDjo=yjJ2em3h0agR6o;1lr*z_vML$`K=p~ zmy;is6_@FgR1?O--`N4Lpt^0G*+$>xfh7TSe}3Fdy)NG5i*CIbE~rfWfi(GFL}{QU zSMv@2F)iN;#-oawm`8}6}W&cqhF69 z@e?X&s^C18DOc5|avQuLhvF51jp19nre+NdN#;9;1ssCMuh>aKzNk5AJ zsPBV1HH(%$FTWRLPAwo@ajiR%sHs_DI@G(?W0+Tx(f^Or-GD^arM-lNZF4S4BoFPn zQCK*l7%3Vc&&eJtHlxvDHl%<5q=~1QdCuvjvg*H-s%zpZipbB;jLTX33wr)<0~sxT zy3X%8oh%>xRkA)&N(JWERHA8I=65{ec@>5Q+f%x&Nw6QdZ%je$J$Kj3EP|y9u$2b zkv^dyh^*S#e6GY);LK-~y#af0QK7@&BApDpkTg~x%pGXXbEIv2bF%#nwEQ%0%ByLN z{ETM|S(mo{RUMaQj%Er2^lUo}FT`#r$%8oE-(?#bW37Gevx~Vhz!;q3R?furjo3!U zSnNN~D=NaK^?r43%V0`v*UIWf?A|x27<+pu(8ie<&e~F55mqeeHZ#vg*1n&!UJ?2f`{RagDVL8 z173vTkE1_}ExX*7GdPG{FWa)*bTi97YV92c?T*>bXJUt&U#-NxV)&$duMDjPCI(_Q zw2kYtos52W1DP*xYQpQb*L!LyV`v>)Ft&~{XVYQ-m1A>A&t8KIQSCm{cSH^`iE$ky zPg6CX_#eFYqtRlxI3{L_l6Dn7dpOZjx`=n{j-AA)nHjR516jb z4kew_R%-U3*02Sg`bD6C*w^RLm$lvfnjFRR^Bic_bB+S1a_v8&E@qWW+`~a52e0mW z$X_dUBpqBLpM4>3mTFR-;!{?b;rlF(*qwP6&E@r0dVm>JEV%7J$9OIfK-juq8|q;k zPjbm)G=BJI_tUtDop=M%*qXRKt84oxKcaRY#244ls(ENutW4o4q#J*Tqjz{mrFvh{ zG_^8V)hUp2YaExfr626?05Y?)S5>bO5$k~xtaGU|3jq}qqD3;k?kMC1LNwkqUpyHx ztygT~4*H(8G1HfBmUoONSF#*5RYjJy{{|A%_+#rw(Mt_6^;ZEVK9+YF@m~=SRioL6 zvQp^Dc4lz7`{Yc*c$=~LS*w6lA6(k5b^Yj~W|?Fljnu~9oY+%E6|pK{9Jg8*D1dM% zM?A%NbI(>9ugy8)rQD*M+RTNzln;_a4lXlymmI|lN3SU?1Jk?%Vu{j5G=p%Y6XO_U zX-GR21s9SZDPMAj< z%qH$J_juTRi0nt%ZaA>4dtxu?@l5 zam*OHlztX7X4CD&BuZ40q>AD16f2?pWVv><6nEg*CqfOv` z;@b%+_`Jt_Krd@Rv^+zFhwZml^1G!HjD1IX!C>|LB|r2vkU0lpTw3lGDjJSeks7qW zsl6K2icP6d_@y<5K_!OxXORGpk&WG(e0+9;Xp&n^Lmm(oLpgR@I($r4JM^|LnzgJ` z*QR8=wB?4cWwm9ODN~89f?)Z&YBuuwgH7tOQ4iyEznIu?}Ngr{V11)zw4$wB>IYp^##hC)L7I5M%{o|gWwWq! zzQXte*BR`fO}`ItoRGlI-29Cy^V9n5K)}+F&f$_-T zuk-Q>8+S>IJ9r)mXJ2z=b&m7?@E8FuVxX3?Z?7y`nLjnTepRAzLq^9bN#ez-14-GL zAA-R3?w1xOuh0du{oA6VXwHsIX$}UV?aQI$_h6OkG`qm!jou80uM!edY_N2U@6c?T zWv0g<2o$GJ>lepDl&%|}rj?}KQbx6wc!zSzv)WJ>!4|kB*){GjC4YD#Q4_{ZW97y) zm29T1tD5&u#8NVRA_gwYZZcO&{8{d+jhg~d1ZPBy4|~%G`Q{8Ju@2d3gy0yK`m)1u za}h&&B;$FJ;pP5^pND^*UOI6m*vdw1ge03P8Bb`Q-pz=WG);XjD0w->x%9cs`64Opkii!?gvQ-6yrU8Mzbn)B%i z{|A|!T(3QnCytCr;w_ddp$P97NzlAKmQ0edp3K|17TLc-$CyYi6B^Rb2H_ z^60Ttv~G}+i=DiirmnI<$8z^JpAJOp3akLFIT^-Gil&u%xJusr9zhHM0`19r zOpWA128L4l3Pf5;ZwGs7RO73UOBUmDohhvj7cW|Zr3$+!a~1tqIIh4|>(3{v7YKJZ z^AX@&*_hk(`uJYnFUS}Pfn&C0B@TMCi&gm>)ps9zP zT*)9Wiihz0sU##k>Wh}6!ENdubjWw3A2jy%fYQk#uG#X2o z4KNrZizAk`v!2E@W(WNM=G)^;jSlt!%i2=tKcdvcwimpqO98KObHp4^^wT8tvRevS zDz%%x%~}5r14*?@=J#Y*tCs5UgEb6x&IQ=#mn#E^oBAq|CLy{rLo~N0aVot_90u$d zzm~Ynh8Xl||4gGkyTZxaj~5(W>8R$r%~txE7C_CrXD{}eG~APyI8jeF|N^(&l&i9(9JVD^MjLC zQ@%6_luqI_<`}ZPC*XXqRIjrmXg@)&?-j>E`I%kuX7((0h~DEav&l-nK8;#qu|w-? za#K=NnTipVFLn>>p~iS#ISmqa$>r(6B>G8Z#Z_`Ac5 zF>HyQ$OHlYYQym3@{bZFHUhX}YdS%_Uvzq!^jPViB%a2~o*DXQn^H%#J{|k#*`R-j zS(D+R8!UunyJ$sHy@#1-D5aE7j~E4|2^+!TAY#FI8DBkd^H)kNTmm17wtOMhKV4R6 z-JRo@`$Sn%sFmX!$)Xc;bMIhRSr}w zM2v-w0zF6i-9pN9G9AJb1~*vPXYBs*0k4aA*oJ*dpWoBOq_8l4!Jga~Ri&hTDV@=y zdhVgk^GD@|+ftQpVrb-twSYT9K-tS-IjBe9FDZr`;?i=j-cgpcBmApuh7DdhuQsx! zo%2M#V-@#WCv;=xYsxcacd{I&ro(aKJa*$OqP_j@C9m@)wOO_q5uKr~;Fzjgg+G`- z#DpI|(Gwm55xK?dw6xNgK(HVhIVc>y{{w||G#G|x~(ZT2^vuHx@d*%x>mR%GjZ#ok}X)_$skYCOD!m4Bz z^~ez(=^9tn9~YR`T4`dU;WQOfn_K$vhB;*S3KrAB41dVQ zyUVR!4MbHQ0U!UFCR|jiCZ+y+mcNV(bCJL^k-*!$lSFR4L^(>}bv%61xCP{|;fHNS z((Q>U>aEr?!gS>Ut?_uf4+?gVjK5A8(Jiz<$B?(8XN+hG2?DJU2L4CIgc%m8fTjrv z{K~s1?ptP*tpq+nD3i%GpZWUO^LtxVg#@9`y~_2St<>~QZTWmB-stt0@iS7$As6hX z6R+_eGJE?9on;2_4h4DrOZ|JTn=mDllqz(jk18+&;yx<*UFnA%yhHhS;{Uso(+Fi8 zzKwM|a)rGMVWhfOO_hQh2j2 z`IVk^kcMu8cN7PE4FzKbMWLlY@8>D9m!&*$dY0M7ITH=S(iNk~eBrf$-LUe@+H$Tk zzK*g{p}H5AN^g2IDd4t_+~QTgN;H!v+L$b5RC`gGVdXfrBcM)XrFlLvOT!jyEsy5$v)>LfxH*3|~K<%oIHYO-I z&C^pxd_!+MJ~{3+HX9_?d9bdG*GF=FK1(J(671~=S+5b|VS_F>=dj;L^49bd2EI$4 zwP)y^;-2ENy9n|X-ZlLv&E=($<%#_zsr@Ag1CpDD$npRehC+9SHI$4T^OIm_fhW*H zR|ZQBhP7ImaK1#evK0{%uMM`kDVO+7{Ff*=C<;Cm1?P-{za$`UB_QWw;=Kg%iYr*% zF(tCy{w44R)OPu2SkZG4qV7Thyyqcqv$% zt697z&J`|hIo3fDE5eroCchD|v&@Op!J8h6GVUR3muwTvEPn$ehi=0o3{FN5@kT&_AHo37jIc_m; zuA+5Y=Aa*Q>PeMO@4FvxGi`E#-(>doaK1lev46-a{*dMTA-n%g#`v2oj=vYlFUKA0 z?o44BLSbo7Vd+eohYawa5lc-V6CzwwFgz{9+Hy?5Z0f5@A@^Gz4=9V*)1nF+7$c=hIb^?vf| zW!`~5e&-8OwAHB^QK%TPGstq6a_;@oK%V2k_ix(fb=3&6RIm%0gfUou01GG2$k)CwMdJ!zDX%#d|lRutfgVBqLHrZOE-$=X`)$63xH2u zkQwjt(3JGe>c*c~i1l^^z;SnZ9<<}#ztJ$}ix=tz%iaHj%UzIj?(%_ujBOj{@gT+5 zPXE1b5NGTZxAX|^E&pe|;`ixWV%9ES+LUd1#Te39@+fg!WS7rp+IGKk%nvHrNuR$` zF?L-dzBcp^PK$LOpVU~EJt}nICHHR!UZ-Zu|Gs^nP`-z`)Wl1;@O}rL`?QuMRcbnH zc zh6>emp7uT0jae?Zt4}Q_32t4gVgp~0nHIG0eQUBDHzc!j6}9?%%tS9FYuLa2&1za* zZ}pCUYHM(2vE!$E@kpWS0W*7y7Xg>xpthI%^(LD<&zn>Vt_A`2If^wL{fapKS7*cs zF=OC!ozQ%-m8y-hhmWm6F2R$KvZ-x4j?ywiv>Vw;L~%6a>M ziuh^&FdlC3SmTEST_yvM^UK8_H&fWlKC#yJ9Y21hm5}`vD%7)#?_N<`ogUN`%E7kZBzauej`w{`Ttrv^LVJf_kmZa zEYT2VRAkM*%vj1=VkApND8@S0FuInIlp+S#5;2$}O{9cmn;~1qwGJPNv5XdD%VbK_ zB+7UEUcW!?`##TeUgz~XbMKvV&VBAV&jYJja4^w$m{v0(d~~)z+>hP0IwtVwO({$0 z;(1|{f|8mIwYXz-QQ)i2@rQnIU8Iu>8`Tuo9Pd8^&e@wE$RcrEvGYq%Lx_|w*qr65@eN;<+E)&>%pA*sIKL5Hu(?raq@~oJpW2yYp)Ib0?B_m&G znr_3C2}l;dD1AvZ#K{{=3?2Oq<_~= zcg<$)HPH1F*A*H-UaYixPgkta3@ECQDm7C#u7gJ{*^1@G=5KhQhGu>4Y-afXrem(@ zcR6cpwW8~8JeT|!f4!D^iKcZdmVQ<1poOlj6jX;Akwaw!m+($Vb|YerW9rrMzGcU0%?bF(|VV zNbRoCoeoTnqKpNO3$gkGizUj31061hE&|HJ-r51WVqH?YMGbEsB4|%vNev6~she*h zXb)bU+wOc-mi%0|D9F22ingv@g08!Mxd&ZmU*JZ%V(@Zl4bgbR+wL&!&kjbr4E2iw zlJY`y5C0#MxzezZ+Qy#bm6xw_G8QJie@fZKU2aFOJ$!X5V}auRSBi#~txEb?$RHPF zH)hzGAK@PU2KxMyQzvZqi+BA>Dbed|eViI})b89%QmRUDl$hfT+U_?SD6#aWi%p`D4E>zB=_uwvJK}16wFD}w7HGAXU+a3 zp+w=+unl)<((YRk8xI$ZICj-r)In=h;i*lz^;ulGb?;l--0Y);O0p?PJM*jcy8L}1 zL88d!GV9*@d?i_;Yf;kIpdiukr(DBim96=odL;jdYhjXlu%GCU7`5E&^KOMn3Z8+Y z?|zx*9_+cNBwMGY%RhOe)VlYdpq+W9N1$l<>EPV#&MG@|0as$uOI)bv>y`%VUOLyX z?CvZ2ZvKh3Z1SxP{|Q?ODcbF%pTWArA}o5K$HDP$-9m0m?q&DS-NEP%>UOZU12p%h z)LC9`4}~`l?&t$MsN`bd-p)-L-$DA@KcNG!+>eacjD(2o;P4J4xp<@S(vvi4x&zsl zAFm6!_3TuCwu8kT5OzS{LDQ>STHX`QDcp9&?KCbfc?b7)K#+PO?CuZ()0-mLHm}&F z!)HF!nVKs{HGj6`bqTsuB0Ctz48QQMpw1Zy!Wlvs`8T9%{qHJ;c6 zjLL-@5hZG0)dj(f42cpz1y|5(E|9oC*56%^{8 zS@$j#E6I-DC`t-h4ibI+jBB{hHFzr)&kRJi#^uEXww~K!eNd9kgP@ctl^moYmGX0)7iNeMPSMlAPRa>hr`@^)z7S7{a<$K5=bZYP#n4 z9mLJg@$$ndWMAM?%qG)<-VXTH7bv4c84e z33Xgyfn%^qkN->i_tXA%-EAj?*RL9Xp22^5Hxnk?l|-~R>CL*HWxStbXq!$&Lr`9<&}1e z=pL53^|)Na`}YN?pw!QXK9qZI;n5icyHqG%8M}M|!hBBkpB3Y867qWqR}DGv-P(;u zRQhOti~}_Y$tG>Lb}q_kdO~AIptDj+pOkvZpf@-!hbspUp9FQBsqR|Lg#%c1Q9#g_ z@yi=bv0#`ZIKQ+ZSyG-DWiuk3Vl?D z>_~7C(B};*ZFN%_-8BN*bF;OR5Nl}E^(=`w6V-vu>$=RI5imjvyWR|bZUccXKd_3R zI-m`teHY6cYvdOj3~B3UdS9YE1pdu~Hd+B-`@`B#;m`~L<Tnb;a>vN5sLnYOk-9yTES&be9@prsmL`iCSOf zd}~grXW!*0MJzoJ%&PHyPfiVAb?~?B0T`4uo1$} z{q7qVzgT&9uvQcLsR{W@G8HA6Zjz+T{=h13zA(@{uh!YmxKiMUNA7$)37NSia@$^* z6d)|Gl~SvnQfrd3dR3T7Jc6FVpr2uqbJTiU8eS-TOU6Jn3TPF9NC`(c{eau8!Fkr; z%r&^doDQ3YeUsPo+l0G=50g))(t0CN5E_5gQ}JpzHCsux*h{9G7&1$=)+mZz8$vqxI61Tmqz|F zrocENg1v)pv4>_@-d_&_C||~D5#||~feqxehMZ9Qi*dsiq$l%)mgK;jRCyanbisMZ^Rk)M6hOCH+*56E#HEpetL zwN_N8T;St8>Xs-l=Ep#Y!GH1ZsZIu2C+`5y@s%n}=)9NhLEu>*nRr|qCk`kurHeZz z6lX6(@h9%A7UFFl0AB;1{^7%DAfii4M(nAIedNk5Ap+heAE^5a9=61!fi3jm3E5c( zKgQ-QsNDin1lqhqG(_ztXfm6*>0RWi8^OcRP(Lg&M-kC2LzlH?m;1>xhD<-0%Xuii z3?-aSj_|{@?qUumBm^rk_wI#vSu$dgxbOrWck16W(2TejLv415a4l74AKa4{-jE13 zo`xolF{h4U-LqFMvRA#cFJk3L-4@WN)Vpue=f1VxkYl>SxIZaM3=y41zKP(xvw&D~ zxVzwHl$?C&sg4alMl2s#E@w{wx&+{aRB{5?Ql6l5hTEllzt}-`q1rtF;sm){7Rh@M z9Gl%;`qmwGIY5SzP7$8`cK_cnQ7jqX;tJV4q!!4{Dp?hnDe36r$tp?J!<-H$V+HGGX#X8n7~ zSptZXbaEjwv)cbD*XxohHz?zRno1>KL9%~TBCg2c8bKnUhppc6fi_}j6H2oS{p5HT zlyDk37Rg>31Fz;PiM2Y#8u07O_ z?l940CVO_l9f1_2I`(RCO&?BRak(i={ID06g7$Q4RO|+Q#c3AFUpw&wjDc3O- z2ekUh={0_lWap07L!HBveC{LBs?IEK&R>0lkF$iF9t}PI;vCophLTauWqNk$v;A%kDt)rwGeB2p`_9j#3JhfGYdELDy#+ka33z%Vg zemhZD2*8TJw&C!>Yhiul=O{SJk}-|MafF}&Id%eQL+qLl$2jkoUZHl`qP&OU$%1lF= z&-y`tJ3@U^Pu83@%?F|feL^IF5{p+^SHMI$wkNXsR|tft<6}HS;s!&K&rsu)nE8YL z45e990#HNq|0)T1S}fg;fd5?FPrf}su8n}F;Wx9uX`Pf>M{2wZ^Hx#U3Dw!QG%rE~ z;?bf2xyFyNP5~$7*zHL61_d;cV;@FvSQzwMUAmY|Cz z<}e~UW+%%h-5GimCB}S1H|DW znQ2N%T@8cLt)a2z!uz-C5?JcYDaPQE@@#W2SuM=}ge8XC*K_f%m&^R+;6_z@$&&dQ1_370j<6dqjk7YIzL8ellFKT`6QD4+zmdQPNpE) zL^rsV1@{{Y{Te@$p}14ay*Ww8f;w}Ixn%>-wP0i*aowVj6s+kKWI{<=eTa8cX8x;7 zTCKvnDKMAS{d6y@LKI)jVi{O0$M#1&)AR!+fpkB{-7?V4f}w$Acb0)xmJCq@=br<2 zcwjgntOnpJ1H23*f_@c2s=~K8K^gAQ1q((vB6c!#Po23CbVXq z`^hEwI+n@%1>YR0HxU*p~6nYi}6S`TVf9xy!9A7e?K zk!5Bw`hVL|t8#(u%R_;Un2ss}fXzo8k;5f|#I}bzZq(2RfQWj4vD~bFADNSnGL-;` ziWr{;aUqXRatt5yHFp`I8a&uVyV#@i_ccCJe<%nw>FoUo6EXV(R8w3T;$vFYR5`PJTEUAuk<9w0%k=(Ps0GZ^uq0ptrtaH{-{TpoCA#2ee- z7c2R(bLrZ?Gp&g_i^9-Mw6+I#?)Y06J!ObyMS%n3I^|W^5VzyKmGT2|0Y{mMQ9>TW zfwjdtAtod*6KwYl=nM-HRuiz*R=k>Z0K9*gH}=`UkLsC@f`&V_p*+}cd!hRWz~sXS zcYS0vqqm^>el1R(c`pO}rZ4bgD0^(&N;bQvS+-p9@^{J~vO3-;CJRrnB za&oYDa`5t-!qo}?)BZdgM>(PXM;L<@w~mwg9)WkF|J{xYkdW`WxcAf4KyXV)jmX1n zY7dkdk?q@ItuTx4diYuPAPm;YbD{c6b)iaF6#c?jD~o?Wf9m&L7Q83<1r*MmJ($Wd zeUq{qNZlvK=PRczVsV!D&~9_(J<{67r(Oj3o4Dz*HsVMbJ;YnJA;X+)ccag(Ez=*6C#x|tAjNpb+BDCO+kcgpde!}L`3A9WT<+wY$jtP(NTxeSf zKc9hJe@Qc$48YyC$oFBaC+jSIg0*gouTzuM{L1vU%gC9a8NSZE1RONb# z4k6B0l++V~W6T#5sY@Wuj?Caru>LgB?3x)3j_?^>KfqBlnsW%vnPSur9I*FZKS?xV zhG(7kUazP9?VrD8cyA<#7}q)f&-C6%dkEV=vnfJ~R9UXUemO9slQH5=+^iZ9FV_*( zkFHLYxxI5Sw*ktRAW$NN-LA>m3 zTk+VfR|?pUKGw{>_y~&_wU=vN{ChSMk}VY#Q(PmaO}YcA_$Q@WiE~SjZ7B4WsaGBd z3BT~yt^-qhVIuIpffKwHE6J0U(CPuhN_9r$UB1mqyIur zQCG|NUQF7CI(S0d0_7*1rqB@MEaN>J`FGFWZ!z?Z(|tc{s0E=XTIi3hKAd8n6%|8| z+AqAE+UnQfDIiWLJbF6SeW`r%-Ng?^mUlqsHn2yU3<^OX|SE_lE`t&U73t7K%EeZ5esW zN#Uu%V>cUbM{|Yja#fjx4@b^bBSzHUJM8{FAi=^V-OstZl$LpU7v-Rce7U*m*<#B> z+UFvVNk8a0=7j-e^`07xp7xkCFEZJGR`AA;G?8;135!_A?uKKkyB||n@hW4x0^@`v zeP7};W2w7%7>>TODItMBo@6KBehR(nKX}UXTgO3}|Af2}qROuc-h0p1Z))BZ;(9%0 zb=STnH3Iq5!Q5a~xsHkTt5QpFpDvG;JYEfReN8>m?o-}JgpOt>4tch_piU~cSQN|OyxY<1|`hMitYL5)zY zvDek((k7~_ul5&AP2Uuo-xpXc`ds;Y>plENwkA%k??2l}S-eltrqH#`8WIoY)J=zI zi+FrngA{C9!wgfl=cc5V(N_;^oi_Dvy+1PlA2ErGM_uTu(}q#Q!DV%bPnK_k^G82N zJTj-1H%om?`Q#QHlct8bB9_{fkX+xprTff0}d4bzml{y7tbFw*fuu0@WzYOu!b z$5#l$!FyPf4x^;YKYj^fIs)$AxiRG;h7Y{pFCbUjsw6viu+K4f|E^i*_*21qs86Z2 zN*<}nkMEGHKMabxn5sC6JK?X;RbD8RDVnAyl$%VLJ1VDUdyhPD-^*fnju!HcVy>*7 zUUtH(sGhHoTsu?;{f4`=$2DE<#M;l^{kV_vudV2W zZbzTCKX;$F3Em= z(aq?2phW=SWqqB$DDMpIrQGp+u-Co2v&>v{gZ8{nv-9n&4m~e6d5Q9=fd*+RyDZ}F zs2zp5^S6$t33ncXx#A1t(jJMl@7m{)*mrP1BwYW2%}aApl+Fd8_DV|f@;V>rz?}7~ z{*zVlv_RAPbMDzyA6UMJ=4xo{@&T&fyYHS)j|g5!Y%Gdyeqr*omBGSr^Y!2kKQe zhr=*)#+^KCt5>h+h^j#|0_{>kPDy5oWEr)z9k!f2I&E9rfWY7Ydpo;Oyf?!5O_Hy=wK8` zQICl_)pyL%@Jf&CThDOMlP^27mK*2zx{n=yGzkt$l8a(v8gZow-86!a=)xk})(?{N` zqXPnT3=Psp<|E*(SYi1vVbbQ}OLK{RhL7$_=0?D2lMFjePRmK~pI3xI3#P{y-MS`0 zh@h|*b^0e6Zbz$G>{yWfs0aUkvY1nV5;i&?J+?hXrxUWR7IjpIv5_T~rr)wT!`St_ zSWvpL*PTVkCg%1_ulxjS4b#0U8=*1z39moLe+UNT7SF;s%3k47{Aa6j*iRm0KY`!7 z%>5oyF&-Wp-sZuYU%%NfJ}`T}M*ZLV0w3#Hm*CHma}6cq(UGR)gb{hcam?>n0xG~> z!)slh7&kQU;o7k@tj`f7Oveb2s-CH{37XLZDj=?jGJ}IXK41J+IV>Vhy}FFFIpO|| z=iX-2i;ln3xD;b0>f@U)tgH@+YTO7~QtR8zv6Ung@fQW$U9=qRPfHou-hDiObgh>n Gxa)s9t^HpB