openapi: 3.0.1 info: description: 'Consumer-to-Extole integration endpoints: consumer event submission, zone rendering, profile management, and SDK-backing operations for browser and native app environments.' title: Integration API - Consumer to Extole Audiences SFTP Servers API version: '1.0' servers: - description: Production url: https://{brand}.extole.io variables: brand: default: yourcompany description: Your Extole client subdomain (e.g. 'mycompany' for mycompany.extole.io) security: - HEADER: [] - QUERY: [] - COOKIE: [] tags: - name: SFTP Servers paths: /v6/sftp-destinations: get: description: Returns all SFTP destination connection profiles configured for the client. operationId: listSftpDestinations parameters: - in: query name: type schema: enum: - EXTERNAL - LOCAL type: string - in: query name: name schema: type: string - in: query name: username schema: type: string - in: query name: host schema: type: string - in: query name: limit schema: format: int32 type: integer - in: query name: offset schema: format: int32 type: integer responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/SftpDestinationResponse' type: array description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: List SFTP destinations tags: - SFTP Servers x-extole-bundle: integration-server-to-extole x-extole-visibility: visible post: description: Creates a new SFTP destination connection profile used for automated report file delivery. Returns the created destination with its server-assigned id. operationId: createSftpDestination requestBody: content: application/json: example: dropbox_path: dropbox_path extole_key_id: extole_key_id host: host key_id: key_id name: name partner_key_id: partner_key_id port: 1 type: EXTERNAL username: username schema: $ref: '#/components/schemas/SftpDestinationCreateRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/SftpDestinationResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' external_sftp_destination_invalid_username: $ref: '#/components/examples/external_sftp_destination_invalid_username' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' local_sftp_destination_invalid_username: $ref: '#/components/examples/local_sftp_destination_invalid_username' missing_request_body: $ref: '#/components/examples/missing_request_body' sftp_destination_client_key_not_found: $ref: '#/components/examples/sftp_destination_client_key_not_found' sftp_destination_duplicated_name: $ref: '#/components/examples/sftp_destination_duplicated_name' sftp_destination_duplicated_username: $ref: '#/components/examples/sftp_destination_duplicated_username' sftp_destination_invalid_dropbox_path: $ref: '#/components/examples/sftp_destination_invalid_dropbox_path' sftp_destination_invalid_host: $ref: '#/components/examples/sftp_destination_invalid_host' sftp_destination_invalid_key_content: $ref: '#/components/examples/sftp_destination_invalid_key_content' sftp_destination_invalid_key_type: $ref: '#/components/examples/sftp_destination_invalid_key_type' sftp_destination_invalid_name: $ref: '#/components/examples/sftp_destination_invalid_name' sftp_destination_invalid_port: $ref: '#/components/examples/sftp_destination_invalid_port' sftp_destination_missing_host: $ref: '#/components/examples/sftp_destination_missing_host' sftp_destination_missing_key_id: $ref: '#/components/examples/sftp_destination_missing_key_id' sftp_destination_missing_username: $ref: '#/components/examples/sftp_destination_missing_username' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Create an SFTP destination tags: - SFTP Servers x-extole-bundle: integration-server-to-extole x-extole-visibility: visible /v6/sftp-destinations/{sftpDestinationId}: get: description: Returns the SFTP destination for the specified id. operationId: getSftpDestination parameters: - in: path name: sftpDestinationId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SftpDestinationResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' sftp_destination_not_found: $ref: '#/components/examples/sftp_destination_not_found' unsupported_operation: $ref: '#/components/examples/unsupported_operation' username_exists_on_sftp_server: $ref: '#/components/examples/username_exists_on_sftp_server' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Get an SFTP destination tags: - SFTP Servers x-extole-bundle: integration-server-to-extole x-extole-visibility: visible put: description: Updates the SFTP destination connection profile. Only fields present in the request body are changed. Returns the updated destination. operationId: updateSftpDestination parameters: - in: path name: sftpDestinationId required: true schema: type: string requestBody: content: application/json: example: dropbox_path: dropbox_path extole_key_id: extole_key_id host: host key_id: key_id name: name partner_key_id: partner_key_id port: 1 type: EXTERNAL username: username schema: $ref: '#/components/schemas/SftpDestinationUpdateRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/SftpDestinationResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' external_sftp_destination_invalid_username: $ref: '#/components/examples/external_sftp_destination_invalid_username' invalid_json: $ref: '#/components/examples/invalid_json' invalid_null: $ref: '#/components/examples/invalid_null' invalid_parameter: $ref: '#/components/examples/invalid_parameter' local_sftp_destination_invalid_username: $ref: '#/components/examples/local_sftp_destination_invalid_username' missing_request_body: $ref: '#/components/examples/missing_request_body' sftp_destination_client_key_not_found: $ref: '#/components/examples/sftp_destination_client_key_not_found' sftp_destination_duplicated_name: $ref: '#/components/examples/sftp_destination_duplicated_name' sftp_destination_duplicated_username: $ref: '#/components/examples/sftp_destination_duplicated_username' sftp_destination_invalid_dropbox_path: $ref: '#/components/examples/sftp_destination_invalid_dropbox_path' sftp_destination_invalid_host: $ref: '#/components/examples/sftp_destination_invalid_host' sftp_destination_invalid_key_content: $ref: '#/components/examples/sftp_destination_invalid_key_content' sftp_destination_invalid_key_type: $ref: '#/components/examples/sftp_destination_invalid_key_type' sftp_destination_invalid_name: $ref: '#/components/examples/sftp_destination_invalid_name' sftp_destination_invalid_port: $ref: '#/components/examples/sftp_destination_invalid_port' sftp_destination_missing_host: $ref: '#/components/examples/sftp_destination_missing_host' sftp_destination_missing_key_id: $ref: '#/components/examples/sftp_destination_missing_key_id' sftp_destination_missing_username: $ref: '#/components/examples/sftp_destination_missing_username' sftp_destination_not_found: $ref: '#/components/examples/sftp_destination_not_found' unsupported_operation: $ref: '#/components/examples/unsupported_operation' username_exists_on_sftp_server: $ref: '#/components/examples/username_exists_on_sftp_server' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Update an SFTP destination tags: - SFTP Servers x-extole-bundle: integration-server-to-extole x-extole-visibility: visible delete: description: Removes the SFTP destination connection profile. Returns the deleted destination. operationId: deleteSftpDestination parameters: - in: path name: sftpDestinationId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SftpDestinationResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' sftp_destination_not_found: $ref: '#/components/examples/sftp_destination_not_found' unsupported_operation: $ref: '#/components/examples/unsupported_operation' username_exists_on_sftp_server: $ref: '#/components/examples/username_exists_on_sftp_server' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Delete an SFTP destination tags: - SFTP Servers x-extole-bundle: integration-server-to-extole x-extole-visibility: visible /v6/sftp-destinations/{sftpDestinationId}/sync: post: description: Triggers an immediate synchronisation of the SFTP destination with its external server. Returns the updated destination after sync. operationId: syncSftpDestination parameters: - in: path name: sftpDestinationId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SftpDestinationResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' sftp_destination_not_found: $ref: '#/components/examples/sftp_destination_not_found' unsupported_operation: $ref: '#/components/examples/unsupported_operation' username_exists_on_sftp_server: $ref: '#/components/examples/username_exists_on_sftp_server' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Sync an SFTP destination tags: - SFTP Servers x-extole-bundle: integration-server-to-extole x-extole-visibility: visible /v6/sftp-destinations/{sftpDestinationId}/validate: post: description: Validates the SFTP destination connection profile without persisting any changes. Returns any connectivity or configuration errors. operationId: validateSftpDestination parameters: - in: path name: sftpDestinationId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SftpDestinationValidationResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' sftp_destination_not_found: $ref: '#/components/examples/sftp_destination_not_found' unsupported_operation: $ref: '#/components/examples/unsupported_operation' username_exists_on_sftp_server: $ref: '#/components/examples/username_exists_on_sftp_server' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Validate an SFTP destination tags: - SFTP Servers x-extole-bundle: integration-server-to-extole x-extole-visibility: visible components: examples: invalid_json: summary: invalid_json value: code: invalid_json http_status_code: 400 message: JSON is invalid parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_invalid_dropbox_path: summary: sftp_destination_invalid_dropbox_path value: code: sftp_destination_invalid_dropbox_path http_status_code: 400 message: Dropbox path is not valid. Dropbox path is valid if not empty or blank, not longer than 255 characters and is a valid system path parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_missing_key_id: summary: sftp_destination_missing_key_id value: code: sftp_destination_missing_key_id http_status_code: 400 message: Key id is mandatory parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_invalid_host: summary: sftp_destination_invalid_host value: code: sftp_destination_invalid_host http_status_code: 400 message: Host is not a valid domain parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_duplicated_username: summary: sftp_destination_duplicated_username value: code: sftp_destination_duplicated_username http_status_code: 400 message: Sftp destination with such username already exists parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 payment_required: summary: payment_required value: code: payment_required http_status_code: 402 message: The access_token provided is associated with an unpaid account. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 missing_access_token: summary: missing_access_token value: code: missing_access_token http_status_code: 403 message: No access_token was provided with this request. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 local_sftp_destination_invalid_username: summary: local_sftp_destination_invalid_username value: code: local_sftp_destination_invalid_username http_status_code: 400 message: 'Username is not valid for local sftp destination. A valid username must start with the client shortname. It can only contain letters, numbers and the following chars: "_", "@", "-", ".". The length must be between 3 and 100 characters.' parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_not_found: summary: sftp_destination_not_found value: code: sftp_destination_not_found http_status_code: 400 message: Could not find sftp destination parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_invalid_key_type: summary: sftp_destination_invalid_key_type value: code: sftp_destination_invalid_key_type http_status_code: 400 message: Invalid key type parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_null: summary: invalid_null value: code: invalid_null http_status_code: 400 message: The attribute may be omitted but not nullified parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 unsupported_media_type: summary: unsupported_media_type value: code: unsupported_media_type http_status_code: 415 message: Request had an unsupported or no media type parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 method_unauthorized: summary: method_unauthorized value: code: method_unauthorized http_status_code: 401 message: Unauthorized access to this endpoint parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 username_exists_on_sftp_server: summary: username_exists_on_sftp_server value: code: username_exists_on_sftp_server http_status_code: 400 message: Username already exists on sftp server parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_invalid_port: summary: sftp_destination_invalid_port value: code: sftp_destination_invalid_port http_status_code: 400 message: Port is not valid parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 missing_request_body: summary: missing_request_body value: code: missing_request_body http_status_code: 400 message: Missing request body parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_missing_username: summary: sftp_destination_missing_username value: code: sftp_destination_missing_username http_status_code: 400 message: Username is mandatory parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_invalid_name: summary: sftp_destination_invalid_name value: code: sftp_destination_invalid_name http_status_code: 400 message: Name is not valid. Name is valid if it has a length of max 255 characters and contains only ASCII printable characters. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 binding_error: summary: binding_error value: code: binding_error http_status_code: 400 message: Argument is not of the expected type parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 access_denied: summary: access_denied value: code: access_denied http_status_code: 403 message: The access_token provided is not permitted to access the specified resource. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_missing_host: summary: sftp_destination_missing_host value: code: sftp_destination_missing_host http_status_code: 400 message: Host is mandatory parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 too_many_requests: summary: too_many_requests value: code: too_many_requests http_status_code: 429 message: The server is unable to process your request at the moment, please retry later. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_parameter: summary: invalid_parameter value: code: invalid_parameter http_status_code: 400 message: Parameter is invalid. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_client_key_not_found: summary: sftp_destination_client_key_not_found value: code: sftp_destination_client_key_not_found http_status_code: 400 message: Client key not found parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 unsupported_operation: summary: unsupported_operation value: code: unsupported_operation http_status_code: 400 message: Operation is not supported for given sftp destination type parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_duplicated_name: summary: sftp_destination_duplicated_name value: code: sftp_destination_duplicated_name http_status_code: 400 message: Sftp destination with such a name already exists parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 external_sftp_destination_invalid_username: summary: external_sftp_destination_invalid_username value: code: external_sftp_destination_invalid_username http_status_code: 400 message: Username is not valid for external sftp destination. A valid username must not be empty or blank, not longer than 255 characters and contain only ASCII printable characters parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 sftp_destination_invalid_key_content: summary: sftp_destination_invalid_key_content value: code: sftp_destination_invalid_key_content http_status_code: 400 message: Provided client key is not a valid ssh public key. It must start with "ssh-rsa" and be base64 encoded parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 schemas: LocalSftpDestinationUpdateRequest: allOf: - $ref: '#/components/schemas/SftpDestinationUpdateRequestBase' - properties: file_processing_enabled: type: boolean key_ids: items: type: string type: array uniqueItems: true type: enum: - LOCAL type: string type: object description: Extole local sftp destination update request. required: - type type: object ExternalSftpDestinationResponse: allOf: - $ref: '#/components/schemas/SftpDestinationResponseBase' - properties: id: readOnly: true type: string key_id: type: string partner_key_id: nullable: true type: string type: enum: - EXTERNAL type: string type: object description: External sftp destination response. required: - created_date - dropbox_path - extole_key_id - host - id - key_id - name - partner_key_id - port - type - updated_date - username type: object LocalSftpDestinationResponse: allOf: - $ref: '#/components/schemas/SftpDestinationResponseBase' - properties: file_processing_enabled: type: boolean id: readOnly: true type: string key_ids: items: type: string type: array uniqueItems: true partner_key_id: nullable: true type: string type: enum: - LOCAL type: string type: object description: Extole local sftp destination response. required: - created_date - dropbox_path - extole_key_id - file_processing_enabled - host - id - key_ids - name - partner_key_id - port - type - updated_date - username type: object ExternalSftpDestinationCreateRequest: allOf: - $ref: '#/components/schemas/SftpDestinationCreateRequestBase' - properties: dropbox_path: type: string host: type: string key_id: type: string port: format: int32 type: integer type: enum: - EXTERNAL type: string username: type: string type: object description: External sftp destination create request. required: - host - key_id - type - username type: object LocalSftpDestinationCreateRequest: allOf: - $ref: '#/components/schemas/SftpDestinationCreateRequestBase' - properties: file_processing_enabled: type: boolean key_ids: items: type: string type: array uniqueItems: true type: enum: - LOCAL type: string username: type: string type: object description: Extole local sftp destination create request. required: - key_ids - type type: object SftpDestinationResponse: discriminator: mapping: EXTERNAL: '#/components/schemas/ExternalSftpDestinationResponse' LOCAL: '#/components/schemas/LocalSftpDestinationResponse' propertyName: type oneOf: - $ref: '#/components/schemas/ExternalSftpDestinationResponse' - $ref: '#/components/schemas/LocalSftpDestinationResponse' SftpDestinationResponseBase: properties: created_date: $ref: '#/components/schemas/ZonedDateTime' dropbox_path: type: string extole_key_id: type: string host: type: string id: type: string name: type: string partner_key_id: type: string port: format: int32 type: integer type: enum: - EXTERNAL - LOCAL type: string updated_date: $ref: '#/components/schemas/ZonedDateTime' username: type: string type: object SftpDestinationCreateRequestBase: properties: extole_key_id: type: string name: type: string partner_key_id: type: string type: enum: - EXTERNAL - LOCAL type: string type: object ExternalSftpDestinationUpdateRequest: allOf: - $ref: '#/components/schemas/SftpDestinationUpdateRequestBase' - properties: dropbox_path: type: string host: type: string key_id: type: string port: format: int32 type: integer type: enum: - EXTERNAL type: string username: type: string type: object description: External sftp destination create request. required: - type type: object SftpDestinationCreateRequest: description: Body of a `POST /v6/sftp-destinations` request. discriminator: mapping: EXTERNAL: '#/components/schemas/ExternalSftpDestinationCreateRequest' LOCAL: '#/components/schemas/LocalSftpDestinationCreateRequest' propertyName: type oneOf: - $ref: '#/components/schemas/ExternalSftpDestinationCreateRequest' - $ref: '#/components/schemas/LocalSftpDestinationCreateRequest' required: - type ZonedDateTime: description: '[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.' example: '2025-10-24T02:00:00-07:00' pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$ type: string RestExceptionResponse: description: Represents the API error response properties: code: description: Specific error code for this error type, documented per endpoint type: string http_status_code: description: HTTP status code that was returned with this error, useful if client get response code format: int32 type: integer message: description: User readable English description of the error type: string parameters: additionalProperties: description: Attributes related to the error, varies be error code, documented per endpoint type: object description: Attributes related to the error, varies be error code, documented per endpoint type: object unique_id: description: Unique id associated with this error, useful for discussions with Extole type: string required: - code - http_status_code - message - parameters - unique_id type: object SftpDestinationUpdateRequest: description: Body of a `PUT /v6/sftp-destinations/{sftpDestinationId}` request. discriminator: mapping: EXTERNAL: '#/components/schemas/ExternalSftpDestinationUpdateRequest' LOCAL: '#/components/schemas/LocalSftpDestinationUpdateRequest' propertyName: type oneOf: - $ref: '#/components/schemas/ExternalSftpDestinationUpdateRequest' - $ref: '#/components/schemas/LocalSftpDestinationUpdateRequest' required: - type SftpDestinationUpdateRequestBase: properties: extole_key_id: type: string name: type: string partner_key_id: type: string type: enum: - EXTERNAL - LOCAL type: string type: object SftpDestinationValidationResponse: properties: reason: type: string sftp_destination: $ref: '#/components/schemas/SftpDestinationResponse' status: enum: - FAIL - PASS type: string required: - reason - sftp_destination - status type: object securitySchemes: COOKIE: in: cookie name: extole_token type: apiKey HEADER: in: header name: Authorization type: apiKey x-bearer-format: bearer QUERY: in: query name: access_token type: apiKey x-tagGroups: - name: Integration API - Consumer to Extole tags: - Authentication - Content - Email - Events - Persons - Profile Assets - Profiles