/* * Automatically generated by codegen/smith.ts. * Do not edit this file or add other files to this directory. */ import { seamApiLtsVersion } from 'lib/lts-version.js' import { getAuthHeadersForClientSessionToken, warnOnInsecureuserIdentifierKey, } from 'lib/seam/connect/auth.js' import { type Client, createClient } from 'lib/seam/connect/client.js' import { isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken, isSeamHttpOptionsWithConsoleSessionToken, isSeamHttpOptionsWithPersonalAccessToken, type SeamHttpFromPublishableKeyOptions, SeamHttpInvalidOptionsError, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken, type SeamHttpOptionsWithConsoleSessionToken, type SeamHttpOptionsWithPersonalAccessToken, type SeamHttpRequestOptions, } from 'lib/seam/connect/options.js' import { limitToSeamHttpRequestOptions, parseOptions, } from 'lib/seam/connect/parse-options.js' import type { CustomerPortal } from 'lib/seam/connect/resources/customer-portal.js' import { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js' import { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js' import { SeamPaginator } from 'lib/seam/connect/seam-paginator.js' export class SeamHttpCustomers { client: Client readonly defaults: Required readonly ltsVersion = seamApiLtsVersion static ltsVersion = seamApiLtsVersion constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) { const options = parseOptions(apiKeyOrOptions) this.client = 'client' in options ? options.client : createClient(options) this.defaults = limitToSeamHttpRequestOptions(options) } static fromClient( client: SeamHttpOptionsWithClient['client'], options: Omit = {}, ): SeamHttpCustomers { const constructorOptions = { ...options, client } if (!isSeamHttpOptionsWithClient(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing client') } return new SeamHttpCustomers(constructorOptions) } static fromApiKey( apiKey: SeamHttpOptionsWithApiKey['apiKey'], options: Omit = {}, ): SeamHttpCustomers { const constructorOptions = { ...options, apiKey } if (!isSeamHttpOptionsWithApiKey(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing apiKey') } return new SeamHttpCustomers(constructorOptions) } static fromClientSessionToken( clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options: Omit< SeamHttpOptionsWithClientSessionToken, 'clientSessionToken' > = {}, ): SeamHttpCustomers { const constructorOptions = { ...options, clientSessionToken } if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing clientSessionToken') } return new SeamHttpCustomers(constructorOptions) } static async fromPublishableKey( publishableKey: string, userIdentifierKey: string, options: SeamHttpFromPublishableKeyOptions = {}, ): Promise { warnOnInsecureuserIdentifierKey(userIdentifierKey) const clientOptions = parseOptions({ ...options, publishableKey }) if (isSeamHttpOptionsWithClient(clientOptions)) { throw new SeamHttpInvalidOptionsError( 'The client option cannot be used with SeamHttpCustomers.fromPublishableKey', ) } const client = createClient(clientOptions) const clientSessions = SeamHttpClientSessions.fromClient(client) const { token } = await clientSessions.getOrCreate({ user_identifier_key: userIdentifierKey, }) return SeamHttpCustomers.fromClientSessionToken(token, options) } static fromConsoleSessionToken( consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'], workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'], options: Omit< SeamHttpOptionsWithConsoleSessionToken, 'consoleSessionToken' | 'workspaceId' > = {}, ): SeamHttpCustomers { const constructorOptions = { ...options, consoleSessionToken, workspaceId } if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError( 'Missing consoleSessionToken or workspaceId', ) } return new SeamHttpCustomers(constructorOptions) } static fromPersonalAccessToken( personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], options: Omit< SeamHttpOptionsWithPersonalAccessToken, 'personalAccessToken' | 'workspaceId' > = {}, ): SeamHttpCustomers { const constructorOptions = { ...options, personalAccessToken, workspaceId } if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError( 'Missing personalAccessToken or workspaceId', ) } return new SeamHttpCustomers(constructorOptions) } createPaginator( request: SeamHttpRequest, ): SeamPaginator { return new SeamPaginator(this, request) } async updateClientSessionToken( clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], ): Promise { const { headers } = this.client.defaults const authHeaders = getAuthHeadersForClientSessionToken({ clientSessionToken, }) for (const key of Object.keys(authHeaders)) { if (headers[key] == null) { throw new Error( 'Cannot update a clientSessionToken on a client created without a clientSessionToken', ) } } this.client.defaults.headers = { ...headers, ...authHeaders } const clientSessions = SeamHttpClientSessions.fromClient(this.client) await clientSessions.get() } /** * Creates a new customer portal magic link with configurable features. */ createPortal( parameters?: CustomersCreatePortalParameters, options: CustomersCreatePortalOptions = {}, ): CustomersCreatePortalRequest { return new SeamHttpRequest(this, { pathname: '/customers/create_portal', method: 'POST', body: parameters, responseKey: 'customer_portal', options, }) } /** * Deletes customer data including resources like spaces, properties, rooms, users, etc. * This will delete the partner resources and any related Seam resources (user identities, access grants, spaces). */ deleteData( parameters?: CustomersDeleteDataParameters, options: CustomersDeleteDataOptions = {}, ): CustomersDeleteDataRequest { return new SeamHttpRequest(this, { pathname: '/customers/delete_data', method: 'POST', body: parameters, responseKey: undefined, options, }) } /** * Pushes customer data including resources like spaces, properties, rooms, users, etc. */ pushData( parameters: CustomersPushDataParameters, options: CustomersPushDataOptions = {}, ): CustomersPushDataRequest { return new SeamHttpRequest(this, { pathname: '/customers/push_data', method: 'POST', body: parameters, responseKey: undefined, options, }) } } export type CustomersCreatePortalParameters = { /** * Filter configuration for resources based on their custom_metadata. Each filter specifies a field, operation, and value to match against resource custom_metadata. */ customer_resources_filters?: | Array<{ /** * The custom_metadata field name to filter on. */ field?: string | undefined /** * The comparison operation. Currently only '=' is supported. */ operation?: '=' | undefined /** * The value to compare against. */ value?: {} | undefined }> | undefined /** * The ID of the customization profile to use for the portal. */ customization_profile_id?: string | undefined /** * Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. */ deep_link?: | { resource_key?: string | undefined resource_type?: 'reservation' | 'space' | 'device' | undefined resource_id?: string | undefined } | undefined /** * Whether to exclude the option to select a locale within the portal UI. */ exclude_locale_picker?: boolean | undefined features?: | { /** * Configuration for the configure feature. */ configure?: | { /** * Indicates whether the customer can customize the access automation rules for their properties. */ allow_access_automation_rule_customization?: boolean | undefined /** * Indicates whether the customer can customize the climate automation rules for their properties. */ allow_climate_automation_rule_customization?: boolean | undefined /** * Indicates whether the customer can customize the Instant Key profile for their properties. */ allow_instant_key_customization?: boolean | undefined /** * Whether to exclude this feature from the portal. */ exclude?: boolean | undefined } | undefined /** * Configuration for the connect accounts feature. */ connect?: | { /** * List of provider keys to allow for the connect feature. These providers will be shown when the customer tries to connect an account. */ accepted_providers?: Array | undefined /** * Whether to exclude this feature from the portal. */ exclude?: boolean | undefined /** * List of provider keys to exclude from the connect feature. These providers will not be shown when the customer tries to connect an account. */ excluded_providers?: Array | undefined } | undefined /** * Configuration for the manage feature. */ manage?: | { /** * Custom copy for the confirmation modal shown before unmanaged devices are added to a space and begin being managed (and billed). Only takes effect when the MANAGE_DEVICES_CONFIRMATION_MODAL feature flag is enabled for the workspace. Any omitted string falls back to a localized default. */ device_management_confirmation?: | { /** * Custom body text for the confirmation modal. May include the {count} token, which is replaced with the number of devices that will begin being managed. */ body?: string | undefined /** * Custom label for the cancel button. */ cancel_button_label?: string | undefined /** * Custom label for the confirm button. */ confirm_button_label?: string | undefined /** * Custom title for the confirmation modal. */ title?: string | undefined } | undefined /** * Configuration for event type filtering in the manage feature. */ events?: | { /** * List of event types to show in the events filter. When set, only these event types will be available. Leave empty to show all events. */ allowed_events?: Array | undefined /** * List of event types that are pre-selected in the events filter when the user first loads the events tab. */ default_events?: Array | undefined } | undefined /** * Whether to exclude this feature from the portal. */ exclude?: boolean | undefined /** * Indicates whether the customer can manage reservations for their properties. */ exclude_reservation_management?: boolean | undefined /** * Indicates whether to exclude technical details from reservation views. */ exclude_reservation_technical_details?: boolean | undefined /** * Indicates whether the customer can manage staff for their properties. */ exclude_staff_management?: boolean | undefined } | undefined /** * Configuration for the manage devices feature. * --- * deprecated: Use `manage` instead. * --- */ manage_devices?: | { /** * Whether to exclude this feature from the portal. */ exclude?: boolean | undefined } | undefined /** * Configuration for the organize feature. */ organize?: | { /** * Whether to exclude this feature from the portal. */ exclude?: boolean | undefined } | undefined } | undefined /** * Whether the portal is embedded in another application. */ is_embedded?: boolean | undefined /** * Configuration for the landing page when the portal loads. */ landing_page?: | { manage?: | { space_key?: string | undefined property_key?: string | undefined room_key?: string | undefined common_area_key?: string | undefined unit_key?: string | undefined facility_key?: string | undefined building_key?: string | undefined listing_key?: string | undefined property_listing_key?: string | undefined site_key?: string | undefined reservation_key?: string | undefined booking_key?: string | undefined access_grant_key?: string | undefined } | undefined } | undefined /** * The locale to use for the portal. */ locale?: | 'en-US' | 'pt-PT' | 'fr-FR' | 'it-IT' | 'es-ES' | 'de-DE' | 'nl-NL' | 'el-GR' | 'pl-PL' | 'ru-RU' | undefined /** * Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links. */ navigation_mode?: 'full' | 'restricted' | undefined /** * Whether the portal is read-only. When true, the customer can browse the portal but cannot perform any mutating action; write requests made with the portal's client session are rejected. */ read_only?: boolean | undefined customer_data?: | { /** * List of access grants. */ access_grants?: | Array<{ /** * Your unique identifier for the access grant. */ access_grant_key?: string | undefined /** * Building keys associated with the access grant. */ building_keys?: Array | undefined /** * Common area keys associated with the access grant. */ common_area_keys?: Array | undefined /** * Ending date and time for the access grant. */ ends_at?: string | undefined /** * Facility keys associated with the access grant. */ facility_keys?: Array | undefined /** * Guest key associated with the access grant. */ guest_key?: string | undefined /** * Listing keys associated with the access grant. */ listing_keys?: Array | undefined /** * Your name for this access grant resource. */ name?: string | undefined /** * Preferred PIN code to use when creating access for this reservation. */ preferred_code?: string | undefined /** * Property keys associated with the access grant. */ property_keys?: Array | undefined /** * Resident key associated with the access grant. */ resident_key?: string | undefined /** * Room keys associated with the access grant. */ room_keys?: Array | undefined /** * Space keys associated with the access grant. */ space_keys?: Array | undefined /** * Starting date and time for the access grant. */ starts_at?: string | undefined /** * Tenant key associated with the access grant. */ tenant_key?: string | undefined /** * Unit keys associated with the access grant. */ unit_keys?: Array | undefined /** * User identity key associated with the access grant. */ user_identity_key?: string | undefined /** * User key associated with the access grant. */ user_key?: string | undefined }> | undefined /** * List of bookings. */ bookings?: | Array<{ /** * Your unique identifier for the booking. */ booking_key?: string | undefined /** * Building keys associated with the access grant. */ building_keys?: Array | undefined /** * Common area keys associated with the access grant. */ common_area_keys?: Array | undefined /** * Ending date and time for the access grant. */ ends_at?: string | undefined /** * Facility keys associated with the access grant. */ facility_keys?: Array | undefined /** * Guest key associated with the access grant. */ guest_key?: string | undefined /** * Listing keys associated with the access grant. */ listing_keys?: Array | undefined /** * Your name for this access grant resource. */ name?: string | undefined /** * Preferred PIN code to use when creating access for this reservation. */ preferred_code?: string | undefined /** * Property keys associated with the access grant. */ property_keys?: Array | undefined /** * Resident key associated with the access grant. */ resident_key?: string | undefined /** * Room keys associated with the access grant. */ room_keys?: Array | undefined /** * Space keys associated with the access grant. */ space_keys?: Array | undefined /** * Starting date and time for the access grant. */ starts_at?: string | undefined /** * Tenant key associated with the access grant. */ tenant_key?: string | undefined /** * Unit keys associated with the access grant. */ unit_keys?: Array | undefined /** * User identity key associated with the access grant. */ user_identity_key?: string | undefined /** * User key associated with the access grant. */ user_key?: string | undefined }> | undefined /** * List of buildings. */ buildings?: | Array<{ /** * Your unique identifier for the building. */ building_key?: string | undefined /** * Your display name for this location resource. */ name?: string | undefined }> | undefined /** * List of shared common areas. */ common_areas?: | Array<{ /** * Your unique identifier for the common area. */ common_area_key?: string | undefined /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ parent_site_key?: string | undefined }> | undefined /** * Your unique identifier for the customer. */ customer_key?: string | undefined /** * List of gym or fitness facilities. */ facilities?: | Array<{ /** * Your unique identifier for the facility. */ facility_key?: string | undefined /** * Your display name for this location resource. */ name?: string | undefined }> | undefined /** * List of guests. */ guests?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your unique identifier for the guest. */ guest_key?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined }> | undefined /** * List of property listings. */ listings?: | Array<{ /** * Your unique identifier for the listing. */ listing_key?: string | undefined /** * Your display name for this location resource. */ name?: string | undefined }> | undefined /** * List of short-term rental properties. */ properties?: | Array<{ /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the property. */ property_key?: string | undefined }> | undefined /** * List of property listings. */ property_listings?: | Array<{ /** * Set key:value pairs. Accepts string or Boolean values. Adding custom metadata to a property listing enables you to store custom information, like customer details or internal IDs from your application. */ custom_metadata?: Record | undefined /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the property listing. */ property_listing_key?: string | undefined }> | undefined /** * List of reservations. */ reservations?: | Array<{ /** * Building keys associated with the access grant. */ building_keys?: Array | undefined /** * Common area keys associated with the access grant. */ common_area_keys?: Array | undefined /** * Set key:value pairs for filtering reservations by custom criteria. */ custom_metadata?: Record | undefined /** * Ending date and time for the access grant. */ ends_at?: string | undefined /** * Facility keys associated with the access grant. */ facility_keys?: Array | undefined /** * Guest key associated with the access grant. */ guest_key?: string | undefined /** * Listing keys associated with the access grant. */ listing_keys?: Array | undefined /** * Your name for this access grant resource. */ name?: string | undefined /** * Preferred PIN code to use when creating access for this reservation. */ preferred_code?: string | undefined /** * Property keys associated with the access grant. */ property_keys?: Array | undefined /** * Your unique identifier for the reservation. */ reservation_key?: string | undefined /** * Resident key associated with the access grant. */ resident_key?: string | undefined /** * Room keys associated with the access grant. */ room_keys?: Array | undefined /** * Space keys associated with the access grant. */ space_keys?: Array | undefined /** * Starting date and time for the access grant. */ starts_at?: string | undefined /** * Tenant key associated with the access grant. */ tenant_key?: string | undefined /** * Unit keys associated with the access grant. */ unit_keys?: Array | undefined /** * User identity key associated with the access grant. */ user_identity_key?: string | undefined /** * User key associated with the access grant. */ user_key?: string | undefined }> | undefined /** * List of residents. */ residents?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * Your unique identifier for the resident. */ resident_key?: string | undefined }> | undefined /** * List of hotel or hospitality rooms. */ rooms?: | Array<{ /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ parent_site_key?: string | undefined /** * Your unique identifier for the room. */ room_key?: string | undefined }> | undefined /** * List of general sites or areas. */ sites?: | Array<{ /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ site_key?: string | undefined }> | undefined /** * List of general spaces or areas. */ spaces?: | Array<{ /** * Reservation/stay-related defaults for the space (time zone, default check-in/out times, address). */ customer_data?: | { /** * Postal address for the space. */ address?: string | undefined /** * Default check-in time for reservations at the space, as HH:mm or HH:mm:ss. */ default_checkin_time?: string | undefined /** * Default check-out time for reservations at the space, as HH:mm or HH:mm:ss. */ default_checkout_time?: string | undefined /** * IANA time zone for the space, e.g. America/Los_Angeles. */ time_zone?: string | undefined } | undefined /** * Default duration of this space in minutes, when the space represents a fixed-length bookable slot (e.g. an appointment type). Used to interpret reservations booked against this space. */ duration_minutes?: number | undefined /** * Geographic coordinates (latitude and longitude) of the space. */ geolocation?: | { /** * Latitude of the space, in decimal degrees. */ latitude?: number | undefined /** * Longitude of the space, in decimal degrees. */ longitude?: number | undefined } | undefined /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ parent_site_key?: string | undefined /** * Your unique identifier for the space. */ space_key?: string | undefined }> | undefined /** * List of staff members. */ staff_members?: | Array<{ /** * List of unique identifiers for the buildings the staff member is associated with. */ building_keys?: Array | undefined /** * List of unique identifiers for the common areas the staff member is associated with. */ common_area_keys?: Array | undefined /** * Email address associated with the user identity. */ email_address?: string | undefined /** * List of unique identifiers for the facilities the staff member is associated with. */ facility_keys?: Array | undefined /** * List of unique identifiers for the listings the staff member is associated with. */ listing_keys?: Array | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * List of unique identifiers for the properties the staff member is associated with. */ property_keys?: Array | undefined /** * List of unique identifiers for the property listings the staff member is associated with. */ property_listing_keys?: Array | undefined /** * List of unique identifiers for the rooms the staff member is associated with. */ room_keys?: Array | undefined /** * List of unique identifiers for the sites the staff member is associated with. */ site_keys?: Array | undefined /** * List of unique identifiers for the spaces the staff member is associated with. */ space_keys?: Array | undefined /** * Your unique identifier for the staff. */ staff_member_key?: string | undefined /** * List of unique identifiers for the units the staff member is associated with. */ unit_keys?: Array | undefined }> | undefined /** * List of tenants. */ tenants?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * Your unique identifier for the tenant. */ tenant_key?: string | undefined }> | undefined /** * List of multi-family residential units. */ units?: | Array<{ /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ parent_site_key?: string | undefined /** * Your unique identifier for the unit. */ unit_key?: string | undefined }> | undefined /** * List of user identities. */ user_identities?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * Your unique identifier for the user identity. */ user_identity_key?: string | undefined }> | undefined /** * List of users. */ users?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * Your unique identifier for the user. */ user_key?: string | undefined }> | undefined } | undefined } /** * @deprecated Use CustomersCreatePortalRequest instead. */ export type CustomersCreatePortalResponse = { customer_portal: CustomerPortal } export type CustomersCreatePortalRequest = SeamHttpRequest< CustomersCreatePortalResponse, 'customer_portal' > export interface CustomersCreatePortalOptions {} export type CustomersDeleteDataParameters = { /** * List of access grant keys to delete. */ access_grant_keys?: Array | undefined /** * List of booking keys to delete. */ booking_keys?: Array | undefined /** * List of building keys to delete. */ building_keys?: Array | undefined /** * List of common area keys to delete. */ common_area_keys?: Array | undefined /** * List of customer keys to delete all data for. */ customer_keys?: Array | undefined /** * List of facility keys to delete. */ facility_keys?: Array | undefined /** * List of guest keys to delete. */ guest_keys?: Array | undefined /** * List of listing keys to delete. */ listing_keys?: Array | undefined /** * List of property keys to delete. */ property_keys?: Array | undefined /** * List of property listing keys to delete. */ property_listing_keys?: Array | undefined /** * List of reservation keys to delete. */ reservation_keys?: Array | undefined /** * List of resident keys to delete. */ resident_keys?: Array | undefined /** * List of room keys to delete. */ room_keys?: Array | undefined /** * List of space keys to delete. */ space_keys?: Array | undefined /** * List of staff member keys to delete. */ staff_member_keys?: Array | undefined /** * List of tenant keys to delete. */ tenant_keys?: Array | undefined /** * List of unit keys to delete. */ unit_keys?: Array | undefined /** * List of user identity keys to delete. */ user_identity_keys?: Array | undefined /** * List of user keys to delete. */ user_keys?: Array | undefined } /** * @deprecated Use CustomersDeleteDataRequest instead. */ export type CustomersDeleteDataResponse = void export type CustomersDeleteDataRequest = SeamHttpRequest export interface CustomersDeleteDataOptions {} export type CustomersPushDataParameters = { /** * List of access grants. */ access_grants?: | Array<{ /** * Your unique identifier for the access grant. */ access_grant_key?: string | undefined /** * Building keys associated with the access grant. */ building_keys?: Array | undefined /** * Common area keys associated with the access grant. */ common_area_keys?: Array | undefined /** * Ending date and time for the access grant. */ ends_at?: string | undefined /** * Facility keys associated with the access grant. */ facility_keys?: Array | undefined /** * Guest key associated with the access grant. */ guest_key?: string | undefined /** * Listing keys associated with the access grant. */ listing_keys?: Array | undefined /** * Your name for this access grant resource. */ name?: string | undefined /** * Preferred PIN code to use when creating access for this reservation. */ preferred_code?: string | undefined /** * Property keys associated with the access grant. */ property_keys?: Array | undefined /** * Resident key associated with the access grant. */ resident_key?: string | undefined /** * Room keys associated with the access grant. */ room_keys?: Array | undefined /** * Space keys associated with the access grant. */ space_keys?: Array | undefined /** * Starting date and time for the access grant. */ starts_at?: string | undefined /** * Tenant key associated with the access grant. */ tenant_key?: string | undefined /** * Unit keys associated with the access grant. */ unit_keys?: Array | undefined /** * User identity key associated with the access grant. */ user_identity_key?: string | undefined /** * User key associated with the access grant. */ user_key?: string | undefined }> | undefined /** * List of bookings. */ bookings?: | Array<{ /** * Your unique identifier for the booking. */ booking_key?: string | undefined /** * Building keys associated with the access grant. */ building_keys?: Array | undefined /** * Common area keys associated with the access grant. */ common_area_keys?: Array | undefined /** * Ending date and time for the access grant. */ ends_at?: string | undefined /** * Facility keys associated with the access grant. */ facility_keys?: Array | undefined /** * Guest key associated with the access grant. */ guest_key?: string | undefined /** * Listing keys associated with the access grant. */ listing_keys?: Array | undefined /** * Your name for this access grant resource. */ name?: string | undefined /** * Preferred PIN code to use when creating access for this reservation. */ preferred_code?: string | undefined /** * Property keys associated with the access grant. */ property_keys?: Array | undefined /** * Resident key associated with the access grant. */ resident_key?: string | undefined /** * Room keys associated with the access grant. */ room_keys?: Array | undefined /** * Space keys associated with the access grant. */ space_keys?: Array | undefined /** * Starting date and time for the access grant. */ starts_at?: string | undefined /** * Tenant key associated with the access grant. */ tenant_key?: string | undefined /** * Unit keys associated with the access grant. */ unit_keys?: Array | undefined /** * User identity key associated with the access grant. */ user_identity_key?: string | undefined /** * User key associated with the access grant. */ user_key?: string | undefined }> | undefined /** * List of buildings. */ buildings?: | Array<{ /** * Your unique identifier for the building. */ building_key?: string | undefined /** * Your display name for this location resource. */ name?: string | undefined }> | undefined /** * List of shared common areas. */ common_areas?: | Array<{ /** * Your unique identifier for the common area. */ common_area_key?: string | undefined /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ parent_site_key?: string | undefined }> | undefined /** * Your unique identifier for the customer. */ customer_key: string /** * List of gym or fitness facilities. */ facilities?: | Array<{ /** * Your unique identifier for the facility. */ facility_key?: string | undefined /** * Your display name for this location resource. */ name?: string | undefined }> | undefined /** * List of guests. */ guests?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your unique identifier for the guest. */ guest_key?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined }> | undefined /** * List of property listings. */ listings?: | Array<{ /** * Your unique identifier for the listing. */ listing_key?: string | undefined /** * Your display name for this location resource. */ name?: string | undefined }> | undefined /** * List of short-term rental properties. */ properties?: | Array<{ /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the property. */ property_key?: string | undefined }> | undefined /** * List of property listings. */ property_listings?: | Array<{ /** * Set key:value pairs. Accepts string or Boolean values. Adding custom metadata to a property listing enables you to store custom information, like customer details or internal IDs from your application. */ custom_metadata?: Record | undefined /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the property listing. */ property_listing_key?: string | undefined }> | undefined /** * List of reservations. */ reservations?: | Array<{ /** * Building keys associated with the access grant. */ building_keys?: Array | undefined /** * Common area keys associated with the access grant. */ common_area_keys?: Array | undefined /** * Set key:value pairs for filtering reservations by custom criteria. */ custom_metadata?: Record | undefined /** * Ending date and time for the access grant. */ ends_at?: string | undefined /** * Facility keys associated with the access grant. */ facility_keys?: Array | undefined /** * Guest key associated with the access grant. */ guest_key?: string | undefined /** * Listing keys associated with the access grant. */ listing_keys?: Array | undefined /** * Your name for this access grant resource. */ name?: string | undefined /** * Preferred PIN code to use when creating access for this reservation. */ preferred_code?: string | undefined /** * Property keys associated with the access grant. */ property_keys?: Array | undefined /** * Your unique identifier for the reservation. */ reservation_key?: string | undefined /** * Resident key associated with the access grant. */ resident_key?: string | undefined /** * Room keys associated with the access grant. */ room_keys?: Array | undefined /** * Space keys associated with the access grant. */ space_keys?: Array | undefined /** * Starting date and time for the access grant. */ starts_at?: string | undefined /** * Tenant key associated with the access grant. */ tenant_key?: string | undefined /** * Unit keys associated with the access grant. */ unit_keys?: Array | undefined /** * User identity key associated with the access grant. */ user_identity_key?: string | undefined /** * User key associated with the access grant. */ user_key?: string | undefined }> | undefined /** * List of residents. */ residents?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * Your unique identifier for the resident. */ resident_key?: string | undefined }> | undefined /** * List of hotel or hospitality rooms. */ rooms?: | Array<{ /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ parent_site_key?: string | undefined /** * Your unique identifier for the room. */ room_key?: string | undefined }> | undefined /** * List of general sites or areas. */ sites?: | Array<{ /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ site_key?: string | undefined }> | undefined /** * List of general spaces or areas. */ spaces?: | Array<{ /** * Reservation/stay-related defaults for the space (time zone, default check-in/out times, address). */ customer_data?: | { /** * Postal address for the space. */ address?: string | undefined /** * Default check-in time for reservations at the space, as HH:mm or HH:mm:ss. */ default_checkin_time?: string | undefined /** * Default check-out time for reservations at the space, as HH:mm or HH:mm:ss. */ default_checkout_time?: string | undefined /** * IANA time zone for the space, e.g. America/Los_Angeles. */ time_zone?: string | undefined } | undefined /** * Default duration of this space in minutes, when the space represents a fixed-length bookable slot (e.g. an appointment type). Used to interpret reservations booked against this space. */ duration_minutes?: number | undefined /** * Geographic coordinates (latitude and longitude) of the space. */ geolocation?: | { /** * Latitude of the space, in decimal degrees. */ latitude?: number | undefined /** * Longitude of the space, in decimal degrees. */ longitude?: number | undefined } | undefined /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ parent_site_key?: string | undefined /** * Your unique identifier for the space. */ space_key?: string | undefined }> | undefined /** * List of staff members. */ staff_members?: | Array<{ /** * List of unique identifiers for the buildings the staff member is associated with. */ building_keys?: Array | undefined /** * List of unique identifiers for the common areas the staff member is associated with. */ common_area_keys?: Array | undefined /** * Email address associated with the user identity. */ email_address?: string | undefined /** * List of unique identifiers for the facilities the staff member is associated with. */ facility_keys?: Array | undefined /** * List of unique identifiers for the listings the staff member is associated with. */ listing_keys?: Array | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * List of unique identifiers for the properties the staff member is associated with. */ property_keys?: Array | undefined /** * List of unique identifiers for the property listings the staff member is associated with. */ property_listing_keys?: Array | undefined /** * List of unique identifiers for the rooms the staff member is associated with. */ room_keys?: Array | undefined /** * List of unique identifiers for the sites the staff member is associated with. */ site_keys?: Array | undefined /** * List of unique identifiers for the spaces the staff member is associated with. */ space_keys?: Array | undefined /** * Your unique identifier for the staff. */ staff_member_key?: string | undefined /** * List of unique identifiers for the units the staff member is associated with. */ unit_keys?: Array | undefined }> | undefined /** * List of tenants. */ tenants?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * Your unique identifier for the tenant. */ tenant_key?: string | undefined }> | undefined /** * List of multi-family residential units. */ units?: | Array<{ /** * Your display name for this location resource. */ name?: string | undefined /** * Your unique identifier for the site. */ parent_site_key?: string | undefined /** * Your unique identifier for the unit. */ unit_key?: string | undefined }> | undefined /** * List of user identities. */ user_identities?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * Your unique identifier for the user identity. */ user_identity_key?: string | undefined }> | undefined /** * List of users. */ users?: | Array<{ /** * Email address associated with the user identity. */ email_address?: string | undefined /** * Your display name for this user identity resource. */ name?: string | undefined /** * Phone number associated with the user identity. */ phone_number?: string | undefined /** * Your unique identifier for the user. */ user_key?: string | undefined }> | undefined } /** * @deprecated Use CustomersPushDataRequest instead. */ export type CustomersPushDataResponse = void export type CustomersPushDataRequest = SeamHttpRequest export interface CustomersPushDataOptions {}