From d12fa068ad8b2009bbdf99ee320af8b3863f1812 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Mon, 28 Sep 2026 15:11:01 +1000 Subject: [PATCH] fivetran updates --- .../src/fivetran/v00.00.00000/provider.yaml | 135 +- .../v00.00.00000/services/account.yaml | 863 ++++ .../v00.00.00000/services/certificates.yaml | 1232 +++++- .../v00.00.00000/services/connections.yaml | 3506 +++++++++++++++++ .../v00.00.00000/services/connector_sdk.yaml | 352 ++ .../v00.00.00000/services/connectors.yaml | 2191 ---------- .../services/dbt_transformations.yaml | 899 ----- .../v00.00.00000/services/destinations.yaml | 1303 ++++-- .../services/external_logging.yaml | 717 ++++ .../services/external_secrets_managers.yaml | 658 ++++ .../v00.00.00000/services/groups.yaml | 1531 ++++--- .../services/hybrid_deployment.yaml | 634 +++ .../v00.00.00000/services/metadata.yaml | 391 ++ .../v00.00.00000/services/networking.yaml | 1235 ++++++ .../fivetran/v00.00.00000/services/roles.yaml | 113 - .../fivetran/v00.00.00000/services/teams.yaml | 1507 +++---- .../services/transformations.yaml | 1447 +++++++ .../fivetran/v00.00.00000/services/users.yaml | 1663 +++++--- .../v00.00.00000/services/webhooks.yaml | 661 ++-- 19 files changed, 15156 insertions(+), 5882 deletions(-) create mode 100644 providers/src/fivetran/v00.00.00000/services/account.yaml create mode 100644 providers/src/fivetran/v00.00.00000/services/connections.yaml create mode 100644 providers/src/fivetran/v00.00.00000/services/connector_sdk.yaml delete mode 100644 providers/src/fivetran/v00.00.00000/services/connectors.yaml delete mode 100644 providers/src/fivetran/v00.00.00000/services/dbt_transformations.yaml create mode 100644 providers/src/fivetran/v00.00.00000/services/external_logging.yaml create mode 100644 providers/src/fivetran/v00.00.00000/services/external_secrets_managers.yaml create mode 100644 providers/src/fivetran/v00.00.00000/services/hybrid_deployment.yaml create mode 100644 providers/src/fivetran/v00.00.00000/services/metadata.yaml create mode 100644 providers/src/fivetran/v00.00.00000/services/networking.yaml delete mode 100644 providers/src/fivetran/v00.00.00000/services/roles.yaml create mode 100644 providers/src/fivetran/v00.00.00000/services/transformations.yaml diff --git a/providers/src/fivetran/v00.00.00000/provider.yaml b/providers/src/fivetran/v00.00.00000/provider.yaml index 31f5659d..0a8b16ad 100644 --- a/providers/src/fivetran/v00.00.00000/provider.yaml +++ b/providers/src/fivetran/v00.00.00000/provider.yaml @@ -2,90 +2,149 @@ id: fivetran name: fivetran version: v00.00.00000 providerServices: + account: + id: account:v00.00.00000 + name: account + preferred: true + service: + $ref: fivetran/v00.00.00000/services/account.yaml + title: Fivetran Account API + version: v00.00.00000 + description: Account information, roles and system keys. certificates: - description: Certificate Management - id: 'certificates:v00.00.00000' + id: certificates:v00.00.00000 name: certificates preferred: true service: $ref: fivetran/v00.00.00000/services/certificates.yaml - title: OpenAPI Definition - Certificates + title: Fivetran Certificates API version: v00.00.00000 - connectors: - description: Connector Schema Management - id: 'connectors:v00.00.00000' - name: connectors + description: >- + TLS certificates and SSH fingerprints approved for connections and + destinations. + connections: + id: connections:v00.00.00000 + name: connections preferred: true service: - $ref: fivetran/v00.00.00000/services/connectors.yaml - title: OpenAPI Definition - Connectors + $ref: fivetran/v00.00.00000/services/connections.yaml + title: Fivetran Connections API version: v00.00.00000 - dbt_transformations: - description: DBT Transformation Management - id: 'dbt_transformations:v00.00.00000' - name: dbt_transformations + description: >- + Connections (formerly connectors): lifecycle, sync and resync, state, sync + history, warnings, and the schema, table and column configuration. + connector_sdk: + id: connector_sdk:v00.00.00000 + name: connector_sdk preferred: true service: - $ref: fivetran/v00.00.00000/services/dbt_transformations.yaml - title: OpenAPI Definition - Dbt Transformations + $ref: fivetran/v00.00.00000/services/connector_sdk.yaml + title: Fivetran Connector SDK API version: v00.00.00000 + description: Connector SDK packages. destinations: - description: Destination Management - id: 'destinations:v00.00.00000' + id: destinations:v00.00.00000 name: destinations preferred: true service: $ref: fivetran/v00.00.00000/services/destinations.yaml - title: OpenAPI Definition - Destinations + title: Fivetran Destinations API + version: v00.00.00000 + description: Destinations and their setup tests. + external_logging: + id: external_logging:v00.00.00000 + name: external_logging + preferred: true + service: + $ref: fivetran/v00.00.00000/services/external_logging.yaml + title: Fivetran External Logging API + version: v00.00.00000 + description: Log services at group and account level. + external_secrets_managers: + id: external_secrets_managers:v00.00.00000 + name: external_secrets_managers + preferred: true + service: + $ref: fivetran/v00.00.00000/services/external_secrets_managers.yaml + title: Fivetran External Secrets Managers API version: v00.00.00000 + description: External secrets managers and the entities that use them. groups: - description: Group Management - id: 'groups:v00.00.00000' + id: groups:v00.00.00000 name: groups preferred: true service: $ref: fivetran/v00.00.00000/services/groups.yaml - title: OpenAPI Definition - Groups + title: Fivetran Groups API version: v00.00.00000 - roles: - description: Role Management - id: 'roles:v00.00.00000' - name: roles + description: Groups, their users and connections, SSH public key and service account. + hybrid_deployment: + id: hybrid_deployment:v00.00.00000 + name: hybrid_deployment preferred: true service: - $ref: fivetran/v00.00.00000/services/roles.yaml - title: OpenAPI Definition - Roles + $ref: fivetran/v00.00.00000/services/hybrid_deployment.yaml + title: Fivetran Hybrid Deployment API version: v00.00.00000 + description: Hybrid deployment agents and HVR hub registration. + metadata: + id: metadata:v00.00.00000 + name: metadata + preferred: true + service: + $ref: fivetran/v00.00.00000/services/metadata.yaml + title: Fivetran Connector Metadata API + version: v00.00.00000 + description: Connector types and their configuration metadata. + networking: + id: networking:v00.00.00000 + name: networking + preferred: true + service: + $ref: fivetran/v00.00.00000/services/networking.yaml + title: Fivetran Networking API + version: v00.00.00000 + description: Private links and proxy agents. teams: - description: Team Management - id: 'teams:v00.00.00000' + id: teams:v00.00.00000 name: teams preferred: true service: $ref: fivetran/v00.00.00000/services/teams.yaml - title: OpenAPI Definition - Teams + title: Fivetran Teams API + version: v00.00.00000 + description: Teams and their user, group and connection memberships. + transformations: + id: transformations:v00.00.00000 + name: transformations + preferred: true + service: + $ref: fivetran/v00.00.00000/services/transformations.yaml + title: Fivetran Transformations API version: v00.00.00000 + description: Transformations, transformation projects and quickstart package metadata. users: - description: User Management - id: 'users:v00.00.00000' + id: users:v00.00.00000 name: users preferred: true service: $ref: fivetran/v00.00.00000/services/users.yaml - title: OpenAPI Definition - Users + title: Fivetran Users API version: v00.00.00000 + description: Users, API keys, and group and connection memberships. webhooks: - description: Webhook Management - id: 'webhooks:v00.00.00000' + id: webhooks:v00.00.00000 name: webhooks preferred: true service: $ref: fivetran/v00.00.00000/services/webhooks.yaml - title: OpenAPI Definition - Webhooks + title: Fivetran Webhooks API version: v00.00.00000 + description: Account and group webhooks. config: auth: type: basic valuePrefix: 'Basic ' - username_var: FIVETRAN_API_KEY - password_var: FIVETRAN_API_SECRET + username_var: FIVETRAN_APIKEY + password_var: FIVETRAN_APISECRET + snake_case_aliases: true diff --git a/providers/src/fivetran/v00.00.00000/services/account.yaml b/providers/src/fivetran/v00.00.00000/services/account.yaml new file mode 100644 index 00000000..823d8231 --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/account.yaml @@ -0,0 +1,863 @@ +openapi: 3.0.1 +info: + title: Fivetran Account API + description: Account information, roles and system keys. + version: v1 +paths: + /v1/account/info: + get: + tags: + - Account Management + summary: Get Account Info from the API Key + description: Returns information about current account from API key. + operationId: get_account_info + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Account information retrieved successfully + data: + $ref: '#/components/schemas/AccountInfoResponse' + type: object + '401': + description: Invalid authorization credentials + /v1/roles: + get: + tags: + - Role Management + summary: List all roles + description: Returns a list of all predefined and custom roles within your Fivetran account. + operationId: list_all_roles + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Roles list retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/RoleResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + /v1/system-keys: + get: + tags: + - System Key Management + summary: List All System Keys + description: Returns a list of system keys within your Fivetran account. + operationId: get_system_keys + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: System keys retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/SystemKeyResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + examples: + get_list_response: + value: + code: Success + data: + items: + - id: _moonbeam_acc_dev + name: dev + key: + created_at: '2023-11-10T22:11:52.326265Z' + expired_at: '2024-02-10T22:11:52.326265Z' + - id: cyclical_prospered + name: prod_key + key: + created_at: '2023-11-10T22:11:58.931Z' + updated_at: '2023-11-10T22:11:58.931Z' + expired_at: '2024-02-10T22:11:58.931Z' + post: + tags: + - System Key Management + summary: Create a System Key + description: Creates a new system key with your Fivetran account. + operationId: create_system_key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NewSystemKeyRequest' + examples: + create_request: + value: + name: prod_key + expiration_period: THREE_MONTHS + permissions: + - resource_type: USER + access_level: READ + - resource_type: WEBHOOK + access_level: MANAGE + - resource_type: CONNECTOR + access_level: MANAGE + - resource_type: DESTINATION + access_level: MANAGE + - resource_type: TRANSFORMATION + access_level: MANAGE + resource_filter: + group_ids: + - group_id_1 + - group_id_2 + - resource_type: CONNECTOR + access_level: NONE + resource_filter: + ids: + - connection_id_1 + - connection_id_2 + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: System key has been created + data: + $ref: '#/components/schemas/SystemKeyResponse' + type: object + examples: + create_response: + value: + code: Success + message: System key has been created + data: + id: sod_determine + name: prod_key + key: + secret: + created_at: '2023-11-10T19:32:58.646Z' + expired_at: '2024-02-10T19:32:58.646Z' + permissions: + - resource_type: USER + access_level: READ + - resource_type: WEBHOOK + access_level: MANAGE + - resource_type: DESTINATION + access_level: MANAGE + - resource_type: TRANSFORMATION + access_level: MANAGE + resource_filter: + group_ids: + - group_id_1 + - group_id_2 + - resource_type: CONNECTOR + access_level: NONE + resource_filter: + ids: + - connection_id_1 + - connection_id_2 + - resource_type: CONNECTOR + access_level: MANAGE + /v1/system-keys/{key_id}: + get: + tags: + - System Key Management + summary: Retrieve System Key Details + description: Retrieves a system key object within your Fivetran account. + operationId: get_system_key_details + parameters: + - name: key_id + in: path + description: The unique identifier for the system key within your Fivetran account. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: System key details retrieved successfully + data: + $ref: '#/components/schemas/SystemKeyResponse' + type: object + examples: + get_response: + value: + code: Success + data: + id: rushed_fainting + name: updated_key + key_value: + created_at: '2023-10-17T14:01:16.318Z' + updated_at: '2023-10-17T14:02:20.919291Z' + expired_at: '2024-01-17T14:01:16.318Z' + permissions: + - resource_type: CONNECTOR + access_level: MANAGE + - resource_type: DESTINATION + access_level: MANAGE + - resource_type: TRANSFORMATION + access_level: MANAGE + resource_filter: + group_ids: + - group_id_1 + - group_id_2 + - resource_type: CONNECTOR + access_level: NONE + resource_filter: + ids: + - connection_id_3 + - connection_id_4 + delete: + tags: + - System Key Management + summary: Delete a System Key + description: Deletes a system key from your Fivetran account. + operationId: delete_system_key + parameters: + - name: key_id + in: path + description: The unique identifier for the system key within your Fivetran account. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: System key with id 'string' has been deleted + type: object + examples: + delete_response: + value: + code: Success + message: System key with id 'rushed_fainting' has been deleted + patch: + tags: + - System Key Management + summary: Update a System Key + description: Updates an existing system key within your Fivetran account. + operationId: update_system_key + parameters: + - name: key_id + in: path + description: The unique identifier for the system key within your Fivetran account. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSystemKeyRequest' + examples: + update_request: + value: + name: updated_key + permissions: + - resource_type: CONNECTOR + access_level: MANAGE + - resource_type: DESTINATION + access_level: MANAGE + - resource_type: TRANSFORMATION + access_level: MANAGE + resource_filter: + group_ids: + - group_id_3 + - group_id_4 + - resource_type: CONNECTOR + access_level: NONE + resource_filter: + ids: + - connection_id_3 + - connection_id_4 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: System key has been updated + data: + $ref: '#/components/schemas/SystemKeyResponse' + type: object + examples: + update_response: + value: + code: Success + message: System key has been updated + data: + id: rushed_fainting + name: updated_key + key_value: + created_at: '2023-10-17T14:01:16.318Z' + updated_at: '2023-10-17T14:02:20.919291Z' + expired_at: '2024-01-17T14:01:16.318Z' + permissions: + - resource_type: CONNECTOR + access_level: MANAGE + - resource_type: DESTINATION + access_level: MANAGE + - resource_type: TRANSFORMATION + access_level: MANAGE + resource_filter: + group_ids: + - group_id_3 + - group_id_4 + - resource_type: CONNECTOR + access_level: NONE + resource_filter: + ids: + - connection_id_3 + - connection_id_4 + /v1/system-keys/{key_id}/rotate: + post: + tags: + - System Key Management + summary: Rotate a System Key + description: Updates the secret value and expired_at date for an existing system key within your Fivetran account. + operationId: rotate_system_key + parameters: + - name: key_id + in: path + description: The unique identifier for the system key within your Fivetran account. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RotateSystemKeyRequest' + examples: + rotate_request: + value: + name: updated_key + permissions: + expiration_period: THREE_MONTHS + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: System key with id 'string' has been rotated + data: + $ref: '#/components/schemas/SystemKeyResponse' + type: object + examples: + rotate_response: + value: + code: Success + message: System key with id 'rushed_fainting' has been rotated + data: + id: rushed_fainting + name: prod_key + key: + secret: + created_at: '2023-11-10T19:32:58.646Z' + expired_at: '2024-02-10T19:32:58.646Z' + permissions: + - resource_type: USER + access_level: READ + - resource_type: WEBHOOK + access_level: MANAGE + - resource_type: DESTINATION + access_level: MANAGE + - resource_type: TRANSFORMATION + access_level: MANAGE + resource_filter: + group_ids: + - group_id_1 + - group_id_2 + - resource_type: CONNECTOR + access_level: NONE + resource_filter: + ids: + - connection_id_3 + - connection_id_4 + - resource_type: CONNECTOR + access_level: MANAGE +components: + schemas: + AccountInfoResponse: + required: + - account_id + type: object + properties: + account_id: + type: string + description: The unique identifier for the account within the Fivetran system. + example: account_id + account_name: + type: string + user_id: + type: string + description: The user ID from the API key. Returned if the user API key is used to authenticate the request. + example: user_id + system_key_id: + type: string + description: The system ID from the API key. Returned if the system API key is used to authenticate the request. + example: system_key_id + RoleResponse: + required: + - is_custom + - is_deprecated + - name + - replacement_role_name + - scope + type: object + properties: + name: + type: string + description: The role name + example: Destination Administrator + description: + type: string + description: The role description + example: Role Description + scope: + uniqueItems: true + type: array + description: Defines the list of resources the role manages + example: + - DESTINATION + items: + type: string + enum: + - ACCOUNT + - DESTINATION + - CONNECTOR + - TEAM + is_custom: + type: boolean + description: Defines whether the role is standard or custom + example: false + is_deprecated: + type: boolean + description: Defines whether the role is deprecated + example: true + replacement_role_name: + type: string + description: The name of the new role replacing the deprecated role + example: Manage Destination + SystemKeyResponse: + type: object + properties: + id: + type: string + description: The unique identifier for the system key within the Fivetran system + example: key_id + name: + type: string + description: The system key name within the account + example: MySystemKey + key: + type: string + description: The key value of the system key + example: ft_rDefAFDSgFdAGdFG + secret: + type: string + description: The secret value of rotated system key + example: uytFfdSfDADFgfCgFBVsdCSFg4fsGfFg87fhRuuFASuTHkETSfg + permissions: + type: array + items: + $ref: '#/components/schemas/SystemKeyPermissionResponse' + created_at: + type: string + description: The system key creation timestamp + format: date-time + example: '2023-08-20T10:15:20.677566Z' + updated_at: + type: string + description: The system key update timestamp + format: date-time + example: '2023-08-20T10:15:20.677566Z' + expired_at: + type: string + description: The system key expiration timestamp + format: date-time + example: '2024-08-20T10:15:20.677566Z' + last_used_at: + type: string + description: The timestamp of last usage + format: date-time + example: '2023-08-20T10:15:20.677566Z' + NewSystemKeyRequest: + type: object + properties: + name: + type: string + description: The system key name within the account + example: MySystemKey + expiration_period: + type: string + description: The system key's expiration period + example: SIX_MONTHS + enum: + - ONE_WEEK + - ONE_MONTH + - THREE_MONTHS + - SIX_MONTHS + - INFINITE + permissions: + type: array + items: + $ref: '#/components/schemas/SystemKeyPermissionRequest' + UpdateSystemKeyRequest: + type: object + properties: + name: + type: string + description: The system key name within the account + example: MySystemKey + permissions: + type: array + items: + $ref: '#/components/schemas/SystemKeyPermissionRequest' + RotateSystemKeyRequest: + type: object + properties: + expiration_period: + type: string + description: The system key's expiration period + example: SIX_MONTHS + enum: + - ONE_WEEK + - ONE_MONTH + - THREE_MONTHS + - SIX_MONTHS + - INFINITE + SystemKeyPermissionResponse: + type: object + properties: + resource_type: + type: string + description: The resource type for the permission + example: DESTINATION + enum: + - ACCOUNT + - USER + - WEBHOOK + - TEAM + - ROLES + - DESTINATION + - TRANSFORMATION + - REMOTE_EXECUTION_AGENT + - CONNECTOR + access_level: + type: string + description: The access level for the permission + example: MANAGE + enum: + - NONE + - READ + - MANAGE + resource_filter: + $ref: '#/components/schemas/SystemKeyPermissionResourceFilter' + SystemKeyPermissionRequest: + type: object + properties: + resource_type: + type: string + description: The resource type for the permission + example: CONNECTOR + enum: + - ACCOUNT + - USER + - WEBHOOK + - TEAM + - ROLES + - DESTINATION + - TRANSFORMATION + - REMOTE_EXECUTION_AGENT + - CONNECTOR + access_level: + type: string + description: The access level for the permission + example: MANAGE + enum: + - NONE + - READ + - MANAGE + resource_filter: + $ref: '#/components/schemas/SystemKeyPermissionResourceFilter' + SystemKeyPermissionResourceFilter: + type: object + properties: + ids: + type: array + description: The IDs of managed entities + example: {} + items: + type: string + group_ids: + type: array + description: The IDs of managed groups + example: {} + items: + type: string + x-stackQL-resources: + account_info: + id: fivetran.account.account_info + name: account_info + title: Account Info + methods: + get: + operation: + $ref: '#/paths/~1v1~1account~1info/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/account_info/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + roles: + id: fivetran.account.roles + name: roles + title: Roles + methods: + list: + operation: + $ref: '#/paths/~1v1~1roles/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/roles/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + system_keys: + id: fivetran.account.system_keys + name: system_keys + title: System Keys + methods: + list: + operation: + $ref: '#/paths/~1v1~1system-keys/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1system-keys/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1system-keys~1{key_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1system-keys~1{key_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1system-keys~1{key_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + rotate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1system-keys~1{key_id}~1rotate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/system_keys/methods/get' + - $ref: '#/components/x-stackQL-resources/system_keys/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/system_keys/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/system_keys/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/system_keys/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/certificates.yaml b/providers/src/fivetran/v00.00.00000/services/certificates.yaml index 45210c5d..1e383c11 100644 --- a/providers/src/fivetran/v00.00.00000/services/certificates.yaml +++ b/providers/src/fivetran/v00.00.00000/services/certificates.yaml @@ -1,153 +1,1187 @@ openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} info: - title: OpenAPI Definition - certificates - description: Certificate Management + title: Fivetran Certificates API + description: TLS certificates and SSH fingerprints approved for connections and destinations. version: v1 -security: - - basicAuth: [] -components: - schemas: - TrustCertificateRequest: - required: - - encoded_cert - - hash - type: object - properties: - connector_id: - type: string - description: The unique identifier for the connector - destination_id: - type: string - description: The unique identifier for the destination. - hash: - type: string - description: Hash of the certificate. - encoded_cert: - type: string - description: The certificate encoded in base64. - TrustFingerprintRequest: - required: - - hash - - public_key - type: object - properties: - connector_id: - type: string - description: The unique identifier for the connector - destination_id: - type: string - description: The unique identifier for the destination - hash: - type: string - description: Hash of the fingerprint - public_key: - type: string - description: The SSH public key - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - certificates: - id: fivetran.certificates.certificates - name: certificates - title: Certificates - methods: - approve_certificate: - operation: - $ref: '#/paths/~1v1~1certificates/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - fingerprints: - id: fivetran.certificates.fingerprints - name: fingerprints - title: Fingerprints - methods: - approve_fingerprint: - operation: - $ref: '#/paths/~1v1~1fingerprints/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] paths: /v1/certificates: post: tags: - Certificate Management - summary: Approve a certificate - description: 'Approves a certificate for a connector/destination, so Fivetran trusts this certificate for a source/destination database. The connector/destination setup tests will fail if a non-approved certificate is provided.' + summary: (Deprecated) Approve a Certificate + description: Approves a certificate for a connection/destination, so Fivetran trusts this certificate for a source/destination database. The connection/destination setup tests will fail if a non-approved certificate is provided. operationId: approve_certificate + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TrustCertificateRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: The certificate has been approved. + type: object + deprecated: true + /v1/connections/{connection_id}/certificates: + get: + tags: + - Certificate Management + summary: List Certificates Approved for the Connection + description: Returns the list of approved certificates for the specified connection. + operationId: get_connection_certificates_list + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection certificates retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/CertificateDetailsResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + '404': + description: Connection not found. + post: + tags: + - Certificate Management + summary: Approve a Certificate for the Connection + description: | + Approves a certificate, so Fivetran trusts this certificate for a source database connection. + The connection setup tests will fail if a non-approved certificate is provided. + + > NOTE: This is only required for source connections based on the following databases: + > - [MySQL](https://fivetran.com/docs/connectors/databases/mysql#supportedservices) + > - [PostgreSQL](https://fivetran.com/docs/connectors/databases/postgresql#supportedservices) + > - [SQLServer](https://fivetran.com/docs/connectors/databases/sql-server#supportedservices) + operationId: approve_connection_certificate parameters: - - name: Accept - in: header + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true schema: type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/TrustCertificateRequest' + $ref: '#/components/schemas/ApproveCertificateRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: The certificate has been approved. + data: + $ref: '#/components/schemas/CertificateDetailsResponse' + type: object + '400': + description: Missing `hash` or `encoded_cert` fields in request payload + '404': + description: Connection not found + /v1/connections/{connection_id}/certificates/{hash}: + get: + tags: + - Certificate Management + summary: Retrieve Connection Certificate Details + description: Returns details of the certificate approved for the specified connection with specified certificate hash. + operationId: get_connection_certificate_details + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: hash + in: path + description: The unique identifier of the certificate (Base64URL encoded hash of the certificate). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection certificate details retrieved successfully + data: + $ref: '#/components/schemas/CertificateDetailsResponse' + type: object + '404': + description: Certificate with specified hash not found + delete: + tags: + - Certificate Management + summary: Revoke Connection Certificate + description: Revokes a certificate, so Fivetran no longer trusts it while connecting to the source database. + operationId: revoke_connection_certificate + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: hash + in: path + description: The unique identifier of the certificate (Base64URL encoded hash of the certificate). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Certificate 'string' has been revoked for connection 'string' + type: object + '404': + description: Certificate with specified hash not found + /v1/connections/{connection_id}/fingerprints: + get: + tags: + - Certificate Management + summary: List Fingerprints Approved for the Connection + description: Returns the list of approved SSH fingerprints for specified connection + operationId: get_connection_fingerprints_list + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection fingerprints retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/FingerprintDetailsResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + '404': + description: Connection not found + post: + tags: + - Certificate Management + summary: Approve a Fingerprint for the Connection + description: Approves a fingerprint, enabling Fivetran to trust it for a source database and establish connections via an SSH tunnel. + operationId: approve_connection_fingerprint + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApproveFingerprintRequest' + responses: + '200': + description: Successful response + '201': + description: Successful response + content: + application/json: + schema: + type: object + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + data: + $ref: '#/components/schemas/FingerprintDetailsResponse' + '400': + description: Missing `hash` or `public_key` fields in request payload + '404': + description: Connection not found + /v1/connections/{connection_id}/fingerprints/{hash}: + get: + tags: + - Certificate Management + summary: Retrieve Connection Fingerprint Details + description: Returns SSH fingerprint details approved for specified connection with specified hash + operationId: get_connection_fingerprint_details + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: hash + in: path + description: The unique identifier of the fingerprint (Base64URL encoded hash of the fingerprint). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection fingerprint details retrieved successfully + data: + $ref: '#/components/schemas/FingerprintDetailsResponse' + type: object + '404': + description: Fingerprint with specified hash not found + delete: + tags: + - Certificate Management + summary: Revoke Connection Fingerprint + description: Revokes a fingerprint, so Fivetran no longer trusts it while connecting to the source database through an SSH tunnel. + operationId: revoke_connection_fingerprint + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: hash + in: path + description: The unique identifier of the fingerprint (Base64URL encoded hash of the fingerprint). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Fingerprint with hash 'string' has been revoked for connection with id 'string' + type: object + '404': + description: Fingerprint with specified hash not found + /v1/destinations/{destination_id}/certificates: + get: + tags: + - Certificate Management + summary: List Certificates Approved for the Destination + description: Returns the list of approved certificates for the specified destination. + operationId: get_destination_certificates_list + parameters: + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true + schema: + type: string + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Destination certificates retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/CertificateDetailsResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object type: object - /v1/fingerprints: + '404': + description: Destination not found post: tags: - Certificate Management - summary: Approve a fingerprint - description: 'Approves a fingerprint, so Fivetran trusts this fingerprint for a source/destination database, and connectors can connect to the source/destination through an SSH tunnel' - operationId: approve_fingerprint + summary: Approve a Certificate for the Destination + description: | + Approves a certificate, so Fivetran trusts this certificate for a destination database connection. + The destination connection setup tests will fail if a non-approved certificate is provided. + + > NOTE: This is only required for destination connections based on the following databases: + > - [MySQL](https://fivetran.com/docs/destinations/mysql#supportedimplementations) + > - [PostgreSQL](https://fivetran.com/docs/destinations/postgresql#supportedimplementations) + > - [SQLServer](https://fivetran.com/docs/destinations/sql-server#supportedimplementations) + operationId: approve_destination_certificate parameters: - - name: Accept - in: header + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true schema: type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/TrustFingerprintRequest' + $ref: '#/components/schemas/ApproveCertificateRequest_approve_destination_certificate' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: The certificate has been approved. + data: + $ref: '#/components/schemas/CertificateDetailsResponse' type: object + '400': + description: Missing `hash` or `encoded_cert` fields in request payload + '404': + description: Destination not found + /v1/destinations/{destination_id}/certificates/{hash}: + get: + tags: + - Certificate Management + summary: Retrieve Destination Certificate Details + description: Returns details of the certificate approved for the specified destination with specified certificate hash. + operationId: get_destination_certificate_details + parameters: + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true + schema: + type: string + - name: hash + in: path + description: The unique identifier of the certificate (Base64URL encoded hash of the certificate). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Destination certificate details retrieved successfully + data: + $ref: '#/components/schemas/CertificateDetailsResponse' + type: object + '404': + description: Certificate with specified hash not found + delete: + tags: + - Certificate Management + summary: Revoke Destination Certificate + description: Revokes a certificate, so Fivetran no longer trusts it while connecting to the destination database. + operationId: revoke_destination_certificate + parameters: + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true + schema: + type: string + - name: hash + in: path + description: The unique identifier of the certificate (Base64URL encoded hash of the certificate). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Certificate 'string' has been revoked for destination 'string' + type: object + '404': + description: Certificate with specified hash not found + /v1/destinations/{destination_id}/fingerprints: + get: + tags: + - Certificate Management + summary: List Fingerprints Approved for the Destination + description: Returns the list of approved SSH fingerprints for specified destination + operationId: get_destination_fingerprints_list + parameters: + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true + schema: + type: string + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Destination fingerprints retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/FingerprintDetailsResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + '404': + description: Destination not found + post: + tags: + - Certificate Management + summary: Approve a Fingerprint for the Destination + description: Approves a fingerprint, enabling Fivetran to trust it for a destination database and establish connections via an SSH tunnel. + operationId: approve_destination_fingerprint + parameters: + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApproveFingerprintRequest_approve_destination_fingerprint' + responses: + '200': + description: Successful response + '201': + description: Successful response + content: + application/json: + schema: + type: object + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + data: + $ref: '#/components/schemas/FingerprintDetailsResponse' + '400': + description: Missing `hash` or `public_key` fields in request payload + '404': + description: Destination not found + /v1/destinations/{destination_id}/fingerprints/{hash}: + get: + tags: + - Certificate Management + summary: Retrieve Destination Fingerprint Details + description: Returns SSH fingerprint details approved for specified destination with specified hash + operationId: get_destination_fingerprint_details + parameters: + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true + schema: + type: string + - name: hash + in: path + description: The unique identifier of the fingerprint (Base64URL encoded hash of the fingerprint). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Destination fingerprint details retrieved successfully + data: + $ref: '#/components/schemas/FingerprintDetailsResponse' + type: object + '404': + description: Fingerprint with specified hash not found + delete: + tags: + - Certificate Management + summary: Revoke Destination Fingerprint + description: Revokes a fingerprint, so Fivetran no longer trusts it while connecting to the destination database through an SSH tunnel. + operationId: revoke_destination_fingerprint + parameters: + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true + schema: + type: string + - name: hash + in: path + description: The unique identifier of the fingerprint (Base64URL encoded hash of the fingerprint). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Fingerprint with hash = 'string' has been revoked for destination id = 'string' + type: object + '404': + description: Fingerprint with specified hash not found +components: + schemas: + TrustCertificateRequest: + required: + - encoded_cert + - hash + type: object + properties: + hash: + type: string + description: Hash of the certificate. + example: jhg5UI7fgrI6yy... + encoded_cert: + type: string + description: The certificate encoded in base64. + example: MIID9DCCAtygAwIBAgIBQjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCV... + connection_id: + type: string + description: The unique identifier for the connection within the Fivetran system. + example: connection_id + destination_id: + type: string + description: The unique identifier for the destination within the Fivetran system. + example: destination_id + CertificateDetailsResponse: + required: + - hash + - id + - name + - public_key + - sha1 + - sha256 + - type + - validated_by + - validated_date + type: object + properties: + id: + type: string + description: The unique identifier of the certificate (Base64URL encoded hash of the certificate). + example: Y29ubmVjdG9yIGNlcnRpZmljYXRlIGhhc2g + name: + type: string + description: The certificate name. + example: Certificate Name + hash: + type: string + description: Hash of the certificate. + example: jhg5UI7fgrI6yy... + type: + type: string + description: Type of the certificate. + example: TLS + sha1: + type: string + description: SHA1 of certificate. + example: c8de1d13vtu435ilj435lj345796d8jh7hk8hgk + sha256: + type: string + description: SHA256 of certificate. + example: 5vt6rt6jtr654eef94ec3f91122a623b389f4d331ff330026e43af21013vb45f + public_key: + type: string + description: The certificate decoded public key. + example: 'Sun RSA public key, 2048 bits params: null modulus: 7685655455... public exponent: 65537' + validated_date: + type: string + description: Date when certificate has been validated and approved. + format: date-time + example: '2023-08-20T10:15:20.677566Z' + validated_by: + type: string + description: The unique identified for the user who has approved the certificate. + example: user_id + ApproveCertificateRequest: + required: + - encoded_cert + - hash + type: object + properties: + hash: + type: string + description: Hash of the certificate. + example: jhg5UI7fgrI6yy... + encoded_cert: + type: string + description: The certificate encoded in base64. + example: MIID9DCCAtygAwIBAgIBQjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCV... + FingerprintDetailsResponse: + required: + - hash + - id + - public_key + - validated_by + - validated_date + type: object + properties: + id: + type: string + description: The unique identifier of the fingerprint (Base64URL encoded hash of the fingerprint). + example: Y29ubmVjdG9yIGZpbmdlcnByaW50IGhhc2g + hash: + type: string + description: Hash of the fingerprint. + example: eUtPirI6yy... + public_key: + type: string + description: The SSH public key. + example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6 ... fivetran user key + validated_date: + type: string + description: Date when fingerprint has been validated and approved. + format: date-time + example: '2024-01-01T00:00:00Z' + validated_by: + type: string + description: The unique identified for the user who has approved the fingerprint. + example: user_id + ApproveFingerprintRequest: + required: + - hash + - public_key + type: object + properties: + hash: + type: string + description: Hash of the fingerprint. + example: eUtPirI6yy... + public_key: + type: string + description: The SSH public key. + example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6 ... fivetran user key + ApproveCertificateRequest_approve_destination_certificate: + required: + - encoded_cert + - hash + type: object + properties: + hash: + type: string + description: Hash of the certificate. + example: jhg5UI7fgrI6yy... + encoded_cert: + type: string + description: The certificate encoded in base64. + example: MIID9DCCAtygAwIBAgIBQjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCV... + ApproveFingerprintRequest_approve_destination_fingerprint: + required: + - hash + - public_key + type: object + properties: + hash: + type: string + description: Hash of the fingerprint. + example: eUtPirI6yy... + public_key: + type: string + description: The SSH public key. + example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6 ... fivetran user key + x-stackQL-resources: + certificates: + id: fivetran.certificates.certificates + name: certificates + title: Certificates + methods: + approve: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1certificates/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + connection_certificates: + id: fivetran.certificates.connection_certificates + name: connection_certificates + title: Connection Certificates + methods: + list: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1certificates/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1certificates/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1certificates~1{hash}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1certificates~1{hash}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connection_certificates/methods/get' + - $ref: '#/components/x-stackQL-resources/connection_certificates/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connection_certificates/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/connection_certificates/methods/delete' + replace: [] + connection_fingerprints: + id: fivetran.certificates.connection_fingerprints + name: connection_fingerprints + title: Connection Fingerprints + methods: + list: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1fingerprints/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1fingerprints/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1fingerprints~1{hash}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1fingerprints~1{hash}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connection_fingerprints/methods/get' + - $ref: '#/components/x-stackQL-resources/connection_fingerprints/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connection_fingerprints/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/connection_fingerprints/methods/delete' + replace: [] + destination_certificates: + id: fivetran.certificates.destination_certificates + name: destination_certificates + title: Destination Certificates + methods: + list: + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1certificates/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1certificates/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1certificates~1{hash}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1certificates~1{hash}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/destination_certificates/methods/get' + - $ref: '#/components/x-stackQL-resources/destination_certificates/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/destination_certificates/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/destination_certificates/methods/delete' + replace: [] + destination_fingerprints: + id: fivetran.certificates.destination_fingerprints + name: destination_fingerprints + title: Destination Fingerprints + methods: + list: + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1fingerprints/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1fingerprints/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1fingerprints~1{hash}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1fingerprints~1{hash}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/destination_fingerprints/methods/get' + - $ref: '#/components/x-stackQL-resources/destination_fingerprints/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/destination_fingerprints/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/destination_fingerprints/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/connections.yaml b/providers/src/fivetran/v00.00.00000/services/connections.yaml new file mode 100644 index 00000000..6e944f79 --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/connections.yaml @@ -0,0 +1,3506 @@ +openapi: 3.0.1 +info: + title: Fivetran Connections API + description: 'Connections (formerly connectors): lifecycle, sync and resync, state, sync history, warnings, and the schema, table and column configuration.' + version: v1 +paths: + /v1/connections: + get: + tags: + - Connection Management + summary: List All Connections + description: Returns a list of all accessible connections within your Fivetran account. + operationId: list_connections + parameters: + - name: group_id + in: query + description: Filter the list to connections belonging to this group. Retrieve group IDs from the [List All Groups](https://fivetran.com/docs/rest-api/api-reference/groups/list-all-groups) endpoint. + required: false + schema: + type: string + example: group_id + example: group_id + - name: schema + in: query + description: Filter the list to connections whose schema name matches this value. Partial matches are not supported. + required: false + schema: + type: string + example: schema + example: schema + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connections list retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/ConnectorResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + '401': + description: Unauthorized error + '405': + description: Method not allowed error + '406': + description: Not acceptable error + post: + tags: + - Connection Management + summary: Create a Connection + description: |- + Creates a new connection within a specified group in your Fivetran account. Runs setup tests and returns testing results.
+ > IMPORTANT: The `destination_schema_names` field will soon become a required field. Make sure to include it in your API requests when creating new connections to prevent future disruptions. + > IMPORTANT: If you want to get the fingerprint details, do not set `trust_fingerprints` to `true` when you create a connection with our REST API. We can only provide the fingerprint details through the failed SSH Tunnel Connection setup test. For a full walkthrough, see [Get Connection Fingerprint Details](https://fivetran.com/docs/rest-api/tutorials/get-connection-fingerprint-details). + operationId: create_connection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NewConnectorRequestV1' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection has been created + data: + $ref: '#/components/schemas/ConnectorResponseV1' + type: object + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found error + '406': + description: Not acceptable + '409': + description: Conflict + '415': + description: Unsupported media type + /v1/connections/{connection_id}: + get: + tags: + - Connection Management + summary: Retrieve Connection Details + description: Returns a connection configuration and status details if a valid identifier was provided. + operationId: connection_details + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection details retrieved successfully + data: + $ref: '#/components/schemas/ConnectorResponseV1' + type: object + '401': + description: Unauthorized error + '404': + description: Not found error + '405': + description: Method not allowed error + '406': + description: Not acceptable error + delete: + tags: + - Connection Management + summary: Delete a Connection + description: Deletes a connection from your Fivetran account. + operationId: delete_connection + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection with id 'string' has been deleted + type: object + '404': + description: Not found error + patch: + tags: + - Connection Management + summary: Update a Connection + description: | + Updates connection parameters for an existing connection within your Fivetran account. + + This endpoint requires at least one persistent configuration parameter to be specified (e.g., `sync_frequency`, `paused`, `config`, `auth`, `daily_sync_time`, `schema_status`). + + > IMPORTANT: Parameters like `trust_certificates`, `trust_fingerprints`, and `run_setup_tests` are test-control parameters that affect only the behavior of setup tests during the update and do not persist in the connection configuration; they cannot be used on their own. If you want to run setup tests without making configuration changes, use the POST `/v1/connections/{connectionId}/test` endpoint instead. + operationId: modify_connection + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateConnectorRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection has been updated + data: + $ref: '#/components/schemas/ConnectorResponseV1' + type: object + '404': + description: Not found error + /v1/connections/{connection_id}/connect-card: + post: + tags: + - Connection Management + summary: Create a Connect Card + description: Generates the Connect Card URI for the connection + operationId: connect_card + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectCardConfigRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection Connect Card has been created + data: + $ref: '#/components/schemas/ConnectorConnectCardResponse' + type: object + '400': + description: Bad request + '401': + description: Unauthorized + '404': + description: Not found error + '406': + description: Not acceptable + '415': + description: Unsupported media type + /v1/connections/{connection_id}/move: + post: + tags: + - Connection Management + summary: Move a Connection + description: 'Moves a connection from its current destination group to a different destination group. The connection must be paused before calling this endpoint. Use `sync_behavior` to control how data syncs after the move: `CONTINUE` preserves the existing sync cursor so the connection resumes incremental sync from where it left off; `BACKFILL` resets the cursor and triggers a historical sync; `CONTINUE_WITH_DATA` preserves the cursor and additionally migrates existing data to the new destination by starting an asynchronous job. Use the `job_id` returned in the response to monitor progress via the move-connection-job-status endpoint. `CONTINUE_WITH_DATA` is supported only when moving a connection from Snowflake Native tables to a MDLS-linked Snowflake Lakehouse destination.' + operationId: connection_moved + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MoveConnectionsRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection moved successfully + data: + $ref: '#/components/schemas/MoveConnectionsResponse' + type: object + '400': + description: Bad request error + '401': + description: Unauthorized error + '404': + description: Not found error + '406': + description: Not acceptable error + '415': + description: Unsupported media type error + /v1/connections/{connection_id}/move/{job_id}: + get: + tags: + - Connection Management + summary: Retrieve Move Connection Job Status + description: Retrieves the status of an asynchronous connection move job. Use this endpoint to monitor the progress of a connection move operation that was initiated with the `CONTINUE_WITH_DATA` sync behavior. + operationId: connection_moved_job_status + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: job_id + in: path + description: The unique identifier of the move job. This is returned in the response when you initiate a connection move. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Move connection job status retrieved successfully + data: + $ref: '#/components/schemas/MoveConnectionJobResponse' + type: object + '400': + description: Bad request error + '401': + description: Unauthorized error + '404': + description: Not found error + /v1/connections/{connection_id}/resync: + post: + tags: + - Connection Management + summary: Re-sync Connection Data (Historical Sync) + description: Triggers a full historical sync of a connection or multiple schema tables within a connection. If the connection is paused, the table sync will be scheduled to be performed when the connection is re-enabled. If there is a data sync already in progress, we will try to complete it. If it fails, the request will be declined and the HTTP 409 Conflict error will be returned. + operationId: resync_connection + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResyncConnectorRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Sync has been successfully triggered for connection with id 'string' + type: object + '400': + description: Bad request error. Returned when the scope object is empty, a schema key maps to an empty table array, or the connector does not support table-level re-sync. + '401': + description: Unauthorized error + '404': + description: Not found error + '405': + description: Method not allowed error + '406': + description: Not acceptable error + '409': + description: Conflict error. Returned when a data sync is already in progress and cannot be completed before the re-sync can be scheduled. + '415': + description: Unsupported media type error + /v1/connections/{connection_id}/schemas: + get: + tags: + - Connection Schema Management + summary: Retrieve a Connection Schema Config + description: | + + Returns the top-level schema configuration for an existing connection within your Fivetran account. The response includes global flags, every schema, each table, and only the columns that were explicitly overridden. + + Use this endpoint to read the current data-selection tree for a connection, to back up the schema before making edits, or to copy the configuration to another connection. + + > NOTE: To restore a backed-up schema or copy the configuration to another connection, use the [Update a Connection Schema Config](https://fivetran.com/docs/rest-api/api-reference/connection-schema/modify-connection-schema-config) endpoint. + + For more information, see the [Connection Schema config](https://fivetran.com/docs/rest-api/tutorials/connection-schema-configuration-use-cases) tutorial. + + > NOTE: Unedited columns (those following table defaults) are omitted from the response. For a read-only cataloging workflow, walk this response from schemas to tables, inspect each table's `supports_columns_config` field, and call the [Retrieve Source Table Columns Config](https://fivetran.com/docs/rest-api/api-reference/connection-schema/connection-column-config) endpoint only for tables where that field is `true`. + + For the NetSuite SuiteAnalytics, and Salesforce and Salesforce Sandbox connectors, the 'schemas' map field contains a single entry with the 'netsuite' or 'salesforce' key, respectively. For the 'schema.name_in_destination` name field, these connectors always return the destination schema name you set in the connection setup form. + + For more information on using this API endpoint with the the Oracle Fusion Cloud Applications connectors, see the [Schema information documentation](https://fivetran.com/docs/connectors/applications/oracle-fusion-cloud-applications#schemainformation). + + > IMPORTANT: This endpoint does not apply to [Magic Folder](https://fivetran.com/docs/connectors/files#magicfolder) connectors. + operationId: connection_schema_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Schema configuration retrieved successfully + data: + $ref: '#/components/schemas/StandardConfigResponse' + type: object + post: + tags: + - Connection Schema Management + summary: Set Up a New Connection Schema Config + description: | + Configures a Connection Schema for a new connection before the schema is captured from the source. + + > NOTE: The response returns the exact settings provided in the request. + + After the initial sync, when the connection captures the schema from the source, Fivetran attempts to apply the specified settings to the actual schema. + If certain tables or columns cannot be excluded, the settings for those entities are ignored. + operationId: pre_create_connection_schema_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandardConfigCreateRequest' + examples: + pre_create_schema_config_request: + value: + schemas: + schema_name: + enabled: true + tables: + table_name: + enabled: true + sync_mode: SOFT_DELETE + columns: + column_name: + enabled: true + hashed: false + schema_change_handling: ALLOW_COLUMNS + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Schema configuration pre-created successfully + data: + $ref: '#/components/schemas/StandardConfigResponse' + type: object + patch: + tags: + - Connection Schema Management + summary: Update a Connection Schema Config + description: | + Updates the schema config for an existing connection within your Fivetran account. + + > NOTE: For backward compatibility, the response may contain the 'enable_new_by_default' boolean field. It defines whether new schemas and tables discovered in the source are synced. The value is 'true' if you specify 'ALLOW_ALL' as a value of 'schema_change_handling'. In the future API versions, we may remove this field. + > + > The response contains all known schemas and tables. Also, it contains columns whose state has ever been set by the user. For more information, see also the [Connection Schema config](https://fivetran.com/docs/rest-api/tutorials/connection-schema-configuration-use-cases) tutorial. + operationId: modify_connection_schema_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandardConfigUpdateRequest' + examples: + modify_schema_config_request: + value: + schemas: + schema_name: + enabled: true + tables: + table_name: + enabled: true + sync_mode: SOFT_DELETE + columns: + column_name: + enabled: true + hashed: false + schema_change_handling: BLOCK_ALL + modify_schema_config_row_filter_request: + value: + schemas: + schema_name: + enabled: true + tables: + orders: + enabled: true + row_filter: + name: active_orders + description: Sync only active orders + column_clauses: + - column: status + column_type: STRING + operator: EQUALS + values: + - ACTIVE + customers: + enabled: true + row_filter: null + events: + enabled: true + modify_schema_config_row_filter_or_request: + value: + schemas: + schema_name: + enabled: true + tables: + orders: + enabled: true + row_filter: + name: high_value_or_us + description: Sync high-value orders or US orders + operator: OR + column_clauses: + - column: amount + column_type: LONG + operator: GREATER + values: + - '1000' + - column: country + column_type: STRING + operator: EQUALS + values: + - US + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Schema configuration has been modified + data: + $ref: '#/components/schemas/StandardConfigResponse' + type: object + /v1/connections/{connection_id}/schemas/drop-columns: + post: + tags: + - Connection Schema Management + summary: Drop Blocked Columns from the Destination. + description: Mark multiple blocked columns for deletion from your destination tables. The columns will be dropped during the next sync. + operationId: delete_multiple_columns_connection_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DropColumnsRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Column(s) successfully marked for deletion + type: object + '400': + description: Bad request + '404': + description: Not found error + '409': + description: Column not in blocked state error + /v1/connections/{connection_id}/schemas/reload: + post: + tags: + - Connection Schema Management + summary: Reload a Connection Schema Config + description: | + Reloads the connection schema config for an existing connection within your Fivetran account. + + > NOTE: This method reloads the full schema from the connection's data source. It may take a long time to complete the request. The method execution speed depends on the schema size and the number of databases, tables, and columns. + > + > The response contains all known schemas and tables. Also, it contains columns whose state has ever been set by the user. For more information, see also the [Connection Schema config](https://fivetran.com/docs/rest-api/tutorials/connection-schema-configuration-use-cases) tutorial. + operationId: reload_connection_schema_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReloadStandardConfigRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Schema configuration has been reloaded + data: + $ref: '#/components/schemas/StandardConfigResponse' + type: object + /v1/connections/{connection_id}/schemas/tables/resync: + post: + tags: + - Connection Schema Management + summary: Re-sync Connection Table Data + description: Triggers a historical sync of all data for multiple schema tables within a connection. This action does not override the standard sync frequency you defined in the Fivetran dashboard. + operationId: resync_tables + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + schema: + title: Schema name + uniqueItems: true + type: array + description: Schema name + example: + - table1 + - table2 + items: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Re-sync has been triggered successfully + type: object + /v1/connections/{connection_id}/schemas/{schema_name}: + patch: + tags: + - Connection Schema Management + summary: Update a Connection Database Schema Config + description: | + Updates the database schema config for an existing connection within your Fivetran account (for a single schema within a connection with multiple schemas). + + > NOTE: The response contains all known schemas and tables. Also, it contains columns whose state has ever been set by the user. For more information, see also the [Connection Schema config](https://fivetran.com/docs/rest-api/tutorials/connection-schema-configuration-use-cases) tutorial. + + In this API call, the NetSuite SuiteAnalytics, Salesforce and Salesforce Sandbox connectors always return the schema name as 'netsuite' and 'salesforce', respectively. + + For more information about this API call for the Oracle Fusion Cloud Applications connectors, see our [Schema information](https://fivetran.com/docs/connectors/applications/oracle-fusion-cloud-applications#schemainformation) documentation. + operationId: modify_connection_database_schema_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: schema_name + in: path + description: The schema name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SchemaUpdateRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Database schema configuration has been modified + data: + $ref: '#/components/schemas/StandardConfigResponse' + type: object + /v1/connections/{connection_id}/schemas/{schema_name}/tables/{table_name}: + patch: + tags: + - Connection Schema Management + summary: Update a Connection Table Config + description: | + Updates the table config within your database schema for an existing connection within your Fivetran account. + + For the NetSuite SuiteAnalytics and Salesforce and Salesforce Sandbox connectors, the 'schemas' map field will always have a single entry with the 'netsuite' or 'salesforce' key, respectively. + operationId: modify_connection_table_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: schema_name + in: path + description: The schema name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + - name: table_name + in: path + description: The table name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TableUpdateRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Table configuration has been modified + data: + $ref: '#/components/schemas/StandardConfigResponse' + type: object + /v1/connections/{connection_id}/schemas/{schema_name}/tables/{table_name}/columns/{column_name}: + delete: + tags: + - Connection Schema Management + summary: Drop a Blocked Column From the Destination + description: | + Marks a blocked column for deletion from your destination table. The column will be dropped during the next sync. + + For the NetSuite SuiteAnalytics and Salesforce and Salesforce Sandbox connectors, the 'schemas' map field will always have a single entry with the 'netsuite' or 'salesforce' key, respectively. + operationId: delete_column_connection_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: schema_name + in: path + description: The schema name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + - name: table_name + in: path + description: The table name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + - name: column_name + in: path + description: The column name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Column successfully marked for deletion + type: object + '400': + description: Bad request + '404': + description: Not found error + '409': + description: Column not in blocked state error + patch: + tags: + - Connection Schema Management + summary: Update a Connection Column Config + description: | + Updates the column config within your table for an existing connection within your Fivetran account. + + For the NetSuite SuiteAnalytics and Salesforce and Salesforce Sandbox connectors, the 'schemas' map field will always have a single entry with the 'netsuite' or 'salesforce' key, respectively. + > NOTE: The response contains all known schemas and tables. Also, it contains columns whose state has ever been set by the user. For more information, see also the [Connection Schema config](https://fivetran.com/docs/rest-api/tutorials/connection-schema-configuration-use-cases) tutorial. + operationId: modify_connection_column_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: schema_name + in: path + description: The schema name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + - name: table_name + in: path + description: The table name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + - name: column_name + in: path + description: The column name as stored in the connection schema config. This value is case-sensitive; an incorrect case results in an HTTP 404 error. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ColumnUpdateRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Column configuration has been modified + data: + $ref: '#/components/schemas/StandardConfigResponse' + type: object + /v1/connections/{connection_id}/schemas/{schema_name}/tables/{table_name}/columns: + get: + tags: + - Connection Schema Management + summary: Retrieve Source Table Columns Config + description: | + Returns the real-time column list for one source table by querying the source. The response includes the current enabled and hashed flags, and the patchable fields. + + To determine whether this endpoint is available for a table, first [retrieve the connection schema config](https://fivetran.com/docs/rest-api/api-reference/connection-schema/connection-schema-config) and check the table's public [`supports_columns_config` response field](https://fivetran.com/docs/rest-api/api-reference/connection-schema/connection-schema-config#supports_columns_config). Column-level schema metadata support is reported per table rather than as a static connector-wide list. If `supports_columns_config` is `false`, column metadata is not available for that table. + + > NOTE: This endpoint works only for an existing connection that is in a 'Connected' state. + + > NOTE: The connection schema config response includes every schema and table, but includes only columns that were explicitly overridden. Use this endpoint when you need the exhaustive real-time column list for a table that supports column-level configuration. + operationId: connection_column_config + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: schema_name + in: path + description: The database schema name within your destination + required: true + schema: + type: string + - name: table_name + in: path + description: The table name from the connection schema, using the original source system's naming conventions. This value is case-sensitive. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Column configuration retrieved successfully + data: + $ref: '#/components/schemas/TableColumnsConfigResponse' + type: object + /v1/connections/{connection_id}/state: + get: + tags: + - Connection Management + summary: Retrieve Connection State + description: | + This endpoint returns the connection state for [Function](https://fivetran.com/docs/connectors/functions) and [Connector SDK](https://fivetran.com/docs/connector-sdk) connections. Sending a request for any other connection type returns `400 Bad Request`. To update the connection state, use [Update Connection State](https://fivetran.com/docs/rest-api/api-reference/connections/modify-connection-state). + + To read the sync status for any connection type, use [Retrieve connection details](https://fivetran.com/docs/rest-api/api-reference/connections/connection-details) and inspect the `status` object in the response. + operationId: connection_state + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection state retrieved successfully + data: + $ref: '#/components/schemas/ConnectorStateResponse' + type: object + '400': + description: The specified connection does not support state management. Only Function and Connector SDK connectors support this operation. + '401': + description: Unauthorized error + '404': + description: Connection not found error. + '405': + description: Method not allowed error. + '406': + description: Not acceptable error + patch: + tags: + - Connection Management + summary: Update a Connection State + description: | + Updates the connection state. This endpoint is only supported for [Function](https://fivetran.com/docs/connectors/functions) and [Connection SDK](https://fivetran.com/docs/connectors/connector-sdk) connectors. To update the state, you should pause your connection first. + + To update the connection state, do the following: + + 1. Pause connection using [Update a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/modify-connection) endpoint (set 'paused' to 'true'). + 2. Update the state by using the [Update Connection State](https://fivetran.com/docs/rest-api/api-reference/connections/modify-connection-state) endpoint. + 3. Unpause the connection by setting the 'paused' parameter to 'false' in the [Update a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/modify-connection) endpoint request. + operationId: modify_connection_state + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionOrConnectorSdkState' + examples: + update_connection_state_request: + value: + state: + cursor: '2024-01-01T00:00:00Z' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection state has been updated + data: + $ref: '#/components/schemas/ConnectorStateResponse' + type: object + '400': + description: 'Invalid request. Possible causes: the request body is missing or malformed, the connection state does not exist, or the specified connection is not a Function or Connector SDK connector.' + '401': + description: Unauthorized error + '404': + description: Connection not found error. + '405': + description: Method not allowed error. + '406': + description: Not acceptable error + '409': + description: Connection cannot be updated because the sync is in progress. + '415': + description: Unsupported media type error + /v1/connections/{connection_id}/sync: + post: + tags: + - Connection Management + summary: Sync Connection Data + description: | + Triggers a data sync for an existing connection within your Fivetran account without waiting for the next scheduled sync. This action does not override the standard sync frequency you defined in the Fivetran dashboard. + + When `schedule_type` is set to `manual`, this endpoint is the only way syncs occur — including syncs in a `rescheduled` state. For a full walkthrough, see [Trigger Manual Syncs](https://fivetran.com/docs/rest-api/tutorials/trigger-syncs-manually). + operationId: sync_connection + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SyncConnectorRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Sync has been successfully triggered for connection with id 'string' + type: object + '401': + description: Unauthorized error + '404': + description: Not found error + '406': + description: Not acceptable error + '415': + description: Unsupported media type error + /v1/connections/{connection_id}/sync-history: + get: + tags: + - Connection Management + summary: Retrieve Connection Sync History + description: Returns a list of sync history records for the specified connection. The maximum time window is 7 days. + operationId: connection_sync_history + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: duration + in: query + description: Deprecated. Use `start_time` and `end_time` instead. + required: false + schema: + type: integer + format: int32 + - name: start_time + in: query + description: The start of the time range for which to retrieve sync history, in ISO 8601 format (for example, 2026-01-01T00:00:00Z). If omitted, defaults to one hour before `end_time`. The maximum allowed range between `start_time` and `end_time` is 7 days. + required: false + schema: + type: string + - name: end_time + in: query + description: The end of the time range for which to retrieve sync history, in ISO 8601 format (for example, 2026-01-01T01:00:00Z). If omitted, defaults to one hour after `start_time`. Must be after `start_time`. + required: false + schema: + type: string + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Operation performed successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/ConnectorSyncHistoryResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + '400': + description: Bad request error. Returned when the duration between `start_time` and `end_time` exceeds 7 days, `start_time` is after `end_time`, or `start_time` is more than 7 days in the past. + '401': + description: Unauthorized error + '404': + description: Not found error + '405': + description: Method not allowed error + '406': + description: Not acceptable error + /v1/connections/{connection_id}/test: + post: + tags: + - Connection Management + summary: Run Connection Setup Tests + description: Runs the setup tests for an existing connection within your Fivetran account. Use this parameter to test the connection without making any configuration changes. You can optionally include `trust_certificates` or `trust_fingerprints` parameters to automatically approve certificates or fingerprints during the test run. + operationId: run_setup_tests + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RunSetupTestsRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Setup tests have been completed + data: + $ref: '#/components/schemas/ConnectorResponseV1' + type: object + '400': + description: Bad request error. Returned when the request body is omitted entirely (as opposed to an empty object, which is accepted). + '401': + description: Unauthorized error + '404': + description: Not found error + '405': + description: Method not allowed error + '406': + description: Not acceptable error + '415': + description: Unsupported media type error + /v1/connections/{connection_id}/warnings: + get: + tags: + - Connection Management + summary: Retrieve Connection Warnings + description: Retrieve all active warnings for a connection, grouped by destination table. Each warning includes a code, message, error details, and creation timestamp. + operationId: connection_warnings + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection warnings retrieved successfully + data: + $ref: '#/components/schemas/ConnectionWarningsResponse' + type: object + '401': + description: Unauthorized error + '404': + description: Connection not found error + '405': + description: Method not allowed error + '406': + description: Not acceptable error + /v1/connections/{connection_id}/warnings/{warning_type}: + delete: + tags: + - Connection Management + summary: Dismiss Connection Warnings by Type + description: Dismiss all active warnings of a specific type for a connection. Requires the warning type to be registered in the warning type registry. + operationId: dismiss_connection_warning + parameters: + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true + schema: + type: string + - name: warning_type + in: path + description: The warning type to dismiss (e.g., 'resync_table_warning', 'type_coercion_to_null_warning') + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Warnings of type 'string' dismissed for connection 'string' + type: object + '401': + description: Unauthorized error + '404': + description: Connection not found or warning type not registered + '405': + description: Method not allowed error + '406': + description: Not acceptable error +components: + schemas: + ConnectorResponse: + required: + - connected_by + - created_at + - group_id + - id + - pause_after_trial + - paused + - schedule_type + - schema + - service + - status + - sync_frequency + type: object + properties: + id: + type: string + description: The unique identifier for the group within the Fivetran system. + example: connection_id + service: + type: string + description: The name for the connector type within the Fivetran system. + example: google_sheets + schema: + type: string + description: The name used both as the connection's name within the Fivetran system and as the source schema's name within your destination. + example: gsheets.table + paused: + type: boolean + description: Specifies whether the connection is paused. + example: false + status: + description: 'The current state of the connection. ' + required: + - is_historical_sync + - setup_state + - sync_state + - update_state + type: object + properties: + tasks: + type: array + description: The collection of tasks for the connection + items: + $ref: '#/components/schemas/ConnectionTask' + warnings: + type: array + description: The collection of warnings for the connection + items: + $ref: '#/components/schemas/ConnectionWarning' + setup_state: + type: string + description: 'The current setup state of the connection. The available values are:
- incomplete - the setup config is incomplete, the setup tests never succeeded
- connected - the connection is properly set up
- broken - the connection setup config is broken.' + example: connected + schema_status: + type: string + description: Schema status. Returned only for connectors that support [Universal Column Masking flow](https://fivetran.com/docs/rest-api/tutorials/schema-status). + example: ready + sync_state: + type: string + description: 'The current sync state of the connection. The available values are:
- scheduled - the sync is waiting to be run
- syncing - the sync is currently running
- paused - the sync is currently paused
- rescheduled - the sync is waiting until more API calls are available in the source service.' + example: scheduled + update_state: + type: string + description: 'The current data update state of the connection. The available values are:
- on_schedule - the sync is running smoothly, no delays
- delayed - the data is delayed for a longer time than expected for the update.' + example: delayed + is_historical_sync: + type: boolean + description: The boolean specifying whether the connection should be triggered to re-sync all historical data. If you set this parameter to TRUE, a [historical sync](https://fivetran.com/docs/getting-started/glossary#historicalsync) starts immediately. If a sync is currently running, it's canceled and restarted as a historical sync. All subsequent syncs after the historical sync completes will be incremental. If the value is FALSE or not specified, the connection doesn't re-sync historical data. This parameter is automatically reset to FALSE once the historical sync is completed. + example: false + rescheduled_for: + type: string + description: The UTC timestamp of the next scheduled sync attempt. Non-null only when `sync_state` is `"rescheduled"`. If `schedule_type` is `manual`, the connection expects the sync to be triggered at the designated time through the [Sync Connection Data](https://fivetran.com/docs/rest-api/api-reference/connections/sync-connection) endpoint. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + config: + type: object + additionalProperties: + type: string + description: (opaque JSON object) + description: The connection setup configuration. + schedule: + $ref: '#/components/schemas/ConnectorSchedule' + group_id: + type: string + description: The unique identifier for the group within the Fivetran system. + example: group_id + service_version: + type: integer + description: The connector type version within the Fivetran system. + format: int32 + example: 0 + connected_by: + type: string + description: The unique identifier of the user who has created the connection in your account. + example: user_id + created_at: + type: string + description: The timestamp of when the group was created in your account. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + succeeded_at: + type: string + description: The timestamp of the time the connection sync succeeded last time. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + failed_at: + type: string + description: The timestamp of the time the connection sync failed last time. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + pause_after_trial: + type: boolean + description: Specifies whether the connection should be paused after the free trial period has ended. + example: false + sync_frequency: + type: integer + description: The connection sync frequency in minutes. `null` when the connection's schedule has no single cadence to report, such as a custom cron or multiple-time-of-day schedule. + format: int32 + example: 360 + data_delay_threshold: + type: integer + format: int32 + data_delay_sensitivity: + type: string + enum: + - LOW + - NORMAL + - HIGH + - CUSTOM + - SYNC_FREQUENCY + daily_sync_time: + type: string + description: The optional parameter that defines the sync start time when the sync frequency is already set or being set by the current request to 1440. It can be specified in one hour increments starting from 00:00 to 23:00. If not specified, we will use the baseline sync start time. This parameter has no effect on the 0 to 60 minutes offset used to determine the actual sync start time. + example: '14:00' + schedule_type: + type: string + description: 'The connection schedule config type. Supported values: auto, manual. Lets you disable or enable an automatic data sync on a schedule.' + example: auto + setup_tests: + type: array + description: Setup tests results + items: + $ref: '#/components/schemas/SetupTestResultResponse' + private_link_id: + type: string + networking_method: + type: string + enum: + - Directly + - SshTunnel + - PrivateLink + - ProxyAgent + - UnmanagedProxyAgent + - Unknown + proxy_agent_id: + type: string + source_sync_details: + type: string + description: Read-only, connector-specific sync state. Depending on the connector type, this object may include source scope identifiers such as accounts, profiles, or projects; per-entity cursors or checkpoints; or last-synced timestamps. This field is optional, and its schema varies by connector type. To determine whether a connector exposes this information and inspect its returned fields, use [Retrieve Connection Details](https://fivetran.com/docs/rest-api/api-reference/connections/connection-details). (opaque JSON object) + hybrid_deployment_agent_id: + type: string + connect_card: + $ref: '#/components/schemas/ConnectCardResponse' + connect_card_config: + $ref: '#/components/schemas/ConnectCardConfig' + destination_configuration: + $ref: '#/components/schemas/DestinationConfiguration' + destination_schema_names: + type: string + enum: + - FIVETRAN_NAMING + - SOURCE_NAMING + external_secrets_manager_id: + type: string + external_secrets_keys_config: + type: object + additionalProperties: + type: string + NewConnectorRequestV1: + required: + - group_id + - service + type: object + properties: + group_id: + type: string + description: The unique identifier of the destination group to create the connection in. Retrieve group IDs from the [List All Groups](https://fivetran.com/docs/rest-api/api-reference/groups/list-all-groups) endpoint. + example: group_id + service: + type: string + description: The connector name within the Fivetran system + example: google_ads + trust_certificates: + type: boolean + description: Specifies whether we should trust the certificate automatically during setup tests. The default value is FALSE. This parameter only affects the behavior of setup tests and does not persist in the connection configuration. When using the PATCH endpoint to update a connection, this parameter must be combined with `run_setup_tests=true` and at least one persistent configuration parameter (e.g., `sync_frequency`, `paused`, `config`, `auth`). If you only want to run setup tests with automatic certificate trust, use the POST `/v1/connections/{connectionId}/test` endpoint instead. If a certificate is not trusted automatically during testing, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate). + example: true + trust_fingerprints: + type: boolean + description: Specifies whether we should trust the SSH fingerprint automatically during setup tests. The default value is FALSE. This parameter only affects the behavior of setup tests and does not persist in the connection configuration. When using the PATCH endpoint to update a connection, this parameter must be combined with `run_setup_tests=true` and at least one persistent configuration parameter (e.g., `sync_frequency`, `paused`, `config`, `auth`). If you only want to run setup tests with automatic fingerprint trust, use the POST `/v1/connections/{connectionId}/test` endpoint instead. If a fingerprint is not trusted automatically during testing, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint). + example: true + run_setup_tests: + type: boolean + description: Specifies whether the setup tests should be run automatically after updating the connection. The default value is TRUE. When using this parameter in a PATCH request, you must also include at least one persistent configuration parameter (e.g., `sync_frequency`, `paused`, `config`, `auth`). This parameter can be combined with `trust_certificates` or `trust_fingerprints` to automatically approve `certificates/fingerprints` during the test run. To run setup tests without making configuration changes, use the POST `/v1/connections/{connectionId}/test` endpoint instead. + example: true + paused: + type: boolean + description: Specifies whether the connection is paused + example: false + pause_after_trial: + type: boolean + description: Specifies whether the connection should be paused after the free trial period has ended + example: false + sync_frequency: + type: integer + description: The connection sync frequency in minutes. `null` when the connection's schedule has no single cadence to report, such as a custom cron or multiple-time-of-day schedule. + format: int32 + example: 1440 + enum: + - '1' + - '5' + - '15' + - '30' + - '60' + - '120' + - '180' + - '360' + - '480' + - '720' + - '1440' + data_delay_sensitivity: + type: string + description: 'The level of data delay notification threshold. Possible values: LOW, NORMAL, HIGH, CUSTOM, SYNC_FREQUENCY. The default value is LOW. CUSTOM is only available for customers using the [Enterprise plan](https://fivetran.com/docs/getting-started/pricing#fivetranplans) or above.' + example: LOW + enum: + - LOW + - NORMAL + - HIGH + - CUSTOM + - SYNC_FREQUENCY + data_delay_threshold: + type: integer + description: Custom sync delay notification threshold in minutes. The default value is 0. This parameter is only used when data_delay_sensitivity set to CUSTOM. + format: int32 + example: 0 + daily_sync_time: + type: string + description: The optional parameter that defines the sync start time when the sync frequency is already set or being set by the current request to 1440. It can be specified in one hour increments starting from 00:00 to 23:00. If not specified, we will use [the baseline sync start time](https://fivetran.com/docs/getting-started/syncoverview#syncfrequencyandscheduling). This parameter has no effect on the [0 to 60 minutes offset](https://fivetran.com/docs/getting-started/syncoverview#syncstarttimesandoffsets) used to determine the actual sync start time + example: '14:00' + schedule_type: + type: string + description: 'The connection schedule configuration type. Supported values: auto, manual' + example: auto + enum: + - auto + - manual + connect_card_config: + $ref: '#/components/schemas/ConnectCardConfig' + proxy_agent_id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system + example: proxy_agent_id + private_link_id: + type: string + description: The unique identifier for the self-served private link that is used by the connection + example: private_link_id + networking_method: + type: string + enum: + - Directly + - PrivateLink + - SshTunnel + - ProxyAgent + hybrid_deployment_agent_id: + type: string + description: The unique identifier for the hybrid deployment agent within the Fivetran system. If not specified, the agent ID from the destination will be used + example: hybrid_deployment_agent_id + destination_configuration: + $ref: '#/components/schemas/DestinationConfiguration' + destination_schema_names: + type: string + description: |- + Defines how you want the schema names to appear in your destination.
The available values are:
- FIVETRAN_NAMING - Use Fivetran naming conventions to simplify and standardize the schema, table and column names in the destination.
- SOURCE_NAMING - Preserve source schema table and column names in the destination.
You can modify your selection only before the initial sync. Learn more in [our documentation](https://fivetran.com/docs/core-concepts#namingconventions)
+ > IMPORTANT: This field will soon become a required field. Make sure to include it in your API requests when creating new connections to prevent future disruptions. + example: FIVETRAN_NAMING + enum: + - FIVETRAN_NAMING + - SOURCE_NAMING + external_secrets_manager_id: + type: string + description: The unique identifier of the [External Secrets Manager](https://fivetran.com/docs/rest-api/api-reference/external-secrets-managers) instance. Connector service must [support](https://fivetran.com/docs/core-concepts/features/external-secret-managers#connectors) External Secrets Manager feature to use this field. + example: esm_id + auth: + type: object + additionalProperties: true + description: The `auth` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + external_secrets_keys_config: + type: object + additionalProperties: true + description: The `external_secrets_keys_config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + ConnectorResponseV1: + required: + - created_at + - data_delay_sensitivity + - group_id + - id + - pause_after_trial + - paused + - schedule_type + - schema + - service + - service_version + - status + - sync_frequency + type: object + properties: + id: + type: string + description: The unique identifier of this connection. Use this value as the `connectionId` path parameter when calling other Connections API endpoints, such as [Retrieve Connection Details](https://fivetran.com/docs/rest-api/api-reference/connections/connection-details) or [Sync Connection Data](https://fivetran.com/docs/rest-api/api-reference/connections/sync-connection). + example: connection_id + service: + type: string + description: The connector name within the Fivetran system + example: google_ads + schema: + type: string + description: The name used both as the connection's name within the Fivetran system and as the source schema's name within your destination + example: schema.table + paused: + type: boolean + description: Specifies whether the connection is paused + example: false + status: + description: The current operational state of the connection, including setup state, sync state, update state, and any active tasks or warnings. + required: + - is_historical_sync + - setup_state + - sync_state + - update_state + type: object + properties: + tasks: + type: array + description: The collection of tasks for the connection + items: + $ref: '#/components/schemas/ConnectionTask' + warnings: + type: array + description: The collection of warnings for the connection + items: + $ref: '#/components/schemas/ConnectionWarning' + setup_state: + type: string + description: 'The current setup state of the connection. The available values are:
- incomplete - the setup config is incomplete, the setup tests never succeeded
- connected - the connection is properly set up
- broken - the connection setup config is broken.' + example: connected + schema_status: + type: string + description: Schema status. Returned only for connectors that support [Universal Column Masking flow](https://fivetran.com/docs/rest-api/tutorials/schema-status). + example: ready + sync_state: + type: string + description: 'The current sync state of the connection. The available values are:
- scheduled - the sync is waiting to be run
- syncing - the sync is currently running
- paused - the sync is currently paused
- rescheduled - the sync is waiting until more API calls are available in the source service.' + example: scheduled + update_state: + type: string + description: 'The current data update state of the connection. The available values are:
- on_schedule - the sync is running smoothly, no delays
- delayed - the data is delayed for a longer time than expected for the update.' + example: delayed + is_historical_sync: + type: boolean + description: The boolean specifying whether the connection should be triggered to re-sync all historical data. If you set this parameter to TRUE, a [historical sync](https://fivetran.com/docs/getting-started/glossary#historicalsync) starts immediately. If a sync is currently running, it's canceled and restarted as a historical sync. All subsequent syncs after the historical sync completes will be incremental. If the value is FALSE or not specified, the connection doesn't re-sync historical data. This parameter is automatically reset to FALSE once the historical sync is completed. + example: false + rescheduled_for: + type: string + description: The UTC timestamp of the next scheduled sync attempt. Non-null only when `sync_state` is `"rescheduled"`. If `schedule_type` is `manual`, the connection expects the sync to be triggered at the designated time through the [Sync Connection Data](https://fivetran.com/docs/rest-api/api-reference/connections/sync-connection) endpoint. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + schedule: + description: The connection's sync schedule configuration + type: object + properties: + cron: + type: string + interval: + type: integer + description: The sync interval in minutes + format: int32 + example: 360 + schedule_type: + type: string + description: 'The schedule type. Possible values: INTERVAL, TIME_OF_DAY' + example: INTERVAL + enum: + - TIME_OF_DAY + - INTERVAL + - CRON + - MANUAL + days_of_week: + uniqueItems: true + type: array + description: The days of the week on which the connection syncs + example: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + items: + type: string + enum: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + time_of_day: + type: string + group_id: + type: string + description: The unique identifier of the destination group this connection belongs to. Use this value with the [List All Groups](https://fivetran.com/docs/rest-api/api-reference/groups/list-all-groups) or [Retrieve Group Details](https://fivetran.com/docs/rest-api/api-reference/groups/group-details) endpoints. + example: group_id + service_version: + type: integer + description: The connector version within the Fivetran system + format: int32 + example: 0 + connected_by: + type: string + description: The unique identifier of the user who created this connection. `null` if the connection was created programmatically without a user context. Use this value with the [Retrieve User Details](https://fivetran.com/docs/rest-api/api-reference/users/user-details) endpoint. + example: priceless_odour + created_at: + type: string + description: The timestamp of the time the connection was created in your account + format: date-time + example: '2023-12-01T15:43:29.013729Z' + succeeded_at: + type: string + description: The UTC timestamp of the most recent successful sync. `null` if the connection has never completed a successful sync. + format: date-time + example: '2024-03-17T12:31:40.870504Z' + failed_at: + type: string + description: The UTC timestamp of the most recent failed sync. `null` if the connection has never experienced a sync failure. + format: date-time + example: '2024-04-01T18:13:25.043659Z' + pause_after_trial: + type: boolean + description: Specifies whether the connection should be paused after the free trial period has ended + example: false + sync_frequency: + type: integer + description: The connection sync frequency in minutes. `null` when the connection's schedule has no single cadence to report, such as a custom cron or multiple-time-of-day schedule. + format: int32 + example: 1440 + enum: + - '1' + - '5' + - '15' + - '30' + - '60' + - '120' + - '180' + - '360' + - '480' + - '720' + - '1440' + data_delay_threshold: + type: integer + description: Custom sync delay notification threshold in minutes. The default value is 0. This parameter is only used when data_delay_sensitivity set to CUSTOM. + format: int32 + example: 0 + data_delay_sensitivity: + type: string + description: 'The level of data delay notification threshold. Possible values: LOW, NORMAL, HIGH, CUSTOM, SYNC_FREQUENCY. The default value is LOW. CUSTOM is only available for customers using the [Enterprise plan](https://fivetran.com/docs/getting-started/pricing#fivetranplans) or above.' + example: LOW + enum: + - LOW + - NORMAL + - HIGH + - CUSTOM + - SYNC_FREQUENCY + private_link_id: + type: string + description: The unique identifier for the self-served private link that is used by the connection + example: link_id + networking_method: + type: string + enum: + - Directly + - SshTunnel + - PrivateLink + - ProxyAgent + - UnmanagedProxyAgent + - Unknown + proxy_agent_id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system + example: agent_id + daily_sync_time: + type: string + description: The daily sync start time, in `HH:MM` format (UTC), at which the connection syncs. Returned only when `sync_frequency` is `1440` and `daily_sync_time` was explicitly set. `null` otherwise. + example: '14:00' + schedule_type: + type: string + description: 'The connection schedule configuration type. Supported values: auto, manual' + example: auto + setup_tests: + type: array + description: Setup tests results for this connection + items: + $ref: '#/components/schemas/SetupTestResultResponse' + source_sync_details: + type: string + description: Read-only, connector-specific sync state. Depending on the connector type, this object may include source scope identifiers such as accounts, profiles, or projects; per-entity cursors or checkpoints; or last-synced timestamps. This field is optional, and its schema varies by connector type. To determine whether a connector exposes this information and inspect its returned fields, use [Retrieve Connection Details](https://fivetran.com/docs/rest-api/api-reference/connections/connection-details). (opaque JSON object) + connect_card: + $ref: '#/components/schemas/ConnectCardResponse' + connect_card_config: + $ref: '#/components/schemas/ConnectCardConfig' + hybrid_deployment_agent_id: + type: string + description: The unique identifier for the hybrid deployment agent within the Fivetran system. If not specified, the agent ID from the destination will be used + example: agent_id + destination_configuration: + $ref: '#/components/schemas/DestinationConfiguration' + destination_schema_names: + type: string + description: 'Defines how schema names appear in your destination.
The possible values are:
- FIVETRAN_NAMING - Uses Fivetran naming conventions to simplify and standardize the schema, table and column names in the destination.
- SOURCE_NAMING - Preserves source schema table and column names in the destination.
' + example: FIVETRAN_NAMING + enum: + - FIVETRAN_NAMING + - SOURCE_NAMING + external_secrets_manager_id: + type: string + description: The unique identifier of the [External Secrets Manager](https://fivetran.com/docs/rest-api/api-reference/external-secrets-managers) instance. Connector service must [support](https://fivetran.com/docs/core-concepts/features/external-secret-managers#connectors) External Secrets Manager feature to use this field. + example: esm_id + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + external_secrets_keys_config: + type: object + additionalProperties: true + description: The `external_secrets_keys_config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + UpdateConnectorRequest: + type: object + properties: + config: + description: The setup configuration. Check possible config formats in [create method](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection/) + type: string + auth: + description: The connector authorization settings. Check possible config formats in [create method](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection/) + paused: + type: boolean + description: Specifies whether the connection is paused + example: false + trust_certificates: + type: boolean + description: Specifies whether we should trust the certificate automatically during setup tests. The default value is FALSE. This parameter only affects the behavior of setup tests and does not persist in the connection configuration. When using the PATCH endpoint to update a connection, this parameter must be combined with `run_setup_tests=true` and at least one persistent configuration parameter (e.g., `sync_frequency`, `paused`, `config`, `auth`). If you only want to run setup tests with automatic certificate trust, use the POST `/v1/connections/{connectionId}/test` endpoint instead. If a certificate is not trusted automatically during testing, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate). + example: true + trust_fingerprints: + type: boolean + description: Specifies whether we should trust the SSH fingerprint automatically during setup tests. The default value is FALSE. This parameter only affects the behavior of setup tests and does not persist in the connection configuration. When using the PATCH endpoint to update a connection, this parameter must be combined with `run_setup_tests=true` and at least one persistent configuration parameter (e.g., `sync_frequency`, `paused`, `config`, `auth`). If you only want to run setup tests with automatic fingerprint trust, use the POST `/v1/connections/{connectionId}/test` endpoint instead. If a fingerprint is not trusted automatically during testing, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint). + example: true + sync_frequency: + type: integer + description: The connection sync frequency in minutes. `null` when the connection's schedule has no single cadence to report, such as a custom cron or multiple-time-of-day schedule. + format: int32 + example: 1440 + enum: + - '1' + - '5' + - '15' + - '30' + - '60' + - '120' + - '180' + - '360' + - '480' + - '720' + - '1440' + data_delay_threshold: + type: integer + format: int32 + data_delay_sensitivity: + type: string + enum: + - LOW + - NORMAL + - HIGH + - CUSTOM + - SYNC_FREQUENCY + daily_sync_time: + type: string + description: The daily sync start time, in `HH:MM` format (UTC), at which the connection syncs. Returned only when `sync_frequency` is `1440` and `daily_sync_time` was explicitly set. `null` otherwise. + example: '14:00' + pause_after_trial: + type: boolean + description: Specifies whether the connection should be paused after the free trial period has ended + example: false + schema_status: + type: string + description: Schema status. + example: BLOCKED_ON_CAPTURE + enum: + - blocked_on_capture + - ready + is_historical_sync: + type: boolean + description: The boolean specifying whether the connection should be triggered to re-sync all historical data. If you set this parameter to TRUE, a [historical sync](https://fivetran.com/docs/getting-started/glossary#historicalsync) starts immediately. If a sync is currently running, it's canceled and restarted as a historical sync. All subsequent syncs after the historical sync completes will be incremental. If the value is FALSE or not specified, the connection doesn't re-sync historical data. This parameter is automatically reset to FALSE once the historical sync is completed. + example: true + schedule_type: + type: string + description: 'The connection schedule configuration type. Supported values: auto, manual' + example: auto + enum: + - auto + - manual + run_setup_tests: + type: boolean + description: Specifies whether the setup tests should be run automatically after updating the connection. The default value is TRUE. When using this parameter in a PATCH request, you must also include at least one persistent configuration parameter (e.g., `sync_frequency`, `paused`, `config`, `auth`). This parameter can be combined with `trust_certificates` or `trust_fingerprints` to automatically approve `certificates/fingerprints` during the test run. To run setup tests without making configuration changes, use the POST `/v1/connections/{connectionId}/test` endpoint instead. + example: true + networking_method: + type: string + enum: + - Directly + - PrivateLink + - SshTunnel + - ProxyAgent + hybrid_deployment_agent_id: + type: string + description: The unique identifier for the hybrid deployment agent within the Fivetran system. If not specified, the agent ID from the destination will be used + example: hybrid_deployment_agent_id + proxy_agent_id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system + example: proxy_agent_id + private_link_id: + type: string + description: The unique identifier for the self-served private link that is used by the connection + example: private_link_id + destination_configuration: + $ref: '#/components/schemas/DestinationConfiguration' + external_secrets_manager_id: + type: string + description: The unique identifier of the [External Secrets Manager](https://fivetran.com/docs/rest-api/api-reference/external-secrets-managers) instance. Connector service must [support](https://fivetran.com/docs/core-concepts/features/external-secret-managers#connectors) External Secrets Manager feature to use this field. + external_secrets_keys_config: + description: The setup configuration keys to be stored in external secrets manager. Check possible config formats in [create method](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection/) + ConnectCardConfigRequest: + required: + - connect_card_config + type: object + properties: + connect_card_config: + description: Configuration for the Connect Card flow. Connect Card is a Fivetran-hosted UI that allows your end users to authorize a connection without accessing the Fivetran dashboard. Use `redirect_uri` to control where users land after completing setup. + required: + - redirect_uri + type: object + properties: + redirect_uri: + type: string + description: The URI on your site we redirect the end user to after successful setup. The URI must start with the `https` or `http` prefix. + example: https://your.site/path + hide_setup_guide: + type: boolean + description: An optional parameter that lets you hide the embedded setup guide in the Connect Card. + example: true + all_fields: + type: boolean + description: An optional parameter that lets you show all fields on Connect Card including those that are hidden by default for certain connectors. + example: true + ConnectorConnectCardResponse: + required: + - connector_id + type: object + properties: + connector_id: + type: string + description: The unique identifier of the connection for which this Connect Card token was issued. This is the same value as the `connectionId` path parameter. + example: connection_id + connect_card: + $ref: '#/components/schemas/ConnectCardResponse' + connect_card_config: + $ref: '#/components/schemas/ConnectCardConfig' + MoveConnectionsRequest: + required: + - destination_group_id + type: object + properties: + destination_group_id: + type: string + description: The unique identifier of the destination group to move the connection to. Retrieve group IDs from the [List All Groups](https://fivetran.com/docs/rest-api/api-reference/groups/list-all-groups) endpoint. + example: destination_group_id + sync_behavior: + type: string + description: Controls how data syncs after the move. Use `CONTINUE` to preserve the existing sync cursor so the connection resumes incremental sync from where it left off. Use `BACKFILL` to reset the cursor and trigger a historical sync. Use `CONTINUE_WITH_DATA` to preserve the cursor and additionally migrate existing data to the new destination by starting an asynchronous job—use the `job_id` returned in the response to monitor progress. `CONTINUE_WITH_DATA` is supported only when moving a connection from Snowflake Native tables to a MDLS-linked Snowflake Lakehouse destination. + example: CONTINUE + enum: + - CONTINUE + - BACKFILL + - CONTINUE_WITH_DATA + force_move: + type: boolean + description: Set to `true` to confirm that you have completed all prerequisite steps for moving connectors with credential dependencies. Required when moving connectors whose credentials reference the source group—for example, connectors with AWS IAM external IDs or GCP service account credentials. The error response for affected connectors describes the required steps. + example: true + MoveConnectionsResponse: + required: + - connection_id + - destination_group_id + - source_group_id + - sync_behavior + type: object + properties: + connection_id: + type: string + description: The unique identifier of the connection that was moved. + example: connection_id + source_group_id: + type: string + description: The unique identifier of the destination group the connection was moved from. + example: source_group_id + destination_group_id: + type: string + description: The unique identifier of the destination group to move the connection to. Retrieve group IDs from the [List All Groups](https://fivetran.com/docs/rest-api/api-reference/groups/list-all-groups) endpoint. + example: destination_group_id + sync_behavior: + type: string + description: Controls how data syncs after the move. Use `CONTINUE` to preserve the existing sync cursor so the connection resumes incremental sync from where it left off. Use `BACKFILL` to reset the cursor and trigger a historical sync. Use `CONTINUE_WITH_DATA` to preserve the cursor and additionally migrate existing data to the new destination by starting an asynchronous job—use the `job_id` returned in the response to monitor progress. `CONTINUE_WITH_DATA` is supported only when moving a connection from Snowflake Native tables to a MDLS-linked Snowflake Lakehouse destination. + example: CONTINUE + enum: + - CONTINUE + - BACKFILL + - CONTINUE_WITH_DATA + moved_at: + type: string + description: The timestamp of when the connection was moved. Null when `sync_behavior` is `CONTINUE_WITH_DATA` (since the move runs asynchronously). + format: date-time + example: '2024-01-01T00:00:00Z' + job_id: + type: string + description: The unique identifier of the move job. Use this value to check the status of the move operation. + example: 01234567-89ab-cdef-0123-456789abcdef + MoveConnectionJobResponse: + required: + - connection_id + - created_at + - destination_group_id + - id + - source_group_id + - status + type: object + properties: + id: + type: string + description: The unique identifier of the move job. Use this value to check the status of the move operation. + example: 01234567-89ab-cdef-0123-456789abcdef + status: + type: string + description: 'The current status of the move job. Possible values: PENDING, IN_PROGRESS, SUCCESS, FAILED.' + example: IN_PROGRESS + enum: + - PENDING + - IN_PROGRESS + - SUCCESS + - FAILED + connection_id: + type: string + description: The unique identifier of the connection that was moved. + example: connection_id + source_group_id: + type: string + description: The unique identifier of the destination group the connection was moved from. + example: source_group_id + destination_group_id: + type: string + description: The unique identifier of the destination group to move the connection to. Retrieve group IDs from the [List All Groups](https://fivetran.com/docs/rest-api/api-reference/groups/list-all-groups) endpoint. + example: destination_group_id + created_at: + type: string + description: The timestamp of when the move job was created. + format: date-time + example: '2024-01-01T00:00:00Z' + started_at: + type: string + description: The timestamp of when the move job started processing. Null if the job has not started yet. + format: date-time + example: '2024-01-01T00:00:30Z' + completed_at: + type: string + description: The timestamp of when the move job completed (successfully or with failure). Null if the job has not completed yet. + format: date-time + example: '2024-01-01T00:05:00Z' + error_message: + type: string + description: The error message if the move job failed. Null if the job has not failed. + example: Error details if the job failed + ResyncConnectorRequest: + type: object + properties: + scope: + type: object + properties: + schema: + title: Schema name + uniqueItems: true + type: array + description: Schema name + example: + - table1 + - table2 + items: + type: string + description: | + A map where each key is a schema name and each value is a non-empty array of table names to re-sync within that schema. + Both the scope object and each schema's table array must be non-empty — an empty scope object or an empty table array returns 400. + If omitted or set to null, all schemas and tables of the connection are re-synced. + This parameter is only supported for connectors that support table-level re-sync (typically database connectors such as PostgreSQL, MySQL, and Oracle). Sending scope to an unsupported connector type (for example, Google Sheets) returns 400. + Retrieve valid schema and table names from GET /v1/connections/{connectionId}/schemas. + StandardConfigResponse: + required: + - schema_change_handling + - schemas + type: object + properties: + enable_new_by_default: + type: boolean + description: The boolean value specifying whether to enable new schemas, tables, and columns by default + example: true + schemas: + title: Schemas + type: object + properties: + schema: + $ref: '#/components/schemas/SchemaConfigResponse' + description: The set of schemas within your connection schema config. Each key is the schema name as stored in the connection schema config. Schema names are case-sensitive; an incorrect case results in an HTTP 404 error. + row_filtering_supported: + type: boolean + description: A boolean value that specifies whether row filtering is available for the tables in this connection. It is `true` only when the row filtering feature is enabled for the connection, the connector type supports row filtering. It is `false` when the connector type does not support row filtering. This field is omitted from the response when the row filtering feature is not enabled for the connection. + example: true + schema_change_handling: + type: string + description: 'The possible values for the schema_change_handling parameter are as follows:
- `ALLOW_ALL` - all new schemas, tables, and columns which appear in the source after the initial setup are included in syncs
- `ALLOW_COLUMNS` - all new schemas and tables which appear in the source after the initial setup are excluded from syncs, but new columns are included
- `BLOCK_ALL` - all new schemas, tables, and columns which appear in the source after the initial setup are excluded from syncs' + example: ALLOW_ALL + enum: + - ALLOW_ALL + - ALLOW_COLUMNS + - BLOCK_ALL + StandardConfigCreateRequest: + required: + - schemas + type: object + properties: + schemas: + type: object + additionalProperties: + $ref: '#/components/schemas/SchemaUpdateRequest' + description: The set of schemas within your connection schema config. Each key is the schema name as stored in the connection schema config. Schema names are case-sensitive; an incorrect case results in an HTTP 404 error. + example: + schema_name: + enabled: true + tables: + table_name: + enabled: true + columns: + column_name: + enabled: true + schema_change_handling: + type: string + description: 'The possible values for the schema_change_handling parameter are as follows:
- `ALLOW_ALL` - all new schemas, tables, and columns which appear in the source after the initial setup are included in syncs
- `ALLOW_COLUMNS` - all new schemas and tables which appear in the source after the initial setup are excluded from syncs, but new columns are included
- `BLOCK_ALL` - all new schemas, tables, and columns which appear in the source after the initial setup are excluded from syncs' + example: ALLOW_COLUMNS + enum: + - ALLOW_ALL + - ALLOW_COLUMNS + - BLOCK_ALL + StandardConfigUpdateRequest: + type: object + properties: + schemas: + type: object + additionalProperties: + $ref: '#/components/schemas/SchemaUpdateRequest' + description: The set of schemas within your connection schema config. Each key is the schema name as stored in the connection schema config. Schema names are case-sensitive; an incorrect case results in an HTTP 404 error. + example: + schema_name: + enabled: true + tables: + table_name: + enabled: true + columns: + column_name: + enabled: true + schema_change_handling: + type: string + description: 'The possible values for the schema_change_handling parameter are as follows:
- `ALLOW_ALL` - all new schemas, tables, and columns which appear in the source after the initial setup are included in syncs
- `ALLOW_COLUMNS` - all new schemas and tables which appear in the source after the initial setup are excluded from syncs, but new columns are included
- `BLOCK_ALL` - all new schemas, tables, and columns which appear in the source after the initial setup are excluded from syncs' + example: BLOCK_ALL + enum: + - ALLOW_ALL + - ALLOW_COLUMNS + - BLOCK_ALL + is_type_locked: + type: boolean + description: The boolean value specifying whether the connection's destination data types are locked to the types determined from the source. If enabled before or immediately after the initial sync, the [type lock](https://fivetran.com/docs/using-fivetran/features/type-locking) captures the types determined at the initial sync; if enabled later, it captures the types determined on the first sync after enabling. Re-enabling an already-enabled lock does not change previously locked types. + example: false + DropColumnsRequest: + required: + - schemas + type: object + properties: + schemas: + title: Schemas + type: object + properties: + schema: + $ref: '#/components/schemas/DropColumnSchemaRequest' + description: The set of schemas within your connection schema config. Each key is the schema name as stored in the connection schema config. Schema names are case-sensitive; an incorrect case results in an HTTP 404 error. + ReloadStandardConfigRequest: + type: object + properties: + exclude_mode: + type: string + description: | + Specifies whether all schemas and tables will be enabled or disabled in the standard config. By specifying the `exclude_mode` parameter value, you can enable or disable syncing for all schemas and tables when reloading the connection schema config. + + When the default `PRESERVE` value is set, all selected schemas and tables in the standard config preserve their state. + + When the `EXCLUDE` value is set, the columns that haven't been updated by user yet are not excluded from the sync. Such columns may be present in the source and not displayed in the response, but they are considered to be included in the sync by default. If you enable syncing of their table, then all of these columns from the source will be synced in the next sync cycle. See also [Troubleshooting: How to enable syncs only for the columns you need](https://fivetran.com/docs/rest-api/tutorials/enable-sync-for-columns-you-need). + example: PRESERVE + SchemaUpdateRequest: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: The boolean value specifying whether the sync for the table into the destination is enabled. + example: true + tables: + type: object + additionalProperties: + $ref: '#/components/schemas/TableUpdateRequest' + description: The set of tables within your database schema config. Each key is the table name as stored in the connection schema config. Table names are case-sensitive; an incorrect case results in an HTTP 404 error. + TableUpdateRequest: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: The boolean value specifying whether the sync for the table into the destination is enabled. + example: true + columns: + type: object + additionalProperties: + $ref: '#/components/schemas/ColumnUpdateRequest' + description: The set of columns within your table schema config. Each key is the column name as stored in the connection schema config. Column names are case-sensitive; an incorrect case results in an HTTP 404 error. The `columns` object in the response contains the columns whose `enabled` value has been set by the user after the initial sync. + sync_mode: + type: string + description: This field appears in the response if the connection supports switching sync modes for tables + example: SOFT_DELETE + enum: + - SOFT_DELETE + - HISTORY + - LIVE + row_filter: + description: 'The [row filter](https://fivetran.com/docs/core-concepts/features/row-filter) for the table. A row filter restricts the rows synced to your destination to those that satisfy its clauses. This field uses three-state semantics:
- `Absent` (the `row_filter` key is omitted from the request): The table''s existing row filter is left unchanged.
- `null` (the `row_filter` key is present with a JSON null value): The table''s existing row filter, if any, is deleted.
- `Object`: The provided object creates or replaces (upserts) the table''s existing row filter.
Row filtering must be available for the connection; see the `row_filtering_supported` response field.' + example: + name: active_us_orders + description: Sync only active orders created on or after 2024 for US and Canadian customers + column_clauses: + - column: status + column_type: STRING + operator: EQUALS + values: + - ACTIVE + - column: country + column_type: STRING + operator: IN + values: + - US + - CA + - column: created_at + column_type: DATETIME + operator: GREATER_OR_EQUALS + values: + - '2024-01-01T00:00:00Z' + type: object + properties: + name: + type: string + description: A human-readable name for the row filter. Required when a row filter object is provided (upsert). + example: active_orders + description: + type: string + description: A human-readable description for the row filter. Required when a row filter object is provided (upsert). + example: Sync only active orders + operator: + type: string + description: The logical operator applied to the column clauses. `AND` means a row is synced only when it satisfies every clause; `OR` means a row is synced when it satisfies at least one clause. If omitted, defaults to `AND`. Only valid when `column_clauses` contains 2 or more clauses; setting it explicitly on a single-clause filter returns an error. For a single-clause filter, omit this field. + example: AND + enum: + - AND + - OR + column_clauses: + maxItems: 10 + minItems: 0 + type: array + description: The list of column clauses that make up the row filter. Clauses are combined according to the `operator` field (defaults to AND when omitted). The list must contain 1 to 10 clauses. If `operator` is explicitly set to `AND` or `OR`, the list must contain at least 2 clauses; for a single-clause filter, omit `operator` rather than setting it explicitly. + items: + $ref: '#/components/schemas/RowFilterClauseDto' + nullable: true + ColumnUpdateRequest: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: The boolean value specifying whether the sync for the table into the destination is enabled. + example: true + hashed: + type: boolean + description: The boolean value specifying whether a column should be hashed + example: false + is_primary_key: + type: boolean + target_data_type: + type: string + description: The target data type for this column in the destination. Overrides Fivetran's default type mapping. Available target types depend on the column's source data type and destination. Set to null to remove an existing mapping and revert to the default. + example: String + enum: + - Unknown + - Boolean + - String + - Short + - Int + - Long + - Float + - Double + - BigDecimal + - Instant + - LocalDateTime + - LocalDate + - LocalTime + - Json + - Binary + - Xml + TableColumnsConfigResponse: + required: + - columns + type: object + properties: + columns: + title: Columns + type: object + properties: + column: + $ref: '#/components/schemas/ColumnConfigResponse' + description: The set of columns within your table schema config. Each key is the column name as stored in the connection schema config. Column names are case-sensitive; an incorrect case results in an HTTP 404 error. The `columns` object in the response contains the columns whose `enabled` value has been set by the user after the initial sync. + ConnectorStateResponse: + required: + - state + type: object + properties: + state: + type: string + description: A freeform JSON object representing the connector's cursor or internal state. The structure is defined by the connector implementation and varies by connector type. Returns 400 if no state has been written yet. (opaque JSON object) + example: + cursor: '2024-01-01T00:00:00Z' + UpdateFunctionOrConnectorSdkState: + type: object + properties: + state: + description: A freeform JSON object representing the connector's cursor or internal state to write. The structure is defined by the connector implementation and varies by connector type. If omitted or set to null, the existing state is preserved and the response returns 200 without modification. + example: + cursor: '2024-01-01T00:00:00Z' + type: string + SyncConnectorRequest: + type: object + properties: + force: + type: boolean + description: If force is true and the connection is currently syncing, it will stop the sync and re-run it. If force is false, the connection will sync only if it isn't currently syncing. The default value is false + example: true + ConnectorSyncHistoryResponse: + required: + - stages + - status + - sync_id + type: object + properties: + start: + type: string + description: The UTC timestamp of when the sync started, in ISO 8601 format. Null if the sync has not started yet. + end: + type: string + description: The UTC timestamp of when the sync finished, in ISO 8601 format. Null if the sync is still in progress. + status: + type: string + description: 'The outcome of the sync. Possible values: `COMPLETED`, `FAILURE`, `CANCELED`, `INCOMPLETE`, `RESCHEDULED`, `PAUSED`.' + reason: + type: string + description: The failure reason if the sync did not complete successfully. Omitted if the sync completed without errors. + stages: + description: The data volume processed in each stage of the sync pipeline. + type: object + properties: + extract: + description: Data volume metrics for the extract stage, in which data is read from the source system. + type: object + properties: + volume: + type: number + description: The volume of data processed in this stage, in megabytes. Null if volume data is not available for this stage. + format: double + process: + description: Data volume metrics for the process stage, in which data is transformed and prepared for loading. + type: object + properties: + volume: + type: number + description: The volume of data processed in this stage, in megabytes. Null if volume data is not available for this stage. + format: double + load: + description: Data volume metrics for the load stage, in which data is written to the destination. + type: object + properties: + volume: + type: number + description: The volume of data processed in this stage, in megabytes. Null if volume data is not available for this stage. + format: double + sync_id: + type: string + description: The unique identifier of the sync. + RunSetupTestsRequest: + type: object + properties: + trust_certificates: + type: boolean + description: Specifies whether we should trust the certificate automatically during setup tests. The default value is FALSE. This parameter only affects the behavior of setup tests and does not persist in the connection configuration. When using the PATCH endpoint to update a connection, this parameter must be combined with `run_setup_tests=true` and at least one persistent configuration parameter (e.g., `sync_frequency`, `paused`, `config`, `auth`). If you only want to run setup tests with automatic certificate trust, use the POST `/v1/connections/{connectionId}/test` endpoint instead. If a certificate is not trusted automatically during testing, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate). + example: true + trust_fingerprints: + type: boolean + description: Specifies whether we should trust the SSH fingerprint automatically during setup tests. The default value is FALSE. This parameter only affects the behavior of setup tests and does not persist in the connection configuration. When using the PATCH endpoint to update a connection, this parameter must be combined with `run_setup_tests=true` and at least one persistent configuration parameter (e.g., `sync_frequency`, `paused`, `config`, `auth`). If you only want to run setup tests with automatic fingerprint trust, use the POST `/v1/connections/{connectionId}/test` endpoint instead. If a fingerprint is not trusted automatically during testing, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint). + example: true + ConnectionWarningsResponse: + required: + - items + type: object + properties: + items: + type: array + description: Array of warnings grouped by destination table + items: + $ref: '#/components/schemas/TableWarnings' + next_cursor: + type: string + description: Pagination cursor for the next page of results + example: next_cursor_value + ConnectorStatusResponse: + required: + - is_historical_sync + - setup_state + - sync_state + - update_state + type: object + properties: + tasks: + type: array + description: The collection of tasks for the connection + items: + $ref: '#/components/schemas/ConnectionTask' + warnings: + type: array + description: The collection of warnings for the connection + items: + $ref: '#/components/schemas/ConnectionWarning' + setup_state: + type: string + description: 'The current setup state of the connection. The available values are:
- incomplete - the setup config is incomplete, the setup tests never succeeded
- connected - the connection is properly set up
- broken - the connection setup config is broken.' + example: connected + schema_status: + type: string + description: Schema status. Returned only for connectors that support [Universal Column Masking flow](https://fivetran.com/docs/rest-api/tutorials/schema-status). + example: ready + sync_state: + type: string + description: 'The current sync state of the connection. The available values are:
- scheduled - the sync is waiting to be run
- syncing - the sync is currently running
- paused - the sync is currently paused
- rescheduled - the sync is waiting until more API calls are available in the source service.' + example: scheduled + update_state: + type: string + description: 'The current data update state of the connection. The available values are:
- on_schedule - the sync is running smoothly, no delays
- delayed - the data is delayed for a longer time than expected for the update.' + example: delayed + is_historical_sync: + type: boolean + description: The boolean specifying whether the connection should be triggered to re-sync all historical data. If you set this parameter to TRUE, a [historical sync](https://fivetran.com/docs/getting-started/glossary#historicalsync) starts immediately. If a sync is currently running, it's canceled and restarted as a historical sync. All subsequent syncs after the historical sync completes will be incremental. If the value is FALSE or not specified, the connection doesn't re-sync historical data. This parameter is automatically reset to FALSE once the historical sync is completed. + example: false + rescheduled_for: + type: string + description: The UTC timestamp of the next scheduled sync attempt. Non-null only when `sync_state` is `"rescheduled"`. If `schedule_type` is `manual`, the connection expects the sync to be triggered at the designated time through the [Sync Connection Data](https://fivetran.com/docs/rest-api/api-reference/connections/sync-connection) endpoint. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + ConnectorSchedule: + type: object + properties: + cron: + type: string + interval: + type: integer + description: The sync interval in minutes + format: int32 + example: 360 + schedule_type: + type: string + description: 'The schedule type. Possible values: INTERVAL, TIME_OF_DAY' + example: INTERVAL + enum: + - TIME_OF_DAY + - INTERVAL + - CRON + - MANUAL + days_of_week: + uniqueItems: true + type: array + description: The days of the week on which the connection syncs + example: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + items: + type: string + enum: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + time_of_day: + type: string + SetupTestResultResponse: + required: + - status + - title + type: object + properties: + title: + type: string + description: 'A human-readable name for the setup test step. For example: Validate Login, Test Connection, Check Permissions.' + example: Validate Login + status: + type: string + description: 'The result of the individual setup test step. Possible values: PASSED, FAILED, SKIPPED.' + example: FAILED + enum: + - PASSED + - SKIPPED + - WARNING + - FAILED + - JOB_FAILED + message: + type: string + description: 'The result message for the setup test step. For example: Invalid login credentials.' + example: Invalid login credentials. + details: + type: string + description: Additional diagnostic information about the setup test result. Populated when the status is FAILED and more context is available beyond the message. (opaque JSON object) + example: Authentication failed (401 Unauthorized). Verify the provided credentials and permissions. + ConnectCardResponse: + type: object + properties: + token: + type: string + description: A short-lived JWT that authorizes the end user to configure this connection via the Connect Card interface. Use the `uri` field directly to redirect users — it already embeds this token. If you need to construct your own URL, pass this value as the `auth` query parameter to `https://fivetran.com/connect-card/setup`. + example: eyJ0e... + uri: + type: string + description: The complete URL to redirect the end user to in order to authorize the connection. It embeds the auth token, redirect URI, and setup guide visibility as query parameters. Redirect the user directly to this address. + example: https://fivetran.com/connect-card/setup?redirect_uri=https://your.site/path&auth=eyJ0e...&hide_setup_guide=true + ConnectCardConfig: + required: + - redirect_uri + type: object + properties: + redirect_uri: + type: string + description: The URI on your site we redirect the end user to after successful setup. The URI must start with the `https` or `http` prefix. + example: https://your.site/path + hide_setup_guide: + type: boolean + description: An optional parameter that lets you hide the embedded setup guide in the Connect Card. + example: true + all_fields: + type: boolean + description: An optional parameter that lets you show all fields on Connect Card including those that are hidden by default for certain connectors. + example: true + DestinationConfiguration: + type: object + properties: + virtual_warehouse: + type: string + description: Snowflake's virtual warehouse used in the connection + example: virtual_warehouse + JsonNode: + type: string + description: (opaque JSON object) + SchemaConfigResponse: + required: + - enabled + - name_in_destination + - tables + type: object + properties: + name_in_destination: + type: string + description: The schema name within your destination in accordance with Fivetran conventional rules + example: schema_name_in_destination + enabled: + type: boolean + description: The boolean value specifying whether the sync for the table into the destination is enabled. + example: true + tables: + title: Tables + type: object + properties: + table: + $ref: '#/components/schemas/TableConfigResponse' + description: The set of tables within your database schema config. Each key is the table name as stored in the connection schema config. Table names are case-sensitive; an incorrect case results in an HTTP 404 error. + DropColumnSchemaRequest: + required: + - tables + type: object + properties: + tables: + title: Tables + type: object + properties: + table: + $ref: '#/components/schemas/DropColumnsTableRequest' + description: The set of tables within your database schema config. Each key is the table name as stored in the connection schema config. Table names are case-sensitive; an incorrect case results in an HTTP 404 error. + RowFilterDto: + type: object + properties: + name: + type: string + description: A human-readable name for the row filter. Required when a row filter object is provided (upsert). + example: active_orders + description: + type: string + description: A human-readable description for the row filter. Required when a row filter object is provided (upsert). + example: Sync only active orders + operator: + type: string + description: The logical operator applied to the column clauses. `AND` means a row is synced only when it satisfies every clause; `OR` means a row is synced when it satisfies at least one clause. If omitted, defaults to `AND`. Only valid when `column_clauses` contains 2 or more clauses; setting it explicitly on a single-clause filter returns an error. For a single-clause filter, omit this field. + example: AND + enum: + - AND + - OR + column_clauses: + maxItems: 10 + minItems: 0 + type: array + description: The list of column clauses that make up the row filter. Clauses are combined according to the `operator` field (defaults to AND when omitted). The list must contain 1 to 10 clauses. If `operator` is explicitly set to `AND` or `OR`, the list must contain at least 2 clauses; for a single-clause filter, omit `operator` rather than setting it explicitly. + items: + $ref: '#/components/schemas/RowFilterClauseDto' + nullable: true + ColumnConfigResponse: + required: + - enabled + - enabled_patch_settings + - hashed + - name_in_destination + type: object + properties: + name_in_destination: + type: string + description: The schema name within your destination in accordance with Fivetran conventional rules + example: column_name_in_destination + enabled: + type: boolean + description: The boolean value specifying whether the sync for the table into the destination is enabled. + example: true + hashed: + type: boolean + description: The boolean value specifying whether a column should be hashed + example: false + enabled_patch_settings: + $ref: '#/components/schemas/ColumnEnabledPatchSettings' + is_primary_key: + type: boolean + target_data_type: + type: string + description: The target data type for this column in the destination. Overrides Fivetran's default type mapping. Available target types depend on the column's source data type and destination. Set to null to remove an existing mapping and revert to the default. + example: String + Stages: + type: object + properties: + extract: + description: Data volume metrics for the extract stage, in which data is read from the source system. + type: object + properties: + volume: + type: number + description: The volume of data processed in this stage, in megabytes. Null if volume data is not available for this stage. + format: double + process: + description: Data volume metrics for the process stage, in which data is transformed and prepared for loading. + type: object + properties: + volume: + type: number + description: The volume of data processed in this stage, in megabytes. Null if volume data is not available for this stage. + format: double + load: + description: Data volume metrics for the load stage, in which data is written to the destination. + type: object + properties: + volume: + type: number + description: The volume of data processed in this stage, in megabytes. Null if volume data is not available for this stage. + format: double + TableWarnings: + required: + - warnings + type: object + properties: + schema: + type: string + description: The destination schema name. Omitted for warnings that are not scoped to a specific table. + example: my_schema + table: + type: string + description: The destination table name. Omitted for warnings that are not scoped to a specific table. + example: my_table + warnings: + type: array + description: List of warnings for this table + items: + $ref: '#/components/schemas/ConnectionWarningItem' + ConnectionTask: + type: object + properties: + code: + type: string + description: A machine-readable identifier for the condition type. Use this value to programmatically detect and respond to specific connection conditions. + message: + type: string + description: 'A human-readable label describing the condition. For example: Reconnect, Resync Table Warning.' + details: + type: string + description: Additional context about this condition beyond the message field. + ConnectionWarning: + type: object + properties: + code: + type: string + description: A machine-readable identifier for the condition type. Use this value to programmatically detect and respond to specific connection conditions. + message: + type: string + description: 'A human-readable label describing the condition. For example: Reconnect, Resync Table Warning.' + details: + type: string + description: Additional context about this condition beyond the message field. + TableConfigResponse: + required: + - columns + - enabled + - enabled_patch_settings + - name_in_destination + - supports_columns_config + - supports_history_mode + type: object + properties: + sync_mode: + type: string + description: This field appears in the response if the connection supports switching sync modes for tables + example: SOFT_DELETE + enum: + - SOFT_DELETE + - HISTORY + - LIVE + name_in_destination: + type: string + description: The schema name within your destination in accordance with Fivetran conventional rules + example: table_name_in_destination + enabled: + type: boolean + description: The boolean value specifying whether the sync for the table into the destination is enabled. + example: true + columns: + title: Columns + type: object + properties: + column: + $ref: '#/components/schemas/ColumnConfigResponse' + description: The set of columns within your table schema config. Each key is the column name as stored in the connection schema config. Column names are case-sensitive; an incorrect case results in an HTTP 404 error. The `columns` object in the response contains the columns whose `enabled` value has been set by the user after the initial sync. + enabled_patch_settings: + $ref: '#/components/schemas/TableEnabledPatchSettings' + supports_columns_config: + type: boolean + description: A boolean value that specifies if the table supports a column-level configuration. + example: true + supports_history_mode: + type: boolean + description: The boolean value that specifies if the table supports history mode. + example: true + row_filter: + description: The row filter configured for the table. Omitted when no row filter is configured for the table. The clauses are combined according to the `operator` field; `OR` is returned explicitly, while the default `AND` is represented by an omitted `operator` field. Row filtering must be available for the connection; see the `row_filtering_supported` response field. + type: object + properties: + name: + type: string + description: A human-readable name for the row filter. Required when a row filter object is provided (upsert). + example: active_orders + description: + type: string + description: A human-readable description for the row filter. Required when a row filter object is provided (upsert). + example: Sync only active orders + operator: + type: string + description: The logical operator applied to the column clauses. `AND` means a row is synced only when it satisfies every clause; `OR` means a row is synced when it satisfies at least one clause. If omitted, defaults to `AND`. Only valid when `column_clauses` contains 2 or more clauses; setting it explicitly on a single-clause filter returns an error. For a single-clause filter, omit this field. + example: AND + enum: + - AND + - OR + column_clauses: + maxItems: 10 + minItems: 0 + type: array + description: The list of column clauses that make up the row filter. Clauses are combined according to the `operator` field (defaults to AND when omitted). The list must contain 1 to 10 clauses. If `operator` is explicitly set to `AND` or `OR`, the list must contain at least 2 clauses; for a single-clause filter, omit `operator` rather than setting it explicitly. + items: + $ref: '#/components/schemas/RowFilterClauseDto' + nullable: true + parent_table: + type: string + description: The name of the table that this table is grouped under, if any. This field appears in the response only for tables that belong to a group (for example, a core table's child tables). + example: core_table_name + DropColumnsTableRequest: + required: + - columns + type: object + properties: + columns: + type: array + description: The set of columns within your table schema config. Each key is the column name as stored in the connection schema config. Column names are case-sensitive; an incorrect case results in an HTTP 404 error. The `columns` object in the response contains the columns whose `enabled` value has been set by the user after the initial sync. + items: + type: string + RowFilterClauseDto: + required: + - column_type + - operator + - values + type: object + properties: + column: + maxLength: 500 + minLength: 0 + type: string + description: The name of the source column the clause applies to. Maximum 500 characters. + example: status + operator: + type: string + description: 'The operator applied to the column. The operator must be compatible with `column_type`, and the number of `values` required depends on the operator:
- `EQUALS`, `NOT_EQUALS` - valid for `LONG`, `FLOAT`, `DOUBLE`, `BIGDECIMAL`, `DATE`, `DATETIME`, and `STRING`; require exactly 1 value.
- `LESS`, `LESS_OR_EQUALS`, `GREATER`, `GREATER_OR_EQUALS` - valid for `LONG`, `FLOAT`, `DOUBLE`, `BIGDECIMAL`, `DATE`, `DATETIME`, and `STRING`; require exactly 1 value.
- `STARTS_WITH`, `CONTAINS` - valid for `STRING` only; require exactly 1 value.
- `IN` - valid for `LONG`, `STRING`, `FLOAT`, and `DOUBLE` only; require at least 1 value.
- `IS_NULL`, `IS_NOT_NULL` - valid for all types; require no values.' + example: EQUALS + enum: + - EQUALS + - NOT_EQUALS + - LESS + - LESS_OR_EQUALS + - GREATER + - GREATER_OR_EQUALS + - STARTS_WITH + - CONTAINS + - IN + - IS_NULL + - IS_NOT_NULL + values: + type: array + description: 'The list of values the operator compares against. Each value is a string of at most 1,000 characters; the API parses it according to column_type. The number of values must match the operator: exactly 1 for the comparison and string operators, at least 1 for `IN`, and 0 for `IS_NULL` and `IS_NOT_NULL`. For the `IN` operator on a STRING column, the combined length of all values must not exceed 10,000 characters.' + example: + - ACTIVE + items: + maxLength: 1000 + minLength: 0 + type: string + column_type: + type: string + description: 'The data type of the column. It determines which operators are valid and the required format of each value:
- `LONG` - integer types (short, int, long).
- `FLOAT` - single-precision floating-point number.
- `DOUBLE` - double-precision floating-point number.
- `BIGDECIMAL` - arbitrary-precision decimal number; each value is capped at 50 characters.
- `STRING` - text.
- `BOOLEAN` - accepts only the string values `true` or `false` (lowercase).
- `DATE` - a date with no time component, in `yyyy-MM-dd` format (for example, `2024-01-01`).
- `DATETIME` - a UTC timestamp ending in `Z`, in `yyyy-MM-ddTHH:mm:ssZ` format (for example, `2024-01-01T00:00:00Z`). Offsets other than `Z` are not accepted.' + example: STRING + enum: + - LONG + - FLOAT + - DOUBLE + - BIGDECIMAL + - STRING + - BOOLEAN + - DATE + - DATETIME + ColumnEnabledPatchSettings: + required: + - allowed + type: object + properties: + allowed: + type: boolean + description: The boolean value specifying whether the enabled property can be updated + example: false + reason: + type: string + description: The additional message indicating the reason why the enabled property cannot be updated. This field appears in the response only when the reason_code value is OTHER + example: ... + reason_code: + type: string + description: 'The reason code indicating the reason why the enabled property cannot be updated:
SYSTEM_TABLE - the table is a system table
DELETED - the table was deleted in the source
OTHER - the table was excluded by the system for some reason
This field appears in the response when the allowed property value is FALSE' + example: SYSTEM_COLUMN + enum: + - SYSTEM_COLUMN + - DELETED + - OTHER + Stage: + type: object + properties: + volume: + type: number + description: The volume of data processed in this stage, in megabytes. Null if volume data is not available for this stage. + format: double + ConnectionWarningItem: + required: + - code + - created_at + - message + type: object + properties: + code: + type: string + description: A machine-readable identifier for the condition type. Use this value to programmatically detect and respond to specific connection conditions. + message: + type: string + description: 'A human-readable label describing the condition. For example: Reconnect, Resync Table Warning.' + error_message: + type: string + description: Additional error details extracted from the warning + example: Connection refused + created_at: + type: string + description: ISO 8601 timestamp when the warning was created + format: date-time + example: '2024-03-17T12:31:40.870504Z' + TableEnabledPatchSettings: + required: + - allowed + type: object + properties: + allowed: + type: boolean + description: The boolean value specifying whether the enabled property can be updated + example: false + reason: + type: string + description: The additional message indicating the reason why the enabled property cannot be updated. This field appears in the response only when the reason_code value is OTHER + example: ... + reason_code: + type: string + description: 'The reason code indicating the reason why the enabled property cannot be updated:
SYSTEM_TABLE - the table is a system table
DELETED - the table was deleted in the source
OTHER - the table was excluded by the system for some reason
This field appears in the response when the allowed property value is FALSE' + example: SYSTEM_TABLE + enum: + - SYSTEM_TABLE + - DELETED + - OTHER + x-stackQL-resources: + connections: + id: fivetran.connections.connections + name: connections + title: Connections + methods: + list: + operation: + $ref: '#/paths/~1v1~1connections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + create_connect_card: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1connect-card/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + move: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1move/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + resync: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1resync/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sync: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1sync/post' + response: + mediaType: application/json + openAPIDocKey: '200' + run_setup_tests: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1test/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connections/methods/get' + - $ref: '#/components/x-stackQL-resources/connections/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connections/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/connections/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/connections/methods/delete' + replace: [] + move_jobs: + id: fivetran.connections.move_jobs + name: move_jobs + title: Move Jobs + methods: + get: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1move~1{job_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/move_jobs/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + schema_configs: + id: fivetran.connections.schema_configs + name: schema_configs + title: Schema Configs + methods: + get: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + drop_columns: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas~1drop-columns/post' + response: + mediaType: application/json + openAPIDocKey: '200' + reload: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas~1reload/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + resync_tables: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas~1tables~1resync/post' + response: + mediaType: application/json + openAPIDocKey: '200' + update_schema: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas~1{schema_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + update_table: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas~1{schema_name}~1tables~1{table_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schema_configs/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/schema_configs/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/schema_configs/methods/update_table' + - $ref: '#/components/x-stackQL-resources/schema_configs/methods/update_schema' + - $ref: '#/components/x-stackQL-resources/schema_configs/methods/update' + delete: [] + replace: [] + columns: + id: fivetran.connections.columns + name: columns + title: Columns + methods: + delete: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas~1{schema_name}~1tables~1{table_name}~1columns~1{column_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas~1{schema_name}~1tables~1{table_name}~1columns~1{column_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1schemas~1{schema_name}~1tables~1{table_name}~1columns/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/columns/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/columns/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/columns/methods/delete' + replace: [] + states: + id: fivetran.connections.states + name: states + title: States + methods: + get: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1state/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1state/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/states/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/states/methods/update' + delete: [] + replace: [] + sync_history: + id: fivetran.connections.sync_history + name: sync_history + title: Sync History + methods: + list: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1sync-history/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sync_history/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + warnings: + id: fivetran.connections.warnings + name: warnings + title: Warnings + methods: + list: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1warnings/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + dismiss: + operation: + $ref: '#/paths/~1v1~1connections~1{connection_id}~1warnings~1{warning_type}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/warnings/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/warnings/methods/dismiss' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/connector_sdk.yaml b/providers/src/fivetran/v00.00.00000/services/connector_sdk.yaml new file mode 100644 index 00000000..a02d0846 --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/connector_sdk.yaml @@ -0,0 +1,352 @@ +openapi: 3.0.1 +info: + title: Fivetran Connector SDK API + description: Connector SDK packages. + version: v1 +paths: + /v1/connector-sdk/packages: + get: + tags: + - Connector SDK Package Resource + summary: List All Connector SDK Packages + description: Returns a list of all Connector SDK packages in your Fivetran account. + operationId: list_connector_sdk_packages + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connector SDK packages retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/ConnectorSdkPackageResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + post: + tags: + - Connector SDK Package Resource + summary: Create Connector SDK Package + description: | + Uploads a new Connector SDK package to your Fivetran account. The package must be a ZIP file containing your custom connector code. You can create the package ZIP file using the [`fivetran package` command](https://fivetran.com/docs/connector-sdk/connector-development-and-configuration/connector-sdk-commands#fivetranpackage). + + After creating a package, use the standard [Create a Connection endpoint](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection) with the returned `id` as `package_id` in the config. + + > NOTE: Each package can only be associated with one connection at a time. + operationId: create_connector_sdk_package + requestBody: + content: + multipart/form-data: + schema: + required: + - file + type: object + properties: + file: + type: string + description: The ZIP file containing the Connector SDK package. (opaque JSON object) + responses: + '201': + description: Package created successfully + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Package created successfully + data: + $ref: '#/components/schemas/ConnectorSdkPackageResponse' + type: object + '400': + description: Invalid package file or missing file parameter + /v1/connector-sdk/packages/{package_id}: + get: + tags: + - Connector SDK Package Resource + summary: Retrieve Connector SDK Package Details + description: Returns details for a specific Connector SDK package. + operationId: get_connector_sdk_package + parameters: + - name: package_id + in: path + description: The unique identifier for the Connector SDK package. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connector SDK package details retrieved successfully + data: + $ref: '#/components/schemas/ConnectorSdkPackageResponse' + type: object + '404': + description: Package not found + delete: + tags: + - Connector SDK Package Resource + summary: Delete Connector SDK Package + description: | + Permanently deletes a Connector SDK package from your Fivetran account. + + > **Warning:** Packages that are associated with a connection cannot be deleted. You must first delete the connection before deleting the package. + operationId: delete_connector_sdk_package + parameters: + - name: package_id + in: path + description: The unique identifier for the Connector SDK package. + required: true + schema: + type: string + responses: + '200': + description: Package deleted successfully + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Package deleted successfully + type: object + '403': + description: Package is associated with a connection and cannot be deleted + '404': + description: Package not found + patch: + tags: + - Connector SDK Package Resource + summary: Update Connector SDK Package + description: | + Updates an existing Connector SDK package by uploading a new version of the connector code. + + Connection using this package will automatically use the updated code on their next sync. + operationId: update_connector_sdk_package + parameters: + - name: package_id + in: path + description: The unique identifier for the Connector SDK package. + required: true + schema: + type: string + requestBody: + content: + multipart/form-data: + schema: + required: + - file + type: object + properties: + file: + type: string + description: The ZIP file containing the Connector SDK package. (opaque JSON object) + responses: + '200': + description: Package updated successfully + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Package updated successfully + data: + $ref: '#/components/schemas/ConnectorSdkPackageResponse' + type: object + '400': + description: Invalid package file or missing file parameter + '403': + description: User is not the package owner or an account administrator + '404': + description: Package not found + /v1/connector-sdk/packages/{package_id}/download: + get: + tags: + - Connector SDK Package Resource + summary: Download Connector SDK Package + description: | + Downloads the connector code package file (code.zip) for a specific Connector SDK package. + + This endpoint returns the raw ZIP file as an octet-stream. + operationId: download_connector_sdk_package + parameters: + - name: package_id + in: path + description: The unique identifier for the Connector SDK package. + required: true + schema: + type: string + responses: + '200': + description: Package file downloaded successfully + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '404': + description: Package not found +components: + schemas: + ConnectorSdkPackageResponse: + required: + - created_at + - created_by + - id + - last_updated_by + - updated_at + type: object + properties: + id: + type: string + description: The unique identifier for the Connector SDK package. + example: package_id + connection_id: + type: string + description: The connection identifier associated with this package. Each package can only be associated with one connection at a time. Returns null if the package is not yet associated with any connection. + example: connection_id + created_by: + type: string + description: The unique identifier of the user who created the package. + example: user_id + last_updated_by: + type: string + description: The unique identifier of the user who last updated the package. + example: user_id + created_at: + type: string + description: The timestamp when the package was created. + format: date-time + example: '2024-01-14T19:30:00Z' + updated_at: + type: string + description: The timestamp when the package was last updated. + format: date-time + example: '2024-01-14T20:15:00Z' + file_sha256_hash: + type: string + description: The SHA-256 hash of the uploaded package file. Used for integrity verification and change detection. + example: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2 + x-stackQL-resources: + packages: + id: fivetran.connector_sdk.packages + name: packages + title: Packages + methods: + list: + operation: + $ref: '#/paths/~1v1~1connector-sdk~1packages/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + get: + operation: + $ref: '#/paths/~1v1~1connector-sdk~1packages~1{package_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1connector-sdk~1packages~1{package_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/packages/methods/get' + - $ref: '#/components/x-stackQL-resources/packages/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/packages/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/connectors.yaml b/providers/src/fivetran/v00.00.00000/services/connectors.yaml deleted file mode 100644 index e6696332..00000000 --- a/providers/src/fivetran/v00.00.00000/services/connectors.yaml +++ /dev/null @@ -1,2191 +0,0 @@ -openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} -info: - title: OpenAPI Definition - connectors - description: Connector Schema Management - version: v1 -security: - - basicAuth: [] -components: - schemas: - ColumnUpdateRequest: - type: object - properties: - enabled: - type: boolean - description: The boolean value specifying whether the sync for the table into the destination is enabled. - hashed: - type: boolean - description: The boolean value specifying whether a column should be hashed - StandardConfigResponse: - type: object - properties: - enable_new_by_default: - type: boolean - description: 'The boolean value specifying whether to enable new schemas, tables, and columns by default' - schemas: - type: object - additionalProperties: - $ref: '#/components/schemas/SchemaConfigResponse' - description: The set of schemas within your connector schema config that are synced into the destination - schema_change_handling: - type: string - description: 'The possible values for the schema_change_handling parameter are as follows:
ALLOW_ALL - all new schemas, tables, and columns which appear in the source after the initial setup are included in syncs
ALLOW_COLUMNS - all new schemas and tables which appear in the source after the initial setup are excluded from syncs, but new columns are included
BLOCK_ALL - all new schemas, tables, and columns which appear in the source after the initial setup are excluded from syncs' - enum: - - ALLOW_ALL - - ALLOW_COLUMNS - - BLOCK_ALL - SchemaConfigResponse: - type: object - properties: - name_in_destination: - type: string - description: The schema name within your destination in accordance with Fivetran conventional rules - enabled: - type: boolean - description: The boolean value specifying whether the sync for the table into the destination is enabled. - tables: - type: object - additionalProperties: - $ref: '#/components/schemas/TableConfigResponse' - description: The set of tables within your database schema config that are synced into the destination - TableConfigResponse: - type: object - properties: - sync_mode: - type: string - description: This field appears in the response if the connector supports switching sync modes for tables - enum: - - SOFT_DELETE - - HISTORY - - LIVE - name_in_destination: - type: string - description: The schema name within your destination in accordance with Fivetran conventional rules - enabled: - type: boolean - description: The boolean value specifying whether the sync for the table into the destination is enabled. - columns: - type: object - additionalProperties: - $ref: '#/components/schemas/ColumnConfigResponse' - description: The set of columns within your table schema config that are synced into the destination - enabled_patch_settings: - $ref: '#/components/schemas/TableEnabledPatchSettings' - ColumnConfigResponse: - type: object - properties: - name_in_destination: - type: string - description: The schema name within your destination in accordance with Fivetran conventional rules - enabled: - type: boolean - description: The boolean value specifying whether the sync for the table into the destination is enabled. - hashed: - type: boolean - description: The boolean value specifying whether a column should be hashed - enabled_patch_settings: - $ref: '#/components/schemas/ColumnEnabledPatchSettings' - TableEnabledPatchSettings: - type: object - properties: - allowed: - type: boolean - description: The boolean value specifying whether the enabled property can be modified - reason: - type: string - description: The additional message indicating the reason why the enabled property cannot be modified. This field appears in the response only when the reason_code value is OTHER - reason_code: - type: string - description: 'The reason code indicating the reason why the enabled property cannot be modified:
SYSTEM_TABLE - the table is a system table
DELETED - the table was deleted in the source
OTHER - the table was excluded by the system for some reason
This field appears in the response when the allowed property value is FALSE' - enum: - - SYSTEM_TABLE - - DELETED - - OTHER - ColumnEnabledPatchSettings: - type: object - properties: - allowed: - type: boolean - description: The boolean value specifying whether the enabled property can be modified - reason: - type: string - description: The additional message indicating the reason why the enabled property cannot be modified. This field appears in the response only when the reason_code value is OTHER - reason_code: - type: string - description: 'The reason code indicating the reason why the enabled property cannot be modified:
SYSTEM_TABLE - the table is a system table
DELETED - the table was deleted in the source
OTHER - the table was excluded by the system for some reason
This field appears in the response when the allowed property value is FALSE' - enum: - - SYSTEM_COLUMN - - DELETED - - OTHER - ConnectCardConfigRequest: - type: object - properties: - connect_card_config: - $ref: '#/components/schemas/ConnectCardConfig' - ConnectorConnectCardResponse: - type: object - properties: - connect_card: - $ref: '#/components/schemas/ConnectCardResponse' - connector_id: - type: string - description: The connector identifier - connect_card_config: - $ref: '#/components/schemas/ConnectCardConfig' - ConnectCardConfig: - type: object - properties: - redirect_uri: - type: string - description: 'The URI on your site we redirect the end user to after successful setup. The URI must start with the `https` or `http` prefix. ' - hide_setup_guide: - type: boolean - description: An optional parameter that lets you hide the embedded setup guide in the Connect Card. - ConnectCardResponse: - type: object - properties: - token: - type: string - description: The connect-card auth token - uri: - type: string - description: The Connect Card URI for the user interface - MetadataResponse: - type: object - properties: - id: - type: string - description: The connector type identifier within the Fivetran system - name: - type: string - description: The connector service name within the Fivetran system - type: - type: string - description: The connector service type - enum: - - API - - Dbt - - Marketing - - HumanResources - - Finance - - Productivity - - Engineering - - Support - - Sales - - Security - - SuperConnectorTest - - Free - - File - - Database - - Events - - Function - - BITool - - Warehouse - - Log - - Hvr - description: - type: string - description: The description characterizing the purpose of the connector - icons: - type: array - description: 'The set of additional icon resource URLs in different formats (.svg, .png). Updating this list is not a breaking change. The set of icon URLs or the icons themselves may be changed' - items: - type: string - config: - type: object - description: Metadata for configuration fields - auth: - type: object - description: Metadata for authorization fields (optional) - link_to_erd: - type: string - description: The link to the connector ERD (entity–relationship diagram) - service_status: - type: string - enum: - - development - - private_preview - - beta - - general_availability - - sunset - icon_url: - type: string - description: The icon resource URL - link_to_docs: - type: string - description: The link to the connector documentation - StandardConfigUpdateRequest: - type: object - properties: - schemas: - type: object - additionalProperties: - $ref: '#/components/schemas/SchemaUpdateRequest' - description: The set of schemas within your connector schema config that are synced into the destination - schema_change_handling: - type: string - description: 'The possible values for the schema_change_handling parameter are as follows:
ALLOW_ALL - all new schemas, tables, and columns which appear in the source after the initial setup are included in syncs
ALLOW_COLUMNS - all new schemas and tables which appear in the source after the initial setup are excluded from syncs, but new columns are included
BLOCK_ALL - all new schemas, tables, and columns which appear in the source after the initial setup are excluded from syncs' - enum: - - ALLOW_ALL - - ALLOW_COLUMNS - - BLOCK_ALL - SchemaUpdateRequest: - type: object - properties: - enabled: - type: boolean - description: The boolean value specifying whether the sync for the table into the destination is enabled. - tables: - type: object - additionalProperties: - $ref: '#/components/schemas/TableUpdateRequest' - description: The set of tables within your database schema config that are synced into the destination - TableUpdateRequest: - type: object - properties: - enabled: - type: boolean - description: The boolean value specifying whether the sync for the table into the destination is enabled. - columns: - type: object - additionalProperties: - $ref: '#/components/schemas/ColumnUpdateRequest' - description: The set of columns within your table schema config that are synced into the destination - sync_mode: - type: string - description: This field appears in the response if the connector supports switching sync modes for tables - enum: - - SOFT_DELETE - - HISTORY - - LIVE - ResyncConnectorRequest: - type: object - properties: - scope: - type: object - additionalProperties: - uniqueItems: true - type: array - items: - type: string - description: 'A map containing an array of tables to re-sync for each schema, must be non-empty. The parameter is optional' - RunSetupTestsRequest: - type: object - properties: - trust_certificates: - type: boolean - description: 'Specifies whether we should trust the certificate automatically. The default value is FALSE. If a certificate is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate).' - trust_fingerprints: - type: boolean - description: 'Specifies whether we should trust the SSH fingerprint automatically. The default value is FALSE. If a fingerprint is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint).' - ConnectorResponseV1: - type: object - properties: - id: - type: string - description: The unique identifier for the connector within the Fivetran system - service: - type: string - description: The connector type name within the Fivetran system - schema: - type: string - description: The name used both as the connector's name within the Fivetran system and as the source schema's name within your destination - paused: - type: boolean - description: Specifies whether the connector is paused - status: - $ref: '#/components/schemas/ConnectorStatusResponse' - daily_sync_time: - type: string - description: The connector daily sync start time that we return only when the sync frequency is set to 1440 (which means 24 hours) and the daily_sync_time parameter was set using the Create a Connector or Modify a Connector request - succeeded_at: - type: string - description: The timestamp of the time the connector sync succeeded last time - format: date-time - connect_card: - $ref: '#/components/schemas/ConnectCardResponse' - sync_frequency: - type: integer - description: The connector sync frequency in minutes - format: int32 - pause_after_trial: - type: boolean - description: Specifies whether the connector should be paused after the free trial period has ended - group_id: - type: string - description: The unique identifier for the group within the Fivetran system - connected_by: - type: string - description: The unique identifier of the user who has created the connector in your account - setup_tests: - type: array - description: Setup tests results for this connector - items: - $ref: '#/components/schemas/SetupTestResultResponse' - source_sync_details: - type: object - description: The additional information about the connector's state. The format of this parameter is specific for each connector type - service_version: - type: integer - description: The connector type version within the Fivetran system - format: int32 - created_at: - type: string - description: The timestamp of the time the connector was created in your account - format: date-time - failed_at: - type: string - description: The timestamp of the time the connector sync failed last time - format: date-time - schedule_type: - type: string - description: 'The connector schedule configuration type. Supported values: auto, manual' - connect_card_config: - $ref: '#/components/schemas/ConnectCardConfig' - discriminator: - propertyName: service - mapping: - activecampaign: '#/components/schemas/activecampaign_ConnectorResponseV1' - adjust: '#/components/schemas/adjust_ConnectorResponseV1' - adobe_analytics: '#/components/schemas/adobe_analytics_ConnectorResponseV1' - adobe_analytics_data_feed: '#/components/schemas/adobe_analytics_data_feed_ConnectorResponseV1' - adp_workforce_now: '#/components/schemas/adp_workforce_now_ConnectorResponseV1' - adroll: '#/components/schemas/adroll_ConnectorResponseV1' - airtable: '#/components/schemas/airtable_ConnectorResponseV1' - amazon_ads: '#/components/schemas/amazon_ads_ConnectorResponseV1' - amplitude: '#/components/schemas/amplitude_ConnectorResponseV1' - anaplan: '#/components/schemas/anaplan_ConnectorResponseV1' - apache_kafka: '#/components/schemas/apache_kafka_ConnectorResponseV1' - apple_search_ads: '#/components/schemas/apple_search_ads_ConnectorResponseV1' - appsflyer: '#/components/schemas/appsflyer_ConnectorResponseV1' - asana: '#/components/schemas/asana_ConnectorResponseV1' - aurora: '#/components/schemas/aurora_ConnectorResponseV1' - aurora_postgres: '#/components/schemas/aurora_postgres_ConnectorResponseV1' - aws_cloudtrail: '#/components/schemas/aws_cloudtrail_ConnectorResponseV1' - aws_inventory: '#/components/schemas/aws_inventory_ConnectorResponseV1' - aws_lambda: '#/components/schemas/aws_lambda_ConnectorResponseV1' - aws_msk: '#/components/schemas/aws_msk_ConnectorResponseV1' - azure_blob_storage: '#/components/schemas/azure_blob_storage_ConnectorResponseV1' - azure_event_hub: '#/components/schemas/azure_event_hub_ConnectorResponseV1' - azure_function: '#/components/schemas/azure_function_ConnectorResponseV1' - azure_postgres: '#/components/schemas/azure_postgres_ConnectorResponseV1' - azure_service_bus: '#/components/schemas/azure_service_bus_ConnectorResponseV1' - azure_sql_db: '#/components/schemas/azure_sql_db_ConnectorResponseV1' - azure_sql_managed_db: '#/components/schemas/azure_sql_managed_db_ConnectorResponseV1' - bamboohr: '#/components/schemas/bamboohr_ConnectorResponseV1' - bingads: '#/components/schemas/bingads_ConnectorResponseV1' - box: '#/components/schemas/box_ConnectorResponseV1' - braintree: '#/components/schemas/braintree_ConnectorResponseV1' - braintree_sandbox: '#/components/schemas/braintree_sandbox_ConnectorResponseV1' - branch: '#/components/schemas/branch_ConnectorResponseV1' - braze: '#/components/schemas/braze_ConnectorResponseV1' - cloudfront: '#/components/schemas/cloudfront_ConnectorResponseV1' - concur: '#/components/schemas/concur_ConnectorResponseV1' - confluent_cloud: '#/components/schemas/confluent_cloud_ConnectorResponseV1' - cosmos: '#/components/schemas/cosmos_ConnectorResponseV1' - coupa: '#/components/schemas/coupa_ConnectorResponseV1' - criteo: '#/components/schemas/criteo_ConnectorResponseV1' - crossbeam: '#/components/schemas/crossbeam_ConnectorResponseV1' - db2i_hva: '#/components/schemas/db2i_hva_ConnectorResponseV1' - delighted: '#/components/schemas/delighted_ConnectorResponseV1' - documentdb: '#/components/schemas/documentdb_ConnectorResponseV1' - double_click_campaign_manager: '#/components/schemas/double_click_campaign_manager_ConnectorResponseV1' - double_click_publishers: '#/components/schemas/double_click_publishers_ConnectorResponseV1' - drift: '#/components/schemas/drift_ConnectorResponseV1' - dropbox: '#/components/schemas/dropbox_ConnectorResponseV1' - dynamics_365: '#/components/schemas/dynamics_365_ConnectorResponseV1' - dynamics_365_fo: '#/components/schemas/dynamics_365_fo_ConnectorResponseV1' - dynamodb: '#/components/schemas/dynamodb_ConnectorResponseV1' - elastic_cloud: '#/components/schemas/elastic_cloud_ConnectorResponseV1' - eloqua: '#/components/schemas/eloqua_ConnectorResponseV1' - email: '#/components/schemas/email_ConnectorResponseV1' - es_self_hosted: '#/components/schemas/es_self_hosted_ConnectorResponseV1' - facebook: '#/components/schemas/facebook_ConnectorResponseV1' - facebook_ad_account: '#/components/schemas/facebook_ad_account_ConnectorResponseV1' - facebook_ads: '#/components/schemas/facebook_ads_ConnectorResponseV1' - facebook_pages: '#/components/schemas/facebook_pages_ConnectorResponseV1' - financial_force: '#/components/schemas/financial_force_ConnectorResponseV1' - fivetran_log: '#/components/schemas/fivetran_log_ConnectorResponseV1' - freshdesk: '#/components/schemas/freshdesk_ConnectorResponseV1' - freshservice: '#/components/schemas/freshservice_ConnectorResponseV1' - front: '#/components/schemas/front_ConnectorResponseV1' - ftp: '#/components/schemas/ftp_ConnectorResponseV1' - gainsight_customer_success: '#/components/schemas/gainsight_customer_success_ConnectorResponseV1' - gcs: '#/components/schemas/gcs_ConnectorResponseV1' - github: '#/components/schemas/github_ConnectorResponseV1' - google_ads: '#/components/schemas/google_ads_ConnectorResponseV1' - google_analytics: '#/components/schemas/google_analytics_ConnectorResponseV1' - google_analytics_360: '#/components/schemas/google_analytics_360_ConnectorResponseV1' - google_analytics_4: '#/components/schemas/google_analytics_4_ConnectorResponseV1' - google_analytics_4_export: '#/components/schemas/google_analytics_4_export_ConnectorResponseV1' - google_analytics_mcf: '#/components/schemas/google_analytics_mcf_ConnectorResponseV1' - google_cloud_function: '#/components/schemas/google_cloud_function_ConnectorResponseV1' - google_cloud_mysql: '#/components/schemas/google_cloud_mysql_ConnectorResponseV1' - google_cloud_postgresql: '#/components/schemas/google_cloud_postgresql_ConnectorResponseV1' - google_cloud_sqlserver: '#/components/schemas/google_cloud_sqlserver_ConnectorResponseV1' - google_display_and_video_360: '#/components/schemas/google_display_and_video_360_ConnectorResponseV1' - google_drive: '#/components/schemas/google_drive_ConnectorResponseV1' - google_play: '#/components/schemas/google_play_ConnectorResponseV1' - google_search_console: '#/components/schemas/google_search_console_ConnectorResponseV1' - google_sheets: '#/components/schemas/google_sheets_ConnectorResponseV1' - greenhouse: '#/components/schemas/greenhouse_ConnectorResponseV1' - heap: '#/components/schemas/heap_ConnectorResponseV1' - height: '#/components/schemas/height_ConnectorResponseV1' - helpscout: '#/components/schemas/helpscout_ConnectorResponseV1' - heroku_kafka: '#/components/schemas/heroku_kafka_ConnectorResponseV1' - heroku_postgres: '#/components/schemas/heroku_postgres_ConnectorResponseV1' - hubspot: '#/components/schemas/hubspot_ConnectorResponseV1' - instagram_business: '#/components/schemas/instagram_business_ConnectorResponseV1' - intercom: '#/components/schemas/intercom_ConnectorResponseV1' - iterable: '#/components/schemas/iterable_ConnectorResponseV1' - itunes_connect: '#/components/schemas/itunes_connect_ConnectorResponseV1' - jira: '#/components/schemas/jira_ConnectorResponseV1' - kinesis: '#/components/schemas/kinesis_ConnectorResponseV1' - klaviyo: '#/components/schemas/klaviyo_ConnectorResponseV1' - kustomer: '#/components/schemas/kustomer_ConnectorResponseV1' - lever: '#/components/schemas/lever_ConnectorResponseV1' - light_speed_retail: '#/components/schemas/light_speed_retail_ConnectorResponseV1' - linkedin_ads: '#/components/schemas/linkedin_ads_ConnectorResponseV1' - linkedin_company_pages: '#/components/schemas/linkedin_company_pages_ConnectorResponseV1' - magento_mysql: '#/components/schemas/magento_mysql_ConnectorResponseV1' - magento_mysql_rds: '#/components/schemas/magento_mysql_rds_ConnectorResponseV1' - mailchimp: '#/components/schemas/mailchimp_ConnectorResponseV1' - mandrill: '#/components/schemas/mandrill_ConnectorResponseV1' - maria: '#/components/schemas/maria_ConnectorResponseV1' - maria_azure: '#/components/schemas/maria_azure_ConnectorResponseV1' - maria_rds: '#/components/schemas/maria_rds_ConnectorResponseV1' - marin: '#/components/schemas/marin_ConnectorResponseV1' - marketo: '#/components/schemas/marketo_ConnectorResponseV1' - mavenlink: '#/components/schemas/mavenlink_ConnectorResponseV1' - medallia: '#/components/schemas/medallia_ConnectorResponseV1' - microsoft_lists: '#/components/schemas/microsoft_lists_ConnectorResponseV1' - mixpanel: '#/components/schemas/mixpanel_ConnectorResponseV1' - mongo: '#/components/schemas/mongo_ConnectorResponseV1' - mongo_sharded: '#/components/schemas/mongo_sharded_ConnectorResponseV1' - mysql: '#/components/schemas/mysql_ConnectorResponseV1' - mysql_azure: '#/components/schemas/mysql_azure_ConnectorResponseV1' - mysql_rds: '#/components/schemas/mysql_rds_ConnectorResponseV1' - netsuite_suiteanalytics: '#/components/schemas/netsuite_suiteanalytics_ConnectorResponseV1' - okta: '#/components/schemas/okta_ConnectorResponseV1' - one_drive: '#/components/schemas/one_drive_ConnectorResponseV1' - opendistro: '#/components/schemas/opendistro_ConnectorResponseV1' - opensearch: '#/components/schemas/opensearch_ConnectorResponseV1' - optimizely: '#/components/schemas/optimizely_ConnectorResponseV1' - oracle: '#/components/schemas/oracle_ConnectorResponseV1' - oracle_ebs: '#/components/schemas/oracle_ebs_ConnectorResponseV1' - oracle_fusion_cloud_apps_crm: '#/components/schemas/oracle_fusion_cloud_apps_crm_ConnectorResponseV1' - oracle_fusion_cloud_apps_fscm: '#/components/schemas/oracle_fusion_cloud_apps_fscm_ConnectorResponseV1' - oracle_fusion_cloud_apps_hcm: '#/components/schemas/oracle_fusion_cloud_apps_hcm_ConnectorResponseV1' - oracle_hva: '#/components/schemas/oracle_hva_ConnectorResponseV1' - oracle_rac: '#/components/schemas/oracle_rac_ConnectorResponseV1' - oracle_rds: '#/components/schemas/oracle_rds_ConnectorResponseV1' - oracle_sap_hva: '#/components/schemas/oracle_sap_hva_ConnectorResponseV1' - oracle_sap_hva_netweaver: '#/components/schemas/oracle_sap_hva_netweaver_ConnectorResponseV1' - outbrain: '#/components/schemas/outbrain_ConnectorResponseV1' - outreach: '#/components/schemas/outreach_ConnectorResponseV1' - pardot: '#/components/schemas/pardot_ConnectorResponseV1' - paypal: '#/components/schemas/paypal_ConnectorResponseV1' - paypal_sandbox: '#/components/schemas/paypal_sandbox_ConnectorResponseV1' - pendo: '#/components/schemas/pendo_ConnectorResponseV1' - pinterest_ads: '#/components/schemas/pinterest_ads_ConnectorResponseV1' - pipedrive: '#/components/schemas/pipedrive_ConnectorResponseV1' - postgres: '#/components/schemas/postgres_ConnectorResponseV1' - postgres_rds: '#/components/schemas/postgres_rds_ConnectorResponseV1' - qualtrics: '#/components/schemas/qualtrics_ConnectorResponseV1' - quickbooks: '#/components/schemas/quickbooks_ConnectorResponseV1' - recharge: '#/components/schemas/recharge_ConnectorResponseV1' - recurly: '#/components/schemas/recurly_ConnectorResponseV1' - reddit_ads: '#/components/schemas/reddit_ads_ConnectorResponseV1' - ringcentral: '#/components/schemas/ringcentral_ConnectorResponseV1' - s3: '#/components/schemas/s3_ConnectorResponseV1' - sage_intacct: '#/components/schemas/sage_intacct_ConnectorResponseV1' - sailthru: '#/components/schemas/sailthru_ConnectorResponseV1' - salesforce: '#/components/schemas/salesforce_ConnectorResponseV1' - salesforce_commerce_cloud: '#/components/schemas/salesforce_commerce_cloud_ConnectorResponseV1' - salesforce_marketing_cloud: '#/components/schemas/salesforce_marketing_cloud_ConnectorResponseV1' - salesforce_sandbox: '#/components/schemas/salesforce_sandbox_ConnectorResponseV1' - salesloft: '#/components/schemas/salesloft_ConnectorResponseV1' - sap_business_by_design: '#/components/schemas/sap_business_by_design_ConnectorResponseV1' - segment: '#/components/schemas/segment_ConnectorResponseV1' - sendgrid: '#/components/schemas/sendgrid_ConnectorResponseV1' - servicenow: '#/components/schemas/servicenow_ConnectorResponseV1' - sftp: '#/components/schemas/sftp_ConnectorResponseV1' - share_point: '#/components/schemas/share_point_ConnectorResponseV1' - shopify: '#/components/schemas/shopify_ConnectorResponseV1' - snapchat_ads: '#/components/schemas/snapchat_ads_ConnectorResponseV1' - snowflake_db: '#/components/schemas/snowflake_db_ConnectorResponseV1' - snowplow: '#/components/schemas/snowplow_ConnectorResponseV1' - splunk: '#/components/schemas/splunk_ConnectorResponseV1' - sql_server: '#/components/schemas/sql_server_ConnectorResponseV1' - sql_server_hva: '#/components/schemas/sql_server_hva_ConnectorResponseV1' - sql_server_rds: '#/components/schemas/sql_server_rds_ConnectorResponseV1' - square: '#/components/schemas/square_ConnectorResponseV1' - stripe: '#/components/schemas/stripe_ConnectorResponseV1' - stripe_test: '#/components/schemas/stripe_test_ConnectorResponseV1' - survey_monkey: '#/components/schemas/survey_monkey_ConnectorResponseV1' - taboola: '#/components/schemas/taboola_ConnectorResponseV1' - tiktok_ads: '#/components/schemas/tiktok_ads_ConnectorResponseV1' - twilio: '#/components/schemas/twilio_ConnectorResponseV1' - twitter: '#/components/schemas/twitter_ConnectorResponseV1' - twitter_ads: '#/components/schemas/twitter_ads_ConnectorResponseV1' - typeform: '#/components/schemas/typeform_ConnectorResponseV1' - uservoice: '#/components/schemas/uservoice_ConnectorResponseV1' - webhooks: '#/components/schemas/webhooks_ConnectorResponseV1' - woocommerce: '#/components/schemas/woocommerce_ConnectorResponseV1' - workday: '#/components/schemas/workday_ConnectorResponseV1' - workday_hcm: '#/components/schemas/workday_hcm_ConnectorResponseV1' - xero: '#/components/schemas/xero_ConnectorResponseV1' - yahoo_gemini: '#/components/schemas/yahoo_gemini_ConnectorResponseV1' - youtube_analytics: '#/components/schemas/youtube_analytics_ConnectorResponseV1' - zendesk: '#/components/schemas/zendesk_ConnectorResponseV1' - zendesk_chat: '#/components/schemas/zendesk_chat_ConnectorResponseV1' - zendesk_sell: '#/components/schemas/zendesk_sell_ConnectorResponseV1' - zendesk_sunshine: '#/components/schemas/zendesk_sunshine_ConnectorResponseV1' - zoho_crm: '#/components/schemas/zoho_crm_ConnectorResponseV1' - zuora: '#/components/schemas/zuora_ConnectorResponseV1' - zuora_sandbox: '#/components/schemas/zuora_sandbox_ConnectorResponseV1' - ConnectorStatusResponse: - type: object - properties: - tasks: - type: array - description: The collection of tasks for the connector - items: - $ref: '#/components/schemas/Alert' - warnings: - type: array - description: The collection of warnings for the connector - items: - $ref: '#/components/schemas/Alert' - schema_status: - type: string - description: Schema status - update_state: - type: string - description: 'The current data update state of the connector. The available values are:
- on_schedule - the sync is running smoothly, no delays
- delayed - the data is delayed for a longer time than expected for the update.' - setup_state: - type: string - description: 'The current setup state of the connector. The available values are:
- incomplete - the setup config is incomplete, the setup tests never succeeded
- connected - the connector is properly set up
- broken - the connector setup config is broken.' - sync_state: - type: string - description: 'The current sync state of the connector. The available values are:
- scheduled - the sync is waiting to be run
- syncing - the sync is currently running
- paused - the sync is currently paused
- rescheduled - the sync is waiting until more API calls are available in the source service.' - is_historical_sync: - type: boolean - description: 'The boolean specifying whether the connector should be triggered to re-sync all historical data. If you set this parameter to TRUE, the next scheduled sync will be historical. If the value is FALSE or not specified, the connector will not re-sync historical data. NOTE: When the value is TRUE, only the next scheduled sync will be historical, all subsequent ones will be incremental. This parameter is set to FALSE once the historical sync is completed.' - rescheduled_for: - type: string - format: date-time - SetupTestResultResponse: - type: object - properties: - title: - type: string - description: Setup test title. - status: - type: string - description: 'The current state of the connector. ' - message: - type: string - description: Setup test message. - details: - type: object - description: Setup test details. - Alert: - type: object - properties: - code: - type: string - description: Code - message: - type: string - description: Setup test message - SchemaMetadataResponse: - type: object - properties: - id: - type: string - description: The unique schema identifier - name_in_source: - type: string - description: The schema name in the source - name_in_destination: - type: string - description: The schema name in the destination - TableColumnsConfigResponse: - type: object - properties: - columns: - type: object - additionalProperties: - $ref: '#/components/schemas/ColumnConfigResponse' - description: The set of columns within your table schema config that are synced into the destination - UpdateConnectorRequest: - type: object - properties: - trust_certificates: - type: boolean - description: 'Specifies whether we should trust the certificate automatically. The default value is FALSE. If a certificate is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate).' - trust_fingerprints: - type: boolean - description: 'Specifies whether we should trust the SSH fingerprint automatically. The default value is FALSE. If a fingerprint is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint).' - config: - description: 'The connector setup configuration. Check possible config formats in [create method](/openapi/reference/v1/operation/create_connector/)' - auth: - description: 'The connector authorization settings. Check possible config formats in [create method](/openapi/reference/v1/operation/create_connector/)' - sync_frequency: - type: integer - description: The connector sync frequency in minutes - format: int32 - enum: - - '5' - - '15' - - '30' - - '60' - - '120' - - '180' - - '360' - - '480' - - '720' - - '1440' - daily_sync_time: - type: string - description: The connector daily sync start time that we return only when the sync frequency is set to 1440 (which means 24 hours) and the daily_sync_time parameter was set using the Create a Connector or Modify a Connector request - paused: - type: boolean - description: Specifies whether the connector is paused - paused_after_trial: - type: boolean - description: Specifies whether the connector should be paused after the free trial period has ended - writeOnly: true - schema_status: - type: string - description: Schema status - is_historical_sync: - type: boolean - description: 'The boolean specifying whether the connector should be triggered to re-sync all historical data. If you set this parameter to TRUE, the next scheduled sync will be historical. If the value is FALSE or not specified, the connector will not re-sync historical data. NOTE: When the value is TRUE, only the next scheduled sync will be historical, all subsequent ones will be incremental. This parameter is set to FALSE once the historical sync is completed.' - schedule_type: - type: string - description: 'The connector schedule configuration type. Supported values: auto, manual' - enum: - - auto - - manual - run_setup_tests: - type: boolean - description: Specifies whether the setup tests should be run automatically. The default value is TRUE. - pause_after_trial: - type: boolean - description: Specifies whether the connector should be paused after the free trial period has ended - NewConnectorRequestV1: - type: object - properties: - group_id: - type: string - description: The unique identifier for the group within the Fivetran system - service: - type: string - description: The connector type name within the Fivetran system - trust_certificates: - type: boolean - description: 'Specifies whether we should trust the certificate automatically. The default value is FALSE. If a certificate is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate).' - trust_fingerprints: - type: boolean - description: 'Specifies whether we should trust the SSH fingerprint automatically. The default value is FALSE. If a fingerprint is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint).' - run_setup_tests: - type: boolean - description: Specifies whether the setup tests should be run automatically. The default value is TRUE. - paused: - type: boolean - description: Specifies whether the connector is paused - pause_after_trial: - type: boolean - description: Specifies whether the connector should be paused after the free trial period has ended - sync_frequency: - type: integer - description: The connector sync frequency in minutes - format: int32 - enum: - - '5' - - '15' - - '30' - - '60' - - '120' - - '180' - - '360' - - '480' - - '720' - - '1440' - daily_sync_time: - type: string - description: 'The optional parameter that defines the sync start time when the sync frequency is already set or being set by the current request to 1440. It can be specified in one hour increments starting from 00:00 to 23:00. If not specified, we will use [the baseline sync start time](https://fivetran.com/docs/getting-started/syncoverview#syncfrequencyandscheduling). This parameter has no effect on the [0 to 60 minutes offset](https://fivetran.com/docs/getting-started/syncoverview#syncstarttimesandoffsets) used to determine the actual sync start time' - schedule_type: - type: string - connect_card_config: - $ref: '#/components/schemas/ConnectCardConfig' - discriminator: - propertyName: service - mapping: - activecampaign: '#/components/schemas/activecampaign_NewConnectorRequestV1' - adjust: '#/components/schemas/adjust_NewConnectorRequestV1' - adobe_analytics: '#/components/schemas/adobe_analytics_NewConnectorRequestV1' - adobe_analytics_data_feed: '#/components/schemas/adobe_analytics_data_feed_NewConnectorRequestV1' - adp_workforce_now: '#/components/schemas/adp_workforce_now_NewConnectorRequestV1' - adroll: '#/components/schemas/adroll_NewConnectorRequestV1' - airtable: '#/components/schemas/airtable_NewConnectorRequestV1' - amazon_ads: '#/components/schemas/amazon_ads_NewConnectorRequestV1' - amplitude: '#/components/schemas/amplitude_NewConnectorRequestV1' - anaplan: '#/components/schemas/anaplan_NewConnectorRequestV1' - apache_kafka: '#/components/schemas/apache_kafka_NewConnectorRequestV1' - apple_search_ads: '#/components/schemas/apple_search_ads_NewConnectorRequestV1' - appsflyer: '#/components/schemas/appsflyer_NewConnectorRequestV1' - asana: '#/components/schemas/asana_NewConnectorRequestV1' - aurora: '#/components/schemas/aurora_NewConnectorRequestV1' - aurora_postgres: '#/components/schemas/aurora_postgres_NewConnectorRequestV1' - aws_cloudtrail: '#/components/schemas/aws_cloudtrail_NewConnectorRequestV1' - aws_inventory: '#/components/schemas/aws_inventory_NewConnectorRequestV1' - aws_lambda: '#/components/schemas/aws_lambda_NewConnectorRequestV1' - aws_msk: '#/components/schemas/aws_msk_NewConnectorRequestV1' - azure_blob_storage: '#/components/schemas/azure_blob_storage_NewConnectorRequestV1' - azure_event_hub: '#/components/schemas/azure_event_hub_NewConnectorRequestV1' - azure_function: '#/components/schemas/azure_function_NewConnectorRequestV1' - azure_postgres: '#/components/schemas/azure_postgres_NewConnectorRequestV1' - azure_service_bus: '#/components/schemas/azure_service_bus_NewConnectorRequestV1' - azure_sql_db: '#/components/schemas/azure_sql_db_NewConnectorRequestV1' - azure_sql_managed_db: '#/components/schemas/azure_sql_managed_db_NewConnectorRequestV1' - bamboohr: '#/components/schemas/bamboohr_NewConnectorRequestV1' - bingads: '#/components/schemas/bingads_NewConnectorRequestV1' - box: '#/components/schemas/box_NewConnectorRequestV1' - braintree: '#/components/schemas/braintree_NewConnectorRequestV1' - braintree_sandbox: '#/components/schemas/braintree_sandbox_NewConnectorRequestV1' - branch: '#/components/schemas/branch_NewConnectorRequestV1' - braze: '#/components/schemas/braze_NewConnectorRequestV1' - cloudfront: '#/components/schemas/cloudfront_NewConnectorRequestV1' - concur: '#/components/schemas/concur_NewConnectorRequestV1' - confluent_cloud: '#/components/schemas/confluent_cloud_NewConnectorRequestV1' - cosmos: '#/components/schemas/cosmos_NewConnectorRequestV1' - coupa: '#/components/schemas/coupa_NewConnectorRequestV1' - criteo: '#/components/schemas/criteo_NewConnectorRequestV1' - crossbeam: '#/components/schemas/crossbeam_NewConnectorRequestV1' - db2i_hva: '#/components/schemas/db2i_hva_NewConnectorRequestV1' - delighted: '#/components/schemas/delighted_NewConnectorRequestV1' - documentdb: '#/components/schemas/documentdb_NewConnectorRequestV1' - double_click_campaign_manager: '#/components/schemas/double_click_campaign_manager_NewConnectorRequestV1' - double_click_publishers: '#/components/schemas/double_click_publishers_NewConnectorRequestV1' - drift: '#/components/schemas/drift_NewConnectorRequestV1' - dropbox: '#/components/schemas/dropbox_NewConnectorRequestV1' - dynamics_365: '#/components/schemas/dynamics_365_NewConnectorRequestV1' - dynamics_365_fo: '#/components/schemas/dynamics_365_fo_NewConnectorRequestV1' - dynamodb: '#/components/schemas/dynamodb_NewConnectorRequestV1' - elastic_cloud: '#/components/schemas/elastic_cloud_NewConnectorRequestV1' - eloqua: '#/components/schemas/eloqua_NewConnectorRequestV1' - email: '#/components/schemas/email_NewConnectorRequestV1' - es_self_hosted: '#/components/schemas/es_self_hosted_NewConnectorRequestV1' - facebook: '#/components/schemas/facebook_NewConnectorRequestV1' - facebook_ad_account: '#/components/schemas/facebook_ad_account_NewConnectorRequestV1' - facebook_ads: '#/components/schemas/facebook_ads_NewConnectorRequestV1' - facebook_pages: '#/components/schemas/facebook_pages_NewConnectorRequestV1' - financial_force: '#/components/schemas/financial_force_NewConnectorRequestV1' - fivetran_log: '#/components/schemas/fivetran_log_NewConnectorRequestV1' - freshdesk: '#/components/schemas/freshdesk_NewConnectorRequestV1' - freshservice: '#/components/schemas/freshservice_NewConnectorRequestV1' - front: '#/components/schemas/front_NewConnectorRequestV1' - ftp: '#/components/schemas/ftp_NewConnectorRequestV1' - gainsight_customer_success: '#/components/schemas/gainsight_customer_success_NewConnectorRequestV1' - gcs: '#/components/schemas/gcs_NewConnectorRequestV1' - github: '#/components/schemas/github_NewConnectorRequestV1' - google_ads: '#/components/schemas/google_ads_NewConnectorRequestV1' - google_analytics: '#/components/schemas/google_analytics_NewConnectorRequestV1' - google_analytics_360: '#/components/schemas/google_analytics_360_NewConnectorRequestV1' - google_analytics_4: '#/components/schemas/google_analytics_4_NewConnectorRequestV1' - google_analytics_4_export: '#/components/schemas/google_analytics_4_export_NewConnectorRequestV1' - google_analytics_mcf: '#/components/schemas/google_analytics_mcf_NewConnectorRequestV1' - google_cloud_function: '#/components/schemas/google_cloud_function_NewConnectorRequestV1' - google_cloud_mysql: '#/components/schemas/google_cloud_mysql_NewConnectorRequestV1' - google_cloud_postgresql: '#/components/schemas/google_cloud_postgresql_NewConnectorRequestV1' - google_cloud_sqlserver: '#/components/schemas/google_cloud_sqlserver_NewConnectorRequestV1' - google_display_and_video_360: '#/components/schemas/google_display_and_video_360_NewConnectorRequestV1' - google_drive: '#/components/schemas/google_drive_NewConnectorRequestV1' - google_play: '#/components/schemas/google_play_NewConnectorRequestV1' - google_search_console: '#/components/schemas/google_search_console_NewConnectorRequestV1' - google_sheets: '#/components/schemas/google_sheets_NewConnectorRequestV1' - greenhouse: '#/components/schemas/greenhouse_NewConnectorRequestV1' - heap: '#/components/schemas/heap_NewConnectorRequestV1' - height: '#/components/schemas/height_NewConnectorRequestV1' - helpscout: '#/components/schemas/helpscout_NewConnectorRequestV1' - heroku_kafka: '#/components/schemas/heroku_kafka_NewConnectorRequestV1' - heroku_postgres: '#/components/schemas/heroku_postgres_NewConnectorRequestV1' - hubspot: '#/components/schemas/hubspot_NewConnectorRequestV1' - instagram_business: '#/components/schemas/instagram_business_NewConnectorRequestV1' - intercom: '#/components/schemas/intercom_NewConnectorRequestV1' - iterable: '#/components/schemas/iterable_NewConnectorRequestV1' - itunes_connect: '#/components/schemas/itunes_connect_NewConnectorRequestV1' - jira: '#/components/schemas/jira_NewConnectorRequestV1' - kinesis: '#/components/schemas/kinesis_NewConnectorRequestV1' - klaviyo: '#/components/schemas/klaviyo_NewConnectorRequestV1' - kustomer: '#/components/schemas/kustomer_NewConnectorRequestV1' - lever: '#/components/schemas/lever_NewConnectorRequestV1' - light_speed_retail: '#/components/schemas/light_speed_retail_NewConnectorRequestV1' - linkedin_ads: '#/components/schemas/linkedin_ads_NewConnectorRequestV1' - linkedin_company_pages: '#/components/schemas/linkedin_company_pages_NewConnectorRequestV1' - magento_mysql: '#/components/schemas/magento_mysql_NewConnectorRequestV1' - magento_mysql_rds: '#/components/schemas/magento_mysql_rds_NewConnectorRequestV1' - mailchimp: '#/components/schemas/mailchimp_NewConnectorRequestV1' - mandrill: '#/components/schemas/mandrill_NewConnectorRequestV1' - maria: '#/components/schemas/maria_NewConnectorRequestV1' - maria_azure: '#/components/schemas/maria_azure_NewConnectorRequestV1' - maria_rds: '#/components/schemas/maria_rds_NewConnectorRequestV1' - marin: '#/components/schemas/marin_NewConnectorRequestV1' - marketo: '#/components/schemas/marketo_NewConnectorRequestV1' - mavenlink: '#/components/schemas/mavenlink_NewConnectorRequestV1' - medallia: '#/components/schemas/medallia_NewConnectorRequestV1' - microsoft_lists: '#/components/schemas/microsoft_lists_NewConnectorRequestV1' - mixpanel: '#/components/schemas/mixpanel_NewConnectorRequestV1' - mongo: '#/components/schemas/mongo_NewConnectorRequestV1' - mongo_sharded: '#/components/schemas/mongo_sharded_NewConnectorRequestV1' - mysql: '#/components/schemas/mysql_NewConnectorRequestV1' - mysql_azure: '#/components/schemas/mysql_azure_NewConnectorRequestV1' - mysql_rds: '#/components/schemas/mysql_rds_NewConnectorRequestV1' - netsuite_suiteanalytics: '#/components/schemas/netsuite_suiteanalytics_NewConnectorRequestV1' - okta: '#/components/schemas/okta_NewConnectorRequestV1' - one_drive: '#/components/schemas/one_drive_NewConnectorRequestV1' - opendistro: '#/components/schemas/opendistro_NewConnectorRequestV1' - opensearch: '#/components/schemas/opensearch_NewConnectorRequestV1' - optimizely: '#/components/schemas/optimizely_NewConnectorRequestV1' - oracle: '#/components/schemas/oracle_NewConnectorRequestV1' - oracle_ebs: '#/components/schemas/oracle_ebs_NewConnectorRequestV1' - oracle_fusion_cloud_apps_crm: '#/components/schemas/oracle_fusion_cloud_apps_crm_NewConnectorRequestV1' - oracle_fusion_cloud_apps_fscm: '#/components/schemas/oracle_fusion_cloud_apps_fscm_NewConnectorRequestV1' - oracle_fusion_cloud_apps_hcm: '#/components/schemas/oracle_fusion_cloud_apps_hcm_NewConnectorRequestV1' - oracle_hva: '#/components/schemas/oracle_hva_NewConnectorRequestV1' - oracle_rac: '#/components/schemas/oracle_rac_NewConnectorRequestV1' - oracle_rds: '#/components/schemas/oracle_rds_NewConnectorRequestV1' - oracle_sap_hva: '#/components/schemas/oracle_sap_hva_NewConnectorRequestV1' - oracle_sap_hva_netweaver: '#/components/schemas/oracle_sap_hva_netweaver_NewConnectorRequestV1' - outbrain: '#/components/schemas/outbrain_NewConnectorRequestV1' - outreach: '#/components/schemas/outreach_NewConnectorRequestV1' - pardot: '#/components/schemas/pardot_NewConnectorRequestV1' - paypal: '#/components/schemas/paypal_NewConnectorRequestV1' - paypal_sandbox: '#/components/schemas/paypal_sandbox_NewConnectorRequestV1' - pendo: '#/components/schemas/pendo_NewConnectorRequestV1' - pinterest_ads: '#/components/schemas/pinterest_ads_NewConnectorRequestV1' - pipedrive: '#/components/schemas/pipedrive_NewConnectorRequestV1' - postgres: '#/components/schemas/postgres_NewConnectorRequestV1' - postgres_rds: '#/components/schemas/postgres_rds_NewConnectorRequestV1' - qualtrics: '#/components/schemas/qualtrics_NewConnectorRequestV1' - quickbooks: '#/components/schemas/quickbooks_NewConnectorRequestV1' - recharge: '#/components/schemas/recharge_NewConnectorRequestV1' - recurly: '#/components/schemas/recurly_NewConnectorRequestV1' - reddit_ads: '#/components/schemas/reddit_ads_NewConnectorRequestV1' - ringcentral: '#/components/schemas/ringcentral_NewConnectorRequestV1' - s3: '#/components/schemas/s3_NewConnectorRequestV1' - sage_intacct: '#/components/schemas/sage_intacct_NewConnectorRequestV1' - sailthru: '#/components/schemas/sailthru_NewConnectorRequestV1' - salesforce: '#/components/schemas/salesforce_NewConnectorRequestV1' - salesforce_commerce_cloud: '#/components/schemas/salesforce_commerce_cloud_NewConnectorRequestV1' - salesforce_marketing_cloud: '#/components/schemas/salesforce_marketing_cloud_NewConnectorRequestV1' - salesforce_sandbox: '#/components/schemas/salesforce_sandbox_NewConnectorRequestV1' - salesloft: '#/components/schemas/salesloft_NewConnectorRequestV1' - sap_business_by_design: '#/components/schemas/sap_business_by_design_NewConnectorRequestV1' - segment: '#/components/schemas/segment_NewConnectorRequestV1' - sendgrid: '#/components/schemas/sendgrid_NewConnectorRequestV1' - servicenow: '#/components/schemas/servicenow_NewConnectorRequestV1' - sftp: '#/components/schemas/sftp_NewConnectorRequestV1' - share_point: '#/components/schemas/share_point_NewConnectorRequestV1' - shopify: '#/components/schemas/shopify_NewConnectorRequestV1' - snapchat_ads: '#/components/schemas/snapchat_ads_NewConnectorRequestV1' - snowflake_db: '#/components/schemas/snowflake_db_NewConnectorRequestV1' - snowplow: '#/components/schemas/snowplow_NewConnectorRequestV1' - splunk: '#/components/schemas/splunk_NewConnectorRequestV1' - sql_server: '#/components/schemas/sql_server_NewConnectorRequestV1' - sql_server_hva: '#/components/schemas/sql_server_hva_NewConnectorRequestV1' - sql_server_rds: '#/components/schemas/sql_server_rds_NewConnectorRequestV1' - square: '#/components/schemas/square_NewConnectorRequestV1' - stripe: '#/components/schemas/stripe_NewConnectorRequestV1' - stripe_test: '#/components/schemas/stripe_test_NewConnectorRequestV1' - survey_monkey: '#/components/schemas/survey_monkey_NewConnectorRequestV1' - taboola: '#/components/schemas/taboola_NewConnectorRequestV1' - tiktok_ads: '#/components/schemas/tiktok_ads_NewConnectorRequestV1' - twilio: '#/components/schemas/twilio_NewConnectorRequestV1' - twitter: '#/components/schemas/twitter_NewConnectorRequestV1' - twitter_ads: '#/components/schemas/twitter_ads_NewConnectorRequestV1' - typeform: '#/components/schemas/typeform_NewConnectorRequestV1' - uservoice: '#/components/schemas/uservoice_NewConnectorRequestV1' - webhooks: '#/components/schemas/webhooks_NewConnectorRequestV1' - woocommerce: '#/components/schemas/woocommerce_NewConnectorRequestV1' - workday: '#/components/schemas/workday_NewConnectorRequestV1' - workday_hcm: '#/components/schemas/workday_hcm_NewConnectorRequestV1' - xero: '#/components/schemas/xero_NewConnectorRequestV1' - yahoo_gemini: '#/components/schemas/yahoo_gemini_NewConnectorRequestV1' - youtube_analytics: '#/components/schemas/youtube_analytics_NewConnectorRequestV1' - zendesk: '#/components/schemas/zendesk_NewConnectorRequestV1' - zendesk_chat: '#/components/schemas/zendesk_chat_NewConnectorRequestV1' - zendesk_sell: '#/components/schemas/zendesk_sell_NewConnectorRequestV1' - zendesk_sunshine: '#/components/schemas/zendesk_sunshine_NewConnectorRequestV1' - zoho_crm: '#/components/schemas/zoho_crm_NewConnectorRequestV1' - zuora: '#/components/schemas/zuora_NewConnectorRequestV1' - zuora_sandbox: '#/components/schemas/zuora_sandbox_NewConnectorRequestV1' - SyncConnectorRequest: - type: object - properties: - force: - type: boolean - description: 'If force is true and the connector is currently syncing, it will stop the sync and re-run it. If force is false, the connector will sync only if it isn''t currently syncing. The default value is false' - ReloadStandardConfigRequest: - type: object - properties: - exclude_mode: - type: string - description: Specifies whether all schemas and tables will be enabled or disabled in the standard config - ColumnMetadataResponse: - type: object - properties: - id: - type: string - description: The unique column identifier - name_in_source: - type: string - description: The column name in the source - type_in_destination: - type: string - description: The column type in the destination - is_foreign_key: - type: boolean - description: The boolean specifying whether the column is a foreign key - is_primary_key: - type: boolean - description: The boolean specifying whether the column is a primary key - type_in_source: - type: string - description: The column type in the source - parent_id: - type: string - description: The unique identifier of the table associated with the column - name_in_destination: - type: string - description: The column name in the destination - TableMetadataResponse: - type: object - properties: - id: - type: string - description: The unique table identifier - name_in_source: - type: string - description: The table name in the source - parent_id: - type: string - description: The unique identifier of the schema associated with the table - name_in_destination: - type: string - description: The table name in the destination - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - column_config: - id: fivetran.connectors.column_config - name: column_config - title: Column Config - methods: - modify_connector_column_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas~1{schemaName}~1tables~1{tableName}~1columns~1{columnName}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - connector_column_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas~1{schema}~1tables~1{table}~1columns/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _connector_column_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas~1{schema}~1tables~1{table}~1columns/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/column_config/methods/connector_column_config' - insert: [] - update: [] - delete: [] - connectors: - id: fivetran.connectors.connectors - name: connectors - title: Connectors - methods: - connect_card: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1connect-card/post' - response: - mediaType: application/json - openAPIDocKey: '200' - resync_connector: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1resync/post' - response: - mediaType: application/json - openAPIDocKey: '200' - run_setup_tests: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1test/post' - response: - mediaType: application/json - openAPIDocKey: '200' - connector_details: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _connector_details: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_connector: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_connector: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - create_connector: - operation: - $ref: '#/paths/~1v1~1connectors/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sync_connector: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1sync/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/connectors/methods/connector_details' - insert: - - $ref: '#/components/x-stackQL-resources/connectors/methods/create_connector' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/connectors/methods/delete_connector' - metadata: - id: fivetran.connectors.metadata - name: metadata - title: Metadata - methods: - connectors: - operation: - $ref: '#/paths/~1v1~1metadata~1{name}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - connector_config: - operation: - $ref: '#/paths/~1v1~1metadata~1{name}~1{service}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - schemas: - id: fivetran.connectors.schemas - name: schemas - title: Schemas - methods: - connector_schema_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _connector_schema_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_connector_schema_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_connector_database_schema_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas~1{schemaName}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - reload_connector_schema_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas~1reload/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/schemas/methods/connector_schema_config' - insert: [] - update: [] - delete: [] - table_config: - id: fivetran.connectors.table_config - name: table_config - title: Table Config - methods: - resync_tables: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas~1tables~1resync/post' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_connector_table_config: - operation: - $ref: '#/paths/~1v1~1connectors~1{connectorId}~1schemas~1{schemaName}~1tables~1{tableName}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - schema_metadata: - id: fivetran.connectors.schema_metadata - name: schema_metadata - title: Schema Metadata - methods: - schema_metadata: - operation: - $ref: '#/paths/~1v1~1metadata~1connectors~1{connectorId}~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _schema_metadata: - operation: - $ref: '#/paths/~1v1~1metadata~1connectors~1{connectorId}~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/schema_metadata/methods/schema_metadata' - insert: [] - update: [] - delete: [] - column_metadata: - id: fivetran.connectors.column_metadata - name: column_metadata - title: Column Metadata - methods: - column_metadata: - operation: - $ref: '#/paths/~1v1~1metadata~1connectors~1{connectorId}~1columns/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _column_metadata: - operation: - $ref: '#/paths/~1v1~1metadata~1connectors~1{connectorId}~1columns/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/column_metadata/methods/column_metadata' - insert: [] - update: [] - delete: [] - table_metadata: - id: fivetran.connectors.table_metadata - name: table_metadata - title: Table Metadata - methods: - table_metadata: - operation: - $ref: '#/paths/~1v1~1metadata~1connectors~1{connectorId}~1tables/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _table_metadata: - operation: - $ref: '#/paths/~1v1~1metadata~1connectors~1{connectorId}~1tables/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/table_metadata/methods/table_metadata' - insert: [] - update: [] - delete: [] -paths: - '/v1/connectors/{connectorId}/schemas/{schemaName}/tables/{tableName}/columns/{columnName}': - patch: - tags: - - Connector Schema Management - summary: Modify a Connector Column Config - description: Updates the column config within your table for an existing connector within your Fivetran account - operationId: modify_connector_column_config - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: schemaName - in: path - description: The database schema name within your destination (different from the connector schema) - required: true - schema: - type: string - - name: tableName - in: path - description: The table name within your database schema - required: true - schema: - type: string - - name: columnName - in: path - description: The column name within your table - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ColumnUpdateRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/StandardConfigResponse' - type: object - '/v1/connectors/{connectorId}/connect-card': - post: - tags: - - Connector Management - summary: Connect Card - description: Generates the Connect Card URI for the connector - operationId: connect_card - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ConnectCardConfigRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/ConnectorConnectCardResponse' - type: object - '/v1/metadata/{name}': - get: - tags: - - Connector Management - summary: Retrieve source metadata - description: 'Returns all available source types within your Fivetran account. This endpoint makes it easier to display Fivetran connectors within your application because it provides metadata including the proper source name (‘Facebook Ad Account’ instead of facebook_ad_account), the source icon, and links to Fivetran resources. As we update source names and icons, that metadata will automatically update within this endpoint' - operationId: metadata_connectors - parameters: - - name: cursor - in: query - description: 'The paging cursor. Read more about [pagination in our documentation](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: 'The number of records to fetch per page, accepts a number in the range 1..1000. The default value is 100' - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/MetadataResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - '/v1/connectors/{connectorId}/schemas': - get: - tags: - - Connector Schema Management - summary: Retrieve a Connector Schema Config - description: Returns the connector schema config for an existing connector within your Fivetran account - operationId: connector_schema_config - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/StandardConfigResponse' - type: object - patch: - tags: - - Connector Schema Management - summary: Modify a Connector Schema Config - description: Updates the schema config for an existing connector within your Fivetran account (for a single schema for a connector with multiple schemas) - operationId: modify_connector_schema_config - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/StandardConfigUpdateRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/StandardConfigResponse' - type: object - '/v1/connectors/{connectorId}/resync': - post: - tags: - - Connector Management - summary: Re-sync Connector Data (Historical Sync) - description: 'Triggers a full historical sync of a connector or multiple schema tables within a connector. If the connector is paused, the table sync will be scheduled to be performed when the connector is re-enabled. If there is a data sync already in progress, we will try to complete it. If it fails, the request will be declined and the HTTP 409 Conflict error will be returned.' - operationId: resync_connector - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ResyncConnectorRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - type: object - '404': - description: Not found error - '/v1/connectors/{connectorId}/test': - post: - tags: - - Connector Management - summary: Run connector setup tests - description: Runs the setup tests for an existing connector within your Fivetran account. - operationId: run_setup_tests - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunSetupTestsRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/ConnectorResponseV1' - type: object - '404': - description: Not found error - '/v1/connectors/{connectorId}/schemas/tables/resync': - post: - tags: - - Connector Schema Management - summary: Re-sync Connector Table Data - description: Triggers a historical sync of all data for multiple schema tables within a connector. This action does not override the standard sync frequency you defined in the Fivetran dashboard. - operationId: resync_tables - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - type: object - additionalProperties: - uniqueItems: true - type: array - items: - type: string - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - type: object - '/v1/metadata/connectors/{connectorId}/schemas': - get: - tags: - - Metadata Management - summary: Retrieve schema metadata - description: Returns schema-level metadata for an existing connector within your Fivetran account. - operationId: schema_metadata - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within your Fivetran account - required: true - schema: - type: string - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/SchemaMetadataResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - '/v1/connectors/{connectorId}/schemas/{schemaName}': - patch: - tags: - - Connector Schema Management - summary: Modify a Connector Database Schema Config - description: Updates the database schema config for an existing connector within your Fivetran account (for a single schema within a connector with multiple schemas) - operationId: modify_connector_database_schema_config - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: schemaName - in: path - description: The database schema name within your destination (different from the connector schema) - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SchemaUpdateRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/StandardConfigResponse' - type: object - '/v1/connectors/{connectorId}/schemas/{schema}/tables/{table}/columns': - get: - tags: - - Connector Schema Management - summary: Retrieve Source Table Columns Config - description: Returns the source table columns config for an existing connector within your Fivetran account - operationId: connector_column_config - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: schema - in: path - description: The database schema name within your destination - required: true - schema: - type: string - - name: table - in: path - description: The table name within your database schema - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/TableColumnsConfigResponse' - type: object - '/v1/connectors/{connectorId}': - get: - tags: - - Connector Management - summary: Retrieve Connector Details - description: Returns a connector object if a valid identifier was provided - operationId: connector_details - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/ConnectorResponseV1' - type: object - delete: - tags: - - Connector Management - summary: Delete a Connector - description: Deletes a connector from your Fivetran account. - operationId: delete_connector - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - type: object - '404': - description: Not found error - patch: - tags: - - Connector Management - summary: Modify a Connector - description: Updates the information for an existing connector within your Fivetran account. - operationId: modify_connector - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateConnectorRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/ConnectorResponseV1' - type: object - '404': - description: Not found error - /v1/connectors: - post: - tags: - - Connector Management - summary: Create a Connector - description: Creates a new connector within a specified group in your Fivetran account. Runs setup tests and returns testing results. - operationId: create_connector - parameters: - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NewConnectorRequestV1' - responses: - '201': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/ConnectorResponseV1' - type: object - '400': - description: Bad request - '/v1/metadata/{name}/{service}': - get: - tags: - - Connector Management - summary: Retrieve connector configuration metadata - description: Returns metadata of configuration parameters and authorization parameters for a specified connector type. - operationId: metadata_connector_config - parameters: - - name: service - in: path - description: '[The connector type](https://fivetran.com/docs/rest-api/getting-started#commonterms) identifier within the Fivetran system' - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/MetadataResponse' - type: object - '/v1/connectors/{connectorId}/sync': - post: - tags: - - Connector Management - summary: Sync Connector Data - description: Triggers a data sync for an existing connector within your Fivetran account without waiting for the next scheduled sync. This action does not override the standard sync frequency you defined in the Fivetran dashboard. - operationId: sync_connector - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SyncConnectorRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - type: object - '404': - description: Not found error - '/v1/connectors/{connectorId}/schemas/reload': - post: - tags: - - Connector Schema Management - summary: Reload a Connector Schema Config - description: Reloads the connector schema config for an existing connector within your Fivetran account - operationId: reload_connector_schema_config - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ReloadStandardConfigRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/StandardConfigResponse' - type: object - '/v1/metadata/connectors/{connectorId}/columns': - get: - tags: - - Metadata Management - summary: Retrieve column metadata - description: Returns column-level metadata for an existing connector within your Fivetran account. - operationId: column_metadata - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within your Fivetran account - required: true - schema: - type: string - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/ColumnMetadataResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - '/v1/metadata/connectors/{connectorId}/tables': - get: - tags: - - Metadata Management - summary: Retrieve table metadata - description: Returns table-level metadata for an existing connector within your Fivetran account. - operationId: table_metadata - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within your Fivetran account - required: true - schema: - type: string - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/TableMetadataResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - '/v1/connectors/{connectorId}/schemas/{schemaName}/tables/{tableName}': - patch: - tags: - - Connector Schema Management - summary: Modify a Connector Table Config - description: Updates the table config within your database schema for an existing connector within your Fivetran account - operationId: modify_connector_table_config - parameters: - - name: connectorId - in: path - description: The unique identifier for the connector within the Fivetran system - required: true - schema: - type: string - - name: schemaName - in: path - description: The database schema name within your destination (different from the connector schema) - required: true - schema: - type: string - - name: tableName - in: path - description: The table name within your database schema - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableUpdateRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/StandardConfigResponse' - type: object diff --git a/providers/src/fivetran/v00.00.00000/services/dbt_transformations.yaml b/providers/src/fivetran/v00.00.00000/services/dbt_transformations.yaml deleted file mode 100644 index f987e625..00000000 --- a/providers/src/fivetran/v00.00.00000/services/dbt_transformations.yaml +++ /dev/null @@ -1,899 +0,0 @@ -openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} -info: - title: OpenAPI Definition - dbt_transformations - description: DBT Transformation Management - version: v1 -security: - - basicAuth: [] -components: - schemas: - TransformationDetailsResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the DBT Model within the Fivetran system. - status: - type: string - description: The status of DBT Transformation. - enum: - - SUCCEEDED - - RUNNING - - FAILED - - PENDING - schedule: - $ref: '#/components/schemas/TransformationSchedule' - last_run: - type: string - description: The timestamp of last DBT Transformation run. - format: date-time - run_tests: - type: boolean - description: The field indicates whether the tests has been confugured for DBT Transformation. - model_ids: - type: array - description: Identifiers of related models - items: - type: string - output_model_name: - type: string - description: The DBT Model name. - dbt_project_id: - type: string - description: The unique identifier for the DBT Project within the Fivetran system. - dbt_model_id: - type: string - description: The unique identifier for the DBT Model within the Fivetran system. - connector_ids: - type: array - description: Identifiers of related connectors - items: - type: string - next_run: - type: string - description: The timestamp of next DBT Transformation run. - format: date-time - TransformationSchedule: - type: object - properties: - schedule_type: - type: string - description: Schedule type - enum: - - INTEGRATED - - TIME_OF_DAY - - INTERVAL - days_of_week: - uniqueItems: true - type: array - description: Days of week - items: - type: string - enum: - - MONDAY - - TUESDAY - - WEDNESDAY - - THURSDAY - - FRIDAY - - SATURDAY - - SUNDAY - interval: - type: integer - description: Interval. - format: int32 - time_of_day: - type: string - description: Time of day - UpdateTransformationRequest: - type: object - properties: - schedule: - $ref: '#/components/schemas/TransformationSchedule' - run_tests: - type: boolean - description: The field indicates whether the tests has been confugured for DBT Transformation. - DbtProjectDetailsResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the DBT Model within the Fivetran system. - folder_path: - type: string - description: Folder in Git repo. - created_at: - type: string - description: The timestamp when DBT project was created. - format: date-time - target_name: - type: string - description: Target name to set or override the value from the deployment.yaml. - git_remote_url: - type: string - description: Git remote url. - default_schema: - type: string - description: Default schema in destination. - group_id: - type: string - description: The unique identifier for the Group within the Fivetran system. - public_key: - type: string - description: Public key to grant Fivetran SSH access to git repository. - created_by_id: - type: string - description: The unique identifier for the User within the Fivetran system. - git_branch: - type: string - description: Git branch. - DbtProjectTestResponse: - type: object - properties: - setup_tests: - type: array - description: Setup tests results - items: - $ref: '#/components/schemas/SetupTestResultResponse' - dbt_project_id: - type: string - description: The unique identifier for the DBT Project within the Fivetran system. - SetupTestResultResponse: - type: object - properties: - title: - type: string - description: Setup test title. - status: - type: string - description: 'The current state of the connector. ' - message: - type: string - description: Setup test message. - details: - type: object - description: Setup test details. - TransformationResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the DBT Model within the Fivetran system. - status: - type: string - description: The status of DBT Transformation. - enum: - - SUCCEEDED - - RUNNING - - FAILED - - PENDING - schedule: - $ref: '#/components/schemas/TransformationSchedule' - last_run: - type: string - description: The timestamp of last DBT Transformation run. - format: date-time - run_tests: - type: boolean - description: The field indicates whether the tests has been confugured for DBT Transformation. - output_model_name: - type: string - description: The DBT Model name. - dbt_project_id: - type: string - description: The unique identifier for the DBT Project within the Fivetran system. - dbt_model_id: - type: string - description: The unique identifier for the DBT Model within the Fivetran system. - next_run: - type: string - description: The timestamp of next DBT Transformation run. - format: date-time - NewTransformationRequest: - type: object - properties: - dbt_model_id: - type: string - description: The unique identifier for the DBT Model within the Fivetran system. - schedule: - $ref: '#/components/schemas/TransformationSchedule' - run_tests: - type: boolean - description: The field indicates whether the tests has been confugured for DBT Transformation. - DbtProjectResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the DBT Model within the Fivetran system. - created_at: - type: string - description: The timestamp when DBT project was created. - format: date-time - created_by_id: - type: string - description: The unique identifier for the User within the Fivetran system. - group_id: - type: string - description: The unique identifier for the Group within the Fivetran system. - NewDbtProjectRequest: - type: object - properties: - group_id: - type: string - description: The unique identifier for the Group within the Fivetran system. - dbt_version: - type: string - description: The version of dbt that should run the project. - git_remote_url: - type: string - description: Git remote url. - git_branch: - type: string - description: Git branch. - default_schema: - type: string - description: Default schema in destination. - folder_path: - type: string - description: Folder in Git repo. - target_name: - type: string - description: Target name to set or override the value from the deployment.yaml. - threads: - type: integer - description: The number of threads dbt will use. - format: int32 - DbtModelResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the DBT Model within the Fivetran system. - scheduled: - type: boolean - description: The unique identifier for the DBT Model within the Fivetran system. - model_name: - type: string - description: The DBT Model name. - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - dbt_transformations: - id: fivetran.dbt_transformations.dbt_transformations - name: dbt_transformations - title: Dbt Transformations - methods: - dbt_transformation_details: - operation: - $ref: '#/paths/~1v1~1dbt~1transformations~1{transformationId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _dbt_transformation_details: - operation: - $ref: '#/paths/~1v1~1dbt~1transformations~1{transformationId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_dbt_transformation: - operation: - $ref: '#/paths/~1v1~1dbt~1transformations~1{transformationId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_dbt_transformation: - operation: - $ref: '#/paths/~1v1~1dbt~1transformations~1{transformationId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/dbt_transformations/methods/dbt_transformation_details' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/dbt_transformations/methods/delete_dbt_transformation' - dbt_projects: - id: fivetran.dbt_transformations.dbt_projects - name: dbt_projects - title: Dbt Projects - methods: - dbt_project_details: - operation: - $ref: '#/paths/~1v1~1dbt~1projects~1{projectId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _dbt_project_details: - operation: - $ref: '#/paths/~1v1~1dbt~1projects~1{projectId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - test_dbt_project: - operation: - $ref: '#/paths/~1v1~1dbt~1projects~1{projectId}~1test/post' - response: - mediaType: application/json - openAPIDocKey: '200' - list_dbt_projects: - operation: - $ref: '#/paths/~1v1~1dbt~1projects/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_dbt_projects: - operation: - $ref: '#/paths/~1v1~1dbt~1projects/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_dbt_project: - operation: - $ref: '#/paths/~1v1~1dbt~1projects/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/dbt_projects/methods/dbt_project_details' - - $ref: '#/components/x-stackQL-resources/dbt_projects/methods/list_dbt_projects' - insert: - - $ref: '#/components/x-stackQL-resources/dbt_projects/methods/create_dbt_project' - update: [] - delete: [] - dbt_project_transformations: - id: fivetran.dbt_transformations.dbt_project_transformations - name: dbt_project_transformations - title: Dbt Project Transformations - methods: - list_dbt_project_transformations: - operation: - $ref: '#/paths/~1v1~1dbt~1projects~1{projectId}~1transformations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_dbt_project_transformations: - operation: - $ref: '#/paths/~1v1~1dbt~1projects~1{projectId}~1transformations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_dbt_transformation: - operation: - $ref: '#/paths/~1v1~1dbt~1projects~1{projectId}~1transformations/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/dbt_project_transformations/methods/list_dbt_project_transformations' - insert: - - $ref: '#/components/x-stackQL-resources/dbt_project_transformations/methods/create_dbt_transformation' - update: [] - delete: [] - dbt_project_models: - id: fivetran.dbt_transformations.dbt_project_models - name: dbt_project_models - title: Dbt Project Models - methods: - list_dbt_project_models: - operation: - $ref: '#/paths/~1v1~1dbt~1projects~1{projectId}~1models/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_dbt_project_models: - operation: - $ref: '#/paths/~1v1~1dbt~1projects~1{projectId}~1models/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/dbt_project_models/methods/list_dbt_project_models' - insert: [] - update: [] - delete: [] - dbt_models: - id: fivetran.dbt_transformations.dbt_models - name: dbt_models - title: Dbt Models - methods: - dbt_model_details: - operation: - $ref: '#/paths/~1v1~1dbt~1models~1{modelId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _dbt_model_details: - operation: - $ref: '#/paths/~1v1~1dbt~1models~1{modelId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/dbt_models/methods/dbt_model_details' - insert: [] - update: [] - delete: [] -paths: - '/v1/dbt/transformations/{transformationId}': - get: - tags: - - DBT Transformation Management - summary: Retrieve DBT Transformation Details - description: Returns a DBT Transformation details if a valid identifier was provided. - operationId: dbt_transformation_details - parameters: - - name: transformationId - in: path - description: The unique identifier for the DBT Transformation within the Fivetran system. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/TransformationDetailsResponse' - type: object - delete: - tags: - - DBT Transformation Management - summary: Delete DBT Transformation - description: Deletes a DBT Transformation from your DBT Project. - operationId: delete_dbt_transformation - parameters: - - name: transformationId - in: path - description: The unique identifier for the DBT Transformation within the Fivetran system. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - type: object - patch: - tags: - - DBT Transformation Management - summary: Modify DBT Transformation - description: Updates information for an existing DBT Transformation. - operationId: modify_dbt_transformation - parameters: - - name: transformationId - in: path - description: The unique identifier for the DBT Transformation within the Fivetran system. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateTransformationRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/TransformationDetailsResponse' - type: object - '/v1/dbt/projects/{projectId}': - get: - tags: - - DBT Transformation Management - summary: Retrieve DBT Project Details - description: Returns a DBT Project details if a valid identifier was provided. - operationId: dbt_project_details - parameters: - - name: projectId - in: path - description: The unique identifier for the DBT Project within the Fivetran system. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/DbtProjectDetailsResponse' - type: object - '/v1/dbt/projects/{projectId}/test': - post: - tags: - - DBT Transformation Management - summary: Test DBT Project - description: Runs setup tests for DBT Project. - operationId: test_dbt_project - parameters: - - name: projectId - in: path - description: The unique identifier for the DBT Project within the Fivetran system. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/DbtProjectTestResponse' - type: object - '/v1/dbt/projects/{projectId}/transformations': - get: - tags: - - DBT Transformation Management - summary: List All DBT Transformations - description: Returns a list of all DBT Transformations within DBT Project. - operationId: list_dbt_project_transformations - parameters: - - name: projectId - in: path - description: The unique identifier for the DBT Project within the Fivetran system. - required: true - schema: - type: string - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/TransformationResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - post: - tags: - - DBT Transformation Management - summary: Create DBT Transformation - description: Creates a new DBT Transformation within a specified DBT Project. - operationId: create_dbt_transformation - parameters: - - name: projectId - in: path - description: The unique identifier for the DBT Project within the Fivetran system. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NewTransformationRequest' - responses: - '201': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/TransformationDetailsResponse' - type: object - /v1/dbt/projects: - get: - tags: - - DBT Transformation Management - summary: List All DBT Projects - description: Returns a list of all DBT Projects within your Fivetran account. - operationId: list_dbt_projects - parameters: - - name: group_id - in: query - description: The unique identifier for the Group within the Fivetran system. - required: false - schema: - type: string - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/DbtProjectResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - post: - tags: - - DBT Transformation Management - summary: Create DBT Project - description: Creates a new DBT Project within a specified Group. - operationId: create_dbt_project - parameters: - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NewDbtProjectRequest' - responses: - '201': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/DbtProjectDetailsResponse' - type: object - '/v1/dbt/projects/{projectId}/models': - get: - tags: - - DBT Transformation Management - summary: List All DBT Models - description: Returns a list of all DBT Models within DBT Project. - operationId: list_dbt_project_models - parameters: - - name: projectId - in: path - description: The unique identifier for the DBT Project within the Fivetran system. - required: true - schema: - type: string - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/DbtModelResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - '/v1/dbt/models/{modelId}': - get: - tags: - - DBT Transformation Management - summary: Retrieve DBT Model Details - description: Returns a DBT Model details if a valid identifier was provided. - operationId: dbt_model_details - parameters: - - name: modelId - in: path - description: The unique identifier for the DBT Model within the Fivetran system. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/DbtModelResponse' - type: object diff --git a/providers/src/fivetran/v00.00.00000/services/destinations.yaml b/providers/src/fivetran/v00.00.00000/services/destinations.yaml index 8afce4b2..2a9358c7 100644 --- a/providers/src/fivetran/v00.00.00000/services/destinations.yaml +++ b/providers/src/fivetran/v00.00.00000/services/destinations.yaml @@ -1,300 +1,96 @@ openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} info: - title: OpenAPI Definition - destinations - description: Destination Management + title: Fivetran Destinations API + description: Destinations and their setup tests. version: v1 -security: - - basicAuth: [] -components: - schemas: - NewDestinationRequest: - required: - - group_id - - service - - time_zone_offset - type: object - properties: - group_id: - type: string - description: The unique identifier for the group within the Fivetran system. - example: String - service: - type: string - description: The name for the destination type within the Fivetran system. - example: String - region: - type: string - description: Data processing location. This is where Fivetran will operate and run computation on data. - example: '>- optional_US_by_default: US, EU, APAC (Australia), UK, CANADA, SINGAPORE' - enum: - - GCP_US_EAST4 - - GCP_US_WEST1 - - GCP_EUROPE_WEST3 - - GCP_AUSTRALIA_SOUTHEAST1 - - GCP_NORTHAMERICA_NORTHEAST1 - - GCP_EUROPE_WEST2 - - GCP_ASIA_SOUTHEAST1 - - AWS_US_EAST_1 - - AWS_US_EAST_2 - - AWS_US_WEST_2 - - AWS_AP_SOUTHEAST_2 - - AWS_EU_CENTRAL_1 - - AWS_EU_WEST_1 - - ' AWS_EU_WEST_2' - - AZURE_EASTUS2 - - AZURE_AUSTRALIAEAST - - GCP_ASIA_SOUTH1 - time_zone_offset: - type: string - description: Determines the time zone for the Fivetran sync schedule. - example: 'integer: -11, 10 ... ,0 , ... +11, +12' - trust_certificates: - type: boolean - description: 'Specifies whether we should trust the certificate automatically. The default value is FALSE. If a certificate is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate).' - trust_fingerprints: - type: boolean - description: 'Specifies whether we should trust the SSH fingerprint automatically. The default value is FALSE. If a fingerprint is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint).' - run_setup_tests: - type: boolean - description: Specifies whether setup tests should be run automatically. - example: true - discriminator: - propertyName: service - mapping: - aurora_postgres_warehouse: '#/components/schemas/aurora_postgres_warehouse_NewDestinationRequest' - aurora_warehouse: '#/components/schemas/aurora_warehouse_NewDestinationRequest' - azure_postgres_warehouse: '#/components/schemas/azure_postgres_warehouse_NewDestinationRequest' - azure_sql_data_warehouse: '#/components/schemas/azure_sql_data_warehouse_NewDestinationRequest' - azure_sql_database: '#/components/schemas/azure_sql_database_NewDestinationRequest' - azure_sql_managed_db_warehouse: '#/components/schemas/azure_sql_managed_db_warehouse_NewDestinationRequest' - big_query: '#/components/schemas/big_query_NewDestinationRequest' - databricks: '#/components/schemas/databricks_NewDestinationRequest' - managed_big_query: '#/components/schemas/managed_big_query_NewDestinationRequest' - maria_rds_warehouse: '#/components/schemas/maria_rds_warehouse_NewDestinationRequest' - maria_warehouse: '#/components/schemas/maria_warehouse_NewDestinationRequest' - mysql_rds_warehouse: '#/components/schemas/mysql_rds_warehouse_NewDestinationRequest' - mysql_warehouse: '#/components/schemas/mysql_warehouse_NewDestinationRequest' - panoply: '#/components/schemas/panoply_NewDestinationRequest' - periscope_warehouse: '#/components/schemas/periscope_warehouse_NewDestinationRequest' - postgres_gcp_warehouse: '#/components/schemas/postgres_gcp_warehouse_NewDestinationRequest' - postgres_rds_warehouse: '#/components/schemas/postgres_rds_warehouse_NewDestinationRequest' - postgres_warehouse: '#/components/schemas/postgres_warehouse_NewDestinationRequest' - redshift: '#/components/schemas/redshift_NewDestinationRequest' - snowflake: '#/components/schemas/snowflake_NewDestinationRequest' - sql_server_rds_warehouse: '#/components/schemas/sql_server_rds_warehouse_NewDestinationRequest' - sql_server_warehouse: '#/components/schemas/sql_server_warehouse_NewDestinationRequest' - DestinationResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the destination within the Fivetran system - service: - type: string - description: The name for the destination type within the Fivetran system. - example: String - region: - type: string - description: Data processing location. This is where Fivetran will operate and run computation on data. - example: '>- optional_US_by_default: US, EU, APAC (Australia), UK, CANADA, SINGAPORE' - enum: - - GCP_US_EAST4 - - GCP_US_WEST1 - - GCP_EUROPE_WEST3 - - GCP_AUSTRALIA_SOUTHEAST1 - - GCP_NORTHAMERICA_NORTHEAST1 - - GCP_EUROPE_WEST2 - - GCP_ASIA_SOUTHEAST1 - - AWS_US_EAST_1 - - AWS_US_EAST_2 - - AWS_US_WEST_2 - - AWS_AP_SOUTHEAST_2 - - AWS_EU_CENTRAL_1 - - AWS_EU_WEST_1 - - ' AWS_EU_WEST_2' - - AZURE_EASTUS2 - - AZURE_AUSTRALIAEAST - - GCP_ASIA_SOUTH1 - setup_status: - type: string - description: Destination setup status - group_id: - type: string - description: The unique identifier for the group within the Fivetran system. - example: String - time_zone_offset: - type: string - description: Determines the time zone for the Fivetran sync schedule. - example: 'integer: -11, 10 ... ,0 , ... +11, +12' - setup_tests: - type: array - description: Setup tests results for this destination - items: - $ref: '#/components/schemas/SetupTestResultResponse' - discriminator: - propertyName: service - mapping: - aurora_postgres_warehouse: '#/components/schemas/aurora_postgres_warehouse_DestinationResponse' - aurora_warehouse: '#/components/schemas/aurora_warehouse_DestinationResponse' - azure_postgres_warehouse: '#/components/schemas/azure_postgres_warehouse_DestinationResponse' - azure_sql_data_warehouse: '#/components/schemas/azure_sql_data_warehouse_DestinationResponse' - azure_sql_database: '#/components/schemas/azure_sql_database_DestinationResponse' - azure_sql_managed_db_warehouse: '#/components/schemas/azure_sql_managed_db_warehouse_DestinationResponse' - big_query: '#/components/schemas/big_query_DestinationResponse' - databricks: '#/components/schemas/databricks_DestinationResponse' - managed_big_query: '#/components/schemas/managed_big_query_DestinationResponse' - maria_rds_warehouse: '#/components/schemas/maria_rds_warehouse_DestinationResponse' - maria_warehouse: '#/components/schemas/maria_warehouse_DestinationResponse' - mysql_rds_warehouse: '#/components/schemas/mysql_rds_warehouse_DestinationResponse' - mysql_warehouse: '#/components/schemas/mysql_warehouse_DestinationResponse' - panoply: '#/components/schemas/panoply_DestinationResponse' - periscope_warehouse: '#/components/schemas/periscope_warehouse_DestinationResponse' - postgres_gcp_warehouse: '#/components/schemas/postgres_gcp_warehouse_DestinationResponse' - postgres_rds_warehouse: '#/components/schemas/postgres_rds_warehouse_DestinationResponse' - postgres_warehouse: '#/components/schemas/postgres_warehouse_DestinationResponse' - redshift: '#/components/schemas/redshift_DestinationResponse' - snowflake: '#/components/schemas/snowflake_DestinationResponse' - sql_server_rds_warehouse: '#/components/schemas/sql_server_rds_warehouse_DestinationResponse' - sql_server_warehouse: '#/components/schemas/sql_server_warehouse_DestinationResponse' - SetupTestResultResponse: - type: object - properties: - title: - type: string - description: Setup test title. - status: - type: string - description: 'The current state of the connector. ' - message: - type: string - description: Setup test message. - details: - type: object - description: Setup test details. - RunSetupTestsRequest: - type: object - properties: - trust_certificates: - type: boolean - description: 'Specifies whether we should trust the certificate automatically. The default value is FALSE. If a certificate is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate).' - trust_fingerprints: - type: boolean - description: 'Specifies whether we should trust the SSH fingerprint automatically. The default value is FALSE. If a fingerprint is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint).' - UpdateDestinationRequest: - type: object - properties: - region: - type: string - description: Data processing location. This is where Fivetran will operate and run computation on data. - example: '>- optional_US_by_default: US, EU, APAC (Australia), UK, CANADA, SINGAPORE' - enum: - - GCP_US_EAST4 - - GCP_US_WEST1 - - GCP_EUROPE_WEST3 - - GCP_AUSTRALIA_SOUTHEAST1 - - GCP_NORTHAMERICA_NORTHEAST1 - - GCP_EUROPE_WEST2 - - GCP_ASIA_SOUTHEAST1 - - AWS_US_EAST_1 - - AWS_US_EAST_2 - - AWS_US_WEST_2 - - AWS_AP_SOUTHEAST_2 - - AWS_EU_CENTRAL_1 - - AWS_EU_WEST_1 - - ' AWS_EU_WEST_2' - - AZURE_EASTUS2 - - AZURE_AUSTRALIAEAST - - GCP_ASIA_SOUTH1 - time_zone_offset: - type: string - description: Determines the time zone for the Fivetran sync schedule. - example: 'integer: -11, 10 ... ,0 , ... +11, +12' - trust_certificates: - type: boolean - description: 'Specifies whether we should trust the certificate automatically. The default value is FALSE. If a certificate is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination certificate](https://fivetran.com/docs/rest-api/certificates#approveadestinationcertificate).' - trust_fingerprints: - type: boolean - description: 'Specifies whether we should trust the SSH fingerprint automatically. The default value is FALSE. If a fingerprint is not trusted automatically, it has to be approved with [Certificates Management API Approve a destination fingerprint](https://fivetran.com/docs/rest-api/certificates#approveadestinationfingerprint).' - run_setup_tests: - type: boolean - description: Specifies whether setup tests should be run automatically. - example: true - config: - description: 'The connector setup configuration. Check possible config formats in [create method](/openapi/reference/v1/operation/create_destination/)' - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - destinations: - id: fivetran.destinations.destinations - name: destinations - title: Destinations - methods: - create_destination: - operation: - $ref: '#/paths/~1v1~1destinations/post' - response: - mediaType: application/json - openAPIDocKey: '201' - run_destination_setup_tests: - operation: - $ref: '#/paths/~1v1~1destinations~1{destinationId}~1test/post' - response: - mediaType: application/json - openAPIDocKey: '200' - destination_details: - operation: - $ref: '#/paths/~1v1~1destinations~1{destinationId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _destination_details: - operation: - $ref: '#/paths/~1v1~1destinations~1{destinationId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_destination: - operation: - $ref: '#/paths/~1v1~1destinations~1{destinationId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_destination: - operation: - $ref: '#/paths/~1v1~1destinations~1{destinationId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/destinations/methods/destination_details' - insert: - - $ref: '#/components/x-stackQL-resources/destinations/methods/create_destination' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/destinations/methods/delete_destination' paths: /v1/destinations: - post: + get: tags: - Destination Management - summary: Create destination - description: Creates a new destination within a specified group in your Fivetran account. - operationId: create_destination + summary: List All Destinations Within Account + description: Returns a list of all accessible destinations within your Fivetran account. + operationId: list_destinations parameters: - - name: Accept - in: header + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false schema: type: string - example: application/json;version=2 - default: application/json;version=2 + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Destinations list retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/DestinationResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + examples: + get_response: + value: + code: Success + data: + id: decent_dropsy + group_id: decent_dropsy + service: snowflake + region: GCP_US_EAST4 + time_zone_offset: '-5' + setup_status: connected + config: + host: your-account.snowflakecomputing.com + port: 443 + database: fivetran + auth: PASSWORD + user: fivetran_user + password: '******' + post: + tags: + - Destination Management + summary: Create a Destination + description: | + Creates a new destination within a specified group in your Fivetran account. + + > IMPORTANT: Groups and destinations are mapped 1:1 to each other. We do this mapping using the group's `id` value that we automatically generate when you create a group, and the destination's `group_id` value that you specify when you create a destination. This means that you must create a group in your Fivetran account before you can create a destination in it. + + > IMPORTANT: If you want to get the certificate details, do not set `trust_certificates` to `true` when you create a destination with our REST API. We can only provide the certificate details through the failed Validate Certificate setup test. For a full walkthrough, see [Get Destination Certificate Details](https://fivetran.com/docs/rest-api/tutorials/get-destination-certificate-details). + operationId: create_destination requestBody: content: application/json: @@ -320,15 +116,20 @@ paths: content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Created message: type: string description: Response status text + example: Destination has been created data: - $ref: '#/components/schemas/DestinationResponse' + $ref: '#/components/schemas/DestinationExtendedResponse' type: object examples: create_successful_response: @@ -361,11 +162,13 @@ paths: password: '******' '400': description: Bad request - '500': - description: Internal error content: application/json: examples: + service_not_supported: + value: + code: InvalidInput + message: Unsupported service 'service_id' invalid_input_group_id: value: code: InvalidInput @@ -374,119 +177,68 @@ paths: value: code: InvalidInput message: Field 'service' is required - '/v1/destinations/{destinationId}/test': - post: + '402': + description: Payment required + content: + application/json: + examples: + region_not_available_for_plan: + value: + code: AccountTierLimit + message: Region 'AWS_US_WEST_2' is forbidden for your account type + private_link_not_available_for_plan: + value: + code: AccountTierLimit + message: The `PrivateLink` connection type is forbidden for your account type + '404': + description: Not found + content: + application/json: + examples: + group_not_found: + value: + code: NotFound + message: Destination with id not found + /v1/destinations/{destination_id}: + get: tags: - Destination Management - summary: Run Destination Setup Tests - description: Runs the setup tests for an existing destination within your Fivetran account. - operationId: run_destination_setup_tests + summary: Retrieve Destination Details + description: | + Returns a destination object if a valid identifier was provided. + + To find a destination's unique identifier, call the [List All Groups](https://fivetran.com/docs/rest-api/groups#listallgroups) endpoint and search the response `items` for your target destination by its `name` field. The group's `id` value is also the destination's `id`, since groups and destinations are mapped 1:1. + operationId: destination_details parameters: - - name: destinationId + - name: destination_id in: path - description: The unique identifier for the destination within your Fivetran account. + description: The unique identifier for the destination within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RunSetupTestsRequest' - examples: - run_setup_tests_request: - value: - trust_certificates: true - trust_fingerprints: true responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Destination details retrieved successfully data: - $ref: '#/components/schemas/DestinationResponse' + $ref: '#/components/schemas/DestinationExtendedResponse' type: object examples: - run_setup_tests_response: - value: - code: Success - message: Setup tests have been completed - data: - id: destination_id - group_id: group_id - service: postgres_rds_warehouse - region: GCP_US_EAST4 - time_zone_offset: '-8' - setup_status: incomplete - setup_tests: - - title: Connecting to SSH tunnel - status: FAILED - message: Auth fail - config: - public_key: ssh-rsa ... fivetran user key - database: database_name - password: '******' - tunnel_port: '22' - port: '5432' - host: test.host.com - tunnel_host: test.tunnel.host.com - user: user_name - connection_method: SshTunnel - tunnel_user: tunnel_user_name - '404': - description: Not found error - '/v1/destinations/{destinationId}': - get: - tags: - - Destination Management - summary: Retrieve Destination Details - description: Returns a destination object if a valid identifier was provided. - operationId: destination_details - parameters: - - name: destinationId - in: path - description: The unique identifier for the destination within your Fivetran account. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/DestinationResponse' - type: object - examples: - get_response: + get_response: value: code: Success data: @@ -508,35 +260,34 @@ paths: delete: tags: - Destination Management - summary: Delete a destination + summary: Delete a Destination description: Deletes a destination from your Fivetran account. operationId: delete_destination parameters: - - name: destinationId + - name: destination_id in: path - description: The unique identifier for the destination within your Fivetran account. + description: The unique identifier for the destination within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 responses: '200': description: Successful response content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Destination with id 'string' has been deleted type: object examples: delete_response: @@ -550,22 +301,16 @@ paths: patch: tags: - Destination Management - summary: Modify a Destination + summary: Update a Destination description: Updates information for an existing destination within your Fivetran account. operationId: modify_destination parameters: - - name: destinationId + - name: destination_id in: path - description: The unique identifier for the destination within your Fivetran account. + description: The unique identifier for the destination within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json;version=2 - default: application/json;version=2 requestBody: content: application/json: @@ -575,7 +320,7 @@ paths: update_request: value: region: GCP_AUSTRALIA_SOUTHEAST1 - time_zone_offset: 10 + time_zone_offset: '+10' config: host: your-account.snowflakecomputing.com port: 1433 @@ -589,15 +334,20 @@ paths: content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Destination has been updated data: - $ref: '#/components/schemas/DestinationResponse' + $ref: '#/components/schemas/DestinationExtendedResponse' type: object examples: update_successful_response: @@ -609,7 +359,7 @@ paths: group_id: decent_dropsy service: snowflake region: GCP_AUSTRALIA_SOUTHEAST1 - time_zone_offset: 10 + time_zone_offset: '+10' setup_status: connected setup_tests: - title: Host Connection @@ -630,3 +380,754 @@ paths: password: '******' '404': description: Not found error + /v1/destinations/{destination_id}/test: + post: + tags: + - Destination Management + summary: Run Destination Setup Tests + description: Runs the setup tests for an existing destination within your Fivetran account. + operationId: run_destination_setup_tests + parameters: + - name: destination_id + in: path + description: The unique identifier for the destination within the Fivetran system. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RunSetupTestsRequest_run_destination_setup_tests' + examples: + run_setup_tests_request: + value: + trust_certificates: true + trust_fingerprints: true + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Setup tests have been completed + data: + $ref: '#/components/schemas/DestinationExtendedResponse' + type: object + examples: + run_setup_tests_response: + value: + code: Success + message: Setup tests have been completed + data: + id: destination_id + group_id: group_id + service: postgres_rds_warehouse + region: GCP_US_EAST4 + time_zone_offset: '-8' + setup_status: incomplete + setup_tests: + - title: Connecting to SSH tunnel + status: FAILED + message: Auth fail + config: + public_key: ssh-rsa ... fivetran user key + database: database_name + password: '******' + tunnel_port: '22' + port: '5432' + host: test.host.com + tunnel_host: test.tunnel.host.com + user: user_name + connection_method: SshTunnel + tunnel_user: tunnel_user_name + '404': + description: Not found error +components: + schemas: + DestinationResponse: + required: + - group_id + - id + - region + - service + - setup_status + - time_zone_offset + type: object + properties: + id: + type: string + description: The unique identifier for the destination within the Fivetran system + example: destination_id + service: + type: string + description: The name for the destination type within the Fivetran system. + example: snowflake + region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data. + example: GCP_US_EAST4 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + group_id: + type: string + description: The unique identifier for the group within the Fivetran system. + example: group_id + time_zone_offset: + type: string + description: Determines the time zone for the Fivetran sync schedule. + example: '+3' + enum: + - '-11' + - '-10' + - '-9' + - '-8' + - '-7' + - '-6' + - '-5' + - '-4' + - '-3' + - '-2' + - '-1' + - '0' + - '+1' + - '+2' + - '+3' + - '+4' + - '+5' + - '+6' + - '+7' + - '+8' + - '+9' + - '+10' + - '+11' + - '+12' + setup_status: + type: string + description: Destination setup status + example: CONNECTED + enum: + - INCOMPLETE + - CONNECTED + - BROKEN + daylight_saving_time_enabled: + type: boolean + description: Shift my UTC offset with daylight savings time (US Only) + example: true + private_link_id: + type: string + description: The unique identifier for the self-served private link that is used by the connection + example: private_link_id + networking_method: + type: string + enum: + - Directly + - PrivateLink + - SshTunnel + - ProxyAgent + local_processing_agent_id: + type: string + description: (Deprecated) The unique identifier for the hybrid deployment agent within the Fivetran system + example: local_processing_agent_id + hybrid_deployment_agent_id: + type: string + description: The unique identifier for the hybrid deployment agent within the Fivetran system + example: hybrid_deployment_agent_id + proxy_agent_id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system + example: proxy_agent_id + external_secrets_manager_id: + type: string + description: The unique identifier of the [External Secrets Manager](https://fivetran.com/docs/rest-api/api-reference/external-secrets-managers) instance. Destination service must [support](https://fivetran.com/docs/core-concepts/features/external-secret-managers#destinations) External Secrets Manager feature to use this field. + NewDestinationRequest: + required: + - group_id + - service + - time_zone_offset + type: object + properties: + group_id: + type: string + description: The unique identifier for the group within the Fivetran system. + example: group_id + service: + type: string + description: The name for the destination type within the Fivetran system. + example: snowflake + region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data. + example: GCP_US_WEST1 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + time_zone_offset: + type: string + description: Determines the time zone for the Fivetran sync schedule. + example: '+3' + enum: + - '-11' + - '-10' + - '-9' + - '-8' + - '-7' + - '-6' + - '-5' + - '-4' + - '-3' + - '-2' + - '-1' + - '0' + - '+1' + - '+2' + - '+3' + - '+4' + - '+5' + - '+6' + - '+7' + - '+8' + - '+9' + - '+10' + - '+11' + - '+12' + trust_certificates: + type: boolean + description: | + Specifies whether we should trust the certificate automatically. The default value is FALSE. If a certificate is not trusted automatically, it has to be approved by calling the [Approve destination certificate endpoint](https://fivetran.com/docs/rest-api/api-reference/certificates/approve-destination-certificate). + + > IMPORTANT: To capture the `hash` and `encoded_cert` values needed for approval, omit this field or set it to `false`. + example: true + trust_fingerprints: + type: boolean + description: | + Specifies whether we should trust the SSH fingerprint automatically. The default value is FALSE. If a fingerprint is not trusted automatically, it has to be approved by calling the [Approve destination fingerprint endpoint](https://fivetran.com/docs/rest-api/api-reference/certificates/approve-destination-fingerprint). + + > IMPORTANT: To capture the `hash` and `public_key` values needed for approval, omit this field or set it to `false`. + example: true + run_setup_tests: + type: boolean + description: Specifies whether setup tests should be run automatically. + example: true + daylight_saving_time_enabled: + type: boolean + description: Shift my UTC offset with daylight savings time (US Only) + example: true + hybrid_deployment_agent_id: + type: string + description: The unique identifier for the hybrid deployment agent within the Fivetran system + example: hybrid_deployment_agent_id + private_link_id: + type: string + description: The unique identifier for the self-served private link that is used by the connection + example: private_link_id + networking_method: + type: string + enum: + - Directly + - PrivateLink + - SshTunnel + - ProxyAgent + proxy_agent_id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system + example: proxy_agent_id + external_secrets_manager_id: + type: string + description: The unique identifier of the [External Secrets Manager](https://fivetran.com/docs/rest-api/api-reference/external-secrets-managers) instance. Destination service must [support](https://fivetran.com/docs/core-concepts/features/external-secret-managers#destinations) External Secrets Manager feature to use this field. + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + external_secrets_keys_config: + type: object + additionalProperties: true + description: The `external_secrets_keys_config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + DestinationExtendedResponse: + required: + - group_id + - id + - region + - service + - setup_status + - time_zone_offset + type: object + properties: + id: + type: string + description: The unique identifier for the destination within the Fivetran system + example: destination_id + service: + type: string + description: The name for the destination type within the Fivetran system. + example: snowflake + region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data. + example: GCP_US_EAST4 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + group_id: + type: string + description: The unique identifier for the group within the Fivetran system. + example: group_id + time_zone_offset: + type: string + description: Determines the time zone for the Fivetran sync schedule. + example: '+3' + enum: + - '-11' + - '-10' + - '-9' + - '-8' + - '-7' + - '-6' + - '-5' + - '-4' + - '-3' + - '-2' + - '-1' + - '0' + - '+1' + - '+2' + - '+3' + - '+4' + - '+5' + - '+6' + - '+7' + - '+8' + - '+9' + - '+10' + - '+11' + - '+12' + setup_status: + type: string + description: Destination setup status + example: CONNECTED + enum: + - INCOMPLETE + - CONNECTED + - BROKEN + daylight_saving_time_enabled: + type: boolean + description: Shift my UTC offset with daylight savings time (US Only) + example: true + private_link_id: + type: string + description: The unique identifier for the self-served private link that is used by the connection + example: private_link_id + networking_method: + type: string + enum: + - Directly + - PrivateLink + - SshTunnel + - ProxyAgent + local_processing_agent_id: + type: string + description: (Deprecated) The unique identifier for the hybrid deployment agent within the Fivetran system + example: local_processing_agent_id + hybrid_deployment_agent_id: + type: string + description: The unique identifier for the hybrid deployment agent within the Fivetran system + example: hybrid_deployment_agent_id + proxy_agent_id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system + example: proxy_agent_id + external_secrets_manager_id: + type: string + description: The unique identifier of the [External Secrets Manager](https://fivetran.com/docs/rest-api/api-reference/external-secrets-managers) instance. Destination service must [support](https://fivetran.com/docs/core-concepts/features/external-secret-managers#destinations) External Secrets Manager feature to use this field. + setup_tests: + type: array + description: Setup tests results for this destination + items: + $ref: '#/components/schemas/SetupTestResultResponse' + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + external_secrets_keys_config: + type: object + additionalProperties: true + description: The `external_secrets_keys_config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + UpdateDestinationRequest: + required: + - time_zone_offset + type: object + properties: + region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data. + example: GCP_US_EAST4 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + config: + description: The setup configuration. Check possible config formats in [create method](https://fivetran.com/docs/rest-api/api-reference/destinations/create-destination/) + type: string + trust_certificates: + type: boolean + description: | + Specifies whether we should trust the certificate automatically. The default value is FALSE. If a certificate is not trusted automatically, it has to be approved by calling the [Approve destination certificate endpoint](https://fivetran.com/docs/rest-api/api-reference/certificates/approve-destination-certificate). + + > IMPORTANT: To capture the `hash` and `encoded_cert` values needed for approval, omit this field or set it to `false`. + example: true + trust_fingerprints: + type: boolean + description: | + Specifies whether we should trust the SSH fingerprint automatically. The default value is FALSE. If a fingerprint is not trusted automatically, it has to be approved by calling the [Approve destination fingerprint endpoint](https://fivetran.com/docs/rest-api/api-reference/certificates/approve-destination-fingerprint). + + > IMPORTANT: To capture the `hash` and `public_key` values needed for approval, omit this field or set it to `false`. + example: true + time_zone_offset: + type: string + description: Determines the time zone for the Fivetran sync schedule. + example: '+3' + enum: + - '-11' + - '-10' + - '-9' + - '-8' + - '-7' + - '-6' + - '-5' + - '-4' + - '-3' + - '-2' + - '-1' + - '0' + - '+1' + - '+2' + - '+3' + - '+4' + - '+5' + - '+6' + - '+7' + - '+8' + - '+9' + - '+10' + - '+11' + - '+12' + run_setup_tests: + type: boolean + description: Specifies whether setup tests should be run automatically. + example: true + daylight_saving_time_enabled: + type: boolean + description: Shift my UTC offset with daylight savings time (US Only) + example: true + hybrid_deployment_agent_id: + type: string + private_link_id: + type: string + description: The unique identifier for the self-served private link that is used by the connection + example: private_link_id + networking_method: + type: string + enum: + - Directly + - PrivateLink + - SshTunnel + - ProxyAgent + proxy_agent_id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system + example: proxy_agent_id + external_secrets_manager_id: + type: string + description: The unique identifier of the [External Secrets Manager](https://fivetran.com/docs/rest-api/api-reference/external-secrets-managers) instance. Destination service must [support](https://fivetran.com/docs/core-concepts/features/external-secret-managers#destinations) External Secrets Manager feature to use this field. + external_secrets_keys_config: + description: The setup configuration keys to be stored in external secrets manager. Check possible config formats in [create method](https://fivetran.com/docs/rest-api/api-reference/destinations/create-destination/) + RunSetupTestsRequest_run_destination_setup_tests: + type: object + properties: + trust_certificates: + type: boolean + trust_fingerprints: + type: boolean + SetupTestResultResponse: + required: + - status + - title + type: object + properties: + title: + type: string + description: 'A human-readable name for the setup test step. For example: Validate Login, Test Connection, Check Permissions.' + example: Validate Login + status: + type: string + description: 'The result of the individual setup test step. Possible values: PASSED, FAILED, SKIPPED.' + example: FAILED + enum: + - PASSED + - SKIPPED + - WARNING + - FAILED + - JOB_FAILED + message: + type: string + description: 'The result message for the setup test step. For example: Invalid login credentials.' + example: Invalid login credentials. + details: + type: string + description: Additional diagnostic information about the setup test result. Populated when the status is FAILED and more context is available beyond the message. (opaque JSON object) + example: Authentication failed (401 Unauthorized). Verify the provided credentials and permissions. + JsonNode: + type: string + description: (opaque JSON object) + x-stackQL-resources: + destinations: + id: fivetran.destinations.destinations + name: destinations + title: Destinations + methods: + list: + operation: + $ref: '#/paths/~1v1~1destinations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1destinations/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + run_setup_tests: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1destinations~1{destination_id}~1test/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/destinations/methods/get' + - $ref: '#/components/x-stackQL-resources/destinations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/destinations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/destinations/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/destinations/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/external_logging.yaml b/providers/src/fivetran/v00.00.00000/services/external_logging.yaml new file mode 100644 index 00000000..38d07b62 --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/external_logging.yaml @@ -0,0 +1,717 @@ +openapi: 3.0.1 +info: + title: Fivetran External Logging API + description: Log services at group and account level. + version: v1 +paths: + /v1/external-logging: + get: + tags: + - Log Service Management + summary: List All Log Services within Account + description: Returns a list of all accessible [logging services](https://fivetran.com/docs/logs/external-logs) within your Fivetran account. + operationId: list_log_services + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: External logging services retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/LogResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + post: + tags: + - Log Service Management + summary: Create a Group Log Service + description: Creates a new group-level [logging service](https://fivetran.com/docs/logs/external-logs) within a specified group in your Fivetran account. + operationId: add_log_service + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddLogRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: External logging service has been added + data: + $ref: '#/components/schemas/LogExtendedResponse' + type: object + /v1/external-logging/account: + get: + tags: + - Log Service Management + summary: Retrieve Account Log Service + description: Returns the account-level [logging service](https://fivetran.com/docs/logs/external-logs) if it exists. + operationId: get_account_log_service_details + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Account external logging service details retrieved successfully + data: + $ref: '#/components/schemas/LogExtendedResponse' + type: object + post: + tags: + - Log Service Management + summary: Create Account Log Service + description: Creates an account-level [logging service](https://fivetran.com/docs/logs/external-logs). + operationId: add_account_log_service + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddAccountLogRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Account external logging service has been added + data: + $ref: '#/components/schemas/LogExtendedResponse' + type: object + delete: + tags: + - Log Service Management + summary: Delete Account Log Service + description: Deletes the account-level [logging service](https://fivetran.com/docs/logs/external-logs). + operationId: delete_account_log_service + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Account external logging service has been deleted + type: object + patch: + tags: + - Log Service Management + summary: Update Account Log Service + description: Updates information for the account-level [logging service](https://fivetran.com/docs/logs/external-logs). + operationId: update_account_log_service + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateLogRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Account external logging service has been updated + data: + $ref: '#/components/schemas/LogExtendedResponse' + type: object + /v1/external-logging/account/test: + post: + tags: + - Log Service Management + summary: Run Account Log Service Setup Tests + description: Runs the setup tests for the account-level [logging service](https://fivetran.com/docs/logs/external-logs). + operationId: run_setup_tests_account_log_service + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Account external logging service setup tests have been completed + data: + $ref: '#/components/schemas/LoggingServiceSetupTestResponse' + type: object + /v1/external-logging/{log_id}: + get: + tags: + - Log Service Management + summary: Retrieve Group Log Service Details + description: Returns a group-level [logging service](https://fivetran.com/docs/logs/external-logs) object if a valid identifier was provided. + operationId: get_log_service_details + parameters: + - name: log_id + in: path + description: The unique identifier for the log service within the Fivetran system. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: External logging service details retrieved successfully + data: + $ref: '#/components/schemas/LogExtendedResponse' + type: object + delete: + tags: + - Log Service Management + summary: Delete a Group Log Service + description: Deletes a group-level [logging service](https://fivetran.com/docs/logs/external-logs) from your Fivetran account. + operationId: delete_log_service + parameters: + - name: log_id + in: path + description: The unique identifier for the log service within the Fivetran system. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: External logging service with id 'string' has been deleted + type: object + patch: + tags: + - Log Service Management + summary: Update a Group Log Service + description: Updates information for an existing group-level [logging service](https://fivetran.com/docs/logs/external-logs) within your Fivetran account. + operationId: update_log_service + parameters: + - name: log_id + in: path + description: The unique identifier for the log service within the Fivetran system. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateLogRequest_update_log_service' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: External logging service has been updated + data: + $ref: '#/components/schemas/LogExtendedResponse' + type: object + /v1/external-logging/{log_id}/test: + post: + tags: + - Log Service Management + summary: Run Group Log Service Setup Tests + description: Runs the setup tests for an existing group-level [logging service](https://fivetran.com/docs/logs/external-logs) within your Fivetran account. + operationId: run_setup_tests_log_service + parameters: + - name: log_id + in: path + description: The unique identifier for the log service within the Fivetran system. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Setup tests have been completed + data: + $ref: '#/components/schemas/LoggingServiceSetupTestResponse' + type: object +components: + schemas: + LogResponse: + required: + - enabled + - id + - service + type: object + properties: + id: + type: string + description: The unique identifier for the log service within the Fivetran system. + example: log_id + service: + type: string + description: 'The name of the log service type within the Fivetran system. We support the following log services: `azure_monitor_log`, `cloudwatch`, `datadog_log`, `dynatrace`, `grafana_loki`, `splunkLog`, `new_relic_log`, `stackdriver` (Google Cloud Logging).' + example: log_service_type + enabled: + type: boolean + description: The boolean value specifying whether the log service is enabled. + example: true + status: + description: Setup status of the log service. Present when a setup status exists for the log service. + type: object + properties: + tasks: + type: array + description: List of alerts describing issues with the log service configuration. + items: + $ref: '#/components/schemas/LogAlert' + setup_state: + type: string + description: 'Current setup state of the log service. Possible values: `connected` — log service is reachable and forwarding events; `broken` — configuration errors prevent log delivery; `incomplete` — setup has not been completed and log delivery is paused. Example: `connected`.' + example: connected + AddLogRequest: + type: object + properties: + group_id: + type: string + description: The unique identifier for the group within the Fivetran system + example: group_id + service: + type: string + description: 'The name of the log service type within the Fivetran system. We support the following log services: `azure_monitor_log`, `cloudwatch`, `datadog_log`, `dynatrace`, `grafana_loki`, `splunkLog`, `new_relic_log`, `stackdriver` (Google Cloud Logging).' + example: log_service_type + enabled: + type: boolean + description: The boolean value specifying whether the log service is enabled. + example: true + run_setup_tests: + type: boolean + description: When `true`, Fivetran runs setup tests immediately after creating or updating the log service and returns the results in the `setup_tests` field of the response. Defaults to `false`. + example: false + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + LogExtendedResponse: + required: + - enabled + - id + - service + type: object + properties: + id: + type: string + description: The unique identifier for the log service within the Fivetran system. + example: log_id + service: + type: string + description: 'The name of the log service type within the Fivetran system. We support the following log services: `azure_monitor_log`, `cloudwatch`, `datadog_log`, `dynatrace`, `grafana_loki`, `splunkLog`, `new_relic_log`, `stackdriver` (Google Cloud Logging).' + example: log_service_type + enabled: + type: boolean + description: The boolean value specifying whether the log service is enabled. + example: true + status: + description: Setup status of the log service. Present when a setup status exists for the log service. + type: object + properties: + tasks: + type: array + description: List of alerts describing issues with the log service configuration. + items: + $ref: '#/components/schemas/LogAlert' + setup_state: + type: string + description: 'Current setup state of the log service. Possible values: `connected` — log service is reachable and forwarding events; `broken` — configuration errors prevent log delivery; `incomplete` — setup has not been completed and log delivery is paused. Example: `connected`.' + example: connected + setup_tests: + type: array + description: Results of the most recent setup test run. + items: + $ref: '#/components/schemas/SetupTestResultResponse' + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + AddAccountLogRequest: + type: object + properties: + service: + type: string + description: 'The name of the log service type within the Fivetran system. We support the following log services: `azure_monitor_log`, `cloudwatch`, `datadog_log`, `dynatrace`, `grafana_loki`, `splunkLog`, `new_relic_log`, `stackdriver` (Google Cloud Logging).' + example: log_service_type + enabled: + type: boolean + description: The boolean value specifying whether the log service is enabled. + example: true + config: + $ref: '#/components/schemas/JsonNode' + run_setup_tests: + type: boolean + description: When `true`, Fivetran runs setup tests immediately after creating or updating the log service and returns the results in the `setup_tests` field of the response. Defaults to `false`. + example: false + UpdateLogRequest: + type: object + properties: + enabled: + type: boolean + description: The boolean value specifying whether the log service is enabled. + example: true + config: + description: The setup configuration. Check possible config formats in [create method](https://fivetran.com/docs/rest-api/api-reference/log-service-management/add-log-service/) + run_setup_tests: + type: boolean + description: When `true`, Fivetran runs setup tests immediately after creating or updating the log service and returns the results in the `setup_tests` field of the response. Defaults to `false`. + example: false + LoggingServiceSetupTestResponse: + type: object + properties: + setup_tests: + type: array + items: + $ref: '#/components/schemas/SetupTestResultResponse' + UpdateLogRequest_update_log_service: + type: object + properties: + enabled: + type: boolean + description: The boolean value specifying whether the log service is enabled. + example: true + config: + $ref: '#/components/schemas/JsonNode' + run_setup_tests: + type: boolean + description: When `true`, Fivetran runs setup tests immediately after creating or updating the log service and returns the results in the `setup_tests` field of the response. Defaults to `false`. + example: false + LogStatusResponse: + type: object + properties: + tasks: + type: array + description: List of alerts describing issues with the log service configuration. + items: + $ref: '#/components/schemas/LogAlert' + setup_state: + type: string + description: 'Current setup state of the log service. Possible values: `connected` — log service is reachable and forwarding events; `broken` — configuration errors prevent log delivery; `incomplete` — setup has not been completed and log delivery is paused. Example: `connected`.' + example: connected + SetupTestResultResponse: + required: + - status + - title + type: object + properties: + title: + type: string + description: 'A human-readable name for the setup test step. For example: Validate Login, Test Connection, Check Permissions.' + example: Validate Login + status: + type: string + description: 'The result of the individual setup test step. Possible values: PASSED, FAILED, SKIPPED.' + example: FAILED + enum: + - PASSED + - SKIPPED + - WARNING + - FAILED + - JOB_FAILED + message: + type: string + description: 'The result message for the setup test step. For example: Invalid login credentials.' + example: Invalid login credentials. + details: + type: string + description: Additional diagnostic information about the setup test result. Populated when the status is FAILED and more context is available beyond the message. (opaque JSON object) + example: Authentication failed (401 Unauthorized). Verify the provided credentials and permissions. + JsonNode: + type: string + description: (opaque JSON object) + LogAlert: + type: object + properties: + code: + type: string + description: Alert code identifying the type of issue. + example: reconnect_log + message: + type: string + description: Human-readable description of the issue. + example: Reconnect Logging Service + details: + type: string + description: Additional context or details for the alert. + example: Please provide required permissions + x-stackQL-resources: + log_services: + id: fivetran.external_logging.log_services + name: log_services + title: Log Services + methods: + list: + operation: + $ref: '#/paths/~1v1~1external-logging/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1external-logging/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1external-logging~1{log_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1external-logging~1{log_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1external-logging~1{log_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + run_setup_tests: + operation: + $ref: '#/paths/~1v1~1external-logging~1{log_id}~1test/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/log_services/methods/get' + - $ref: '#/components/x-stackQL-resources/log_services/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/log_services/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/log_services/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/log_services/methods/delete' + replace: [] + account_log_services: + id: fivetran.external_logging.account_log_services + name: account_log_services + title: Account Log Services + methods: + get: + operation: + $ref: '#/paths/~1v1~1external-logging~1account/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1external-logging~1account/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1external-logging~1account/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1external-logging~1account/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + run_setup_tests: + operation: + $ref: '#/paths/~1v1~1external-logging~1account~1test/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/account_log_services/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/account_log_services/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/account_log_services/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/account_log_services/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/external_secrets_managers.yaml b/providers/src/fivetran/v00.00.00000/services/external_secrets_managers.yaml new file mode 100644 index 00000000..1caf8e5a --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/external_secrets_managers.yaml @@ -0,0 +1,658 @@ +openapi: 3.0.1 +info: + title: Fivetran External Secrets Managers API + description: External secrets managers and the entities that use them. + version: v1 +paths: + /v1/external-secrets-managers: + get: + tags: + - Handling External Secrets Manager (ESM) resources + summary: List all External Secrets Managers + description: Returns a list of all External Secrets Manager instances within your Fivetran account. + operationId: list_esms + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Operation performed successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/SecretsManagerResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + examples: + list_response: + value: + code: Success + data: + items: + - id: lucky_tiger + type: AWS_SECRET_MANAGER + name: My AWS Secrets Manager + is_hybrid_deployment: false + created_at: '2024-01-01T00:00:00.000000Z' + updated_at: '2024-06-01T00:00:00.000000Z' + next_cursor: eyJza2lwIjoyfQ + post: + tags: + - Handling External Secrets Manager (ESM) resources + summary: Create an External Secrets Manager + description: Creates a new External Secrets Manager instance within your Fivetran account. + operationId: create_esm + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecretsManagerCreateRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Created + message: + type: string + description: Response status text + example: External Secrets Manager has been created + data: + $ref: '#/components/schemas/SecretsManagerResponse' + type: object + examples: + esm_response: + value: + code: Success + data: + id: lucky_tiger + type: AWS_SECRET_MANAGER + name: My AWS Secrets Manager + is_hybrid_deployment: false + created_at: '2024-01-01T00:00:00.000000Z' + updated_at: '2024-06-01T00:00:00.000000Z' + config: + role_arn: arn:aws:iam::123456789012:role/FivetranRole + external_id: fivetran_external_id + '400': + description: Validation error + content: + application/json: + examples: + bad_request: + value: + code: BadRequest + message: ESM config is required. + /v1/external-secrets-managers-entities: + get: + tags: + - Handling External Secrets Manager (ESM) resources + summary: List All Entities Using External Secrets Managers + description: Returns a list of all source connections and destinations that are using any External Secrets Manager within your Fivetran account. + operationId: list_esm_entities + parameters: + - name: esm_id + in: query + description: Filter by a specific External Secrets Manager ID. + required: false + schema: + type: string + example: lucky_tiger + example: lucky_tiger + - name: type + in: query + description: Filter by entity type. Accepted values are source, destination, or all. + required: false + schema: + type: string + example: source + example: source + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Operation performed successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/SecretsManagerEntityItem' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + examples: + entities_response: + value: + code: Success + data: + items: + - id: connection_id + type: SOURCE + name: my_schema + enabled: true + secret_manager_id: lucky_tiger + created_at: '2024-01-01T00:00:00.000000Z' + next_cursor: eyJza2lwIjoyfQ + /v1/external-secrets-managers/{esm_id}: + get: + tags: + - Handling External Secrets Manager (ESM) resources + summary: Retrieve External Secrets Manager Details + description: Returns the details of an existing External Secrets Manager instance. + operationId: get_esm_details + parameters: + - name: esm_id + in: path + description: The unique identifier of the External Secrets Manager instance. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Operation performed successfully + data: + $ref: '#/components/schemas/SecretsManagerResponse' + type: object + examples: + esm_response: + value: + code: Success + data: + id: lucky_tiger + type: AWS_SECRET_MANAGER + name: My AWS Secrets Manager + is_hybrid_deployment: false + created_at: '2024-01-01T00:00:00.000000Z' + updated_at: '2024-06-01T00:00:00.000000Z' + config: + role_arn: arn:aws:iam::123456789012:role/FivetranRole + external_id: fivetran_external_id + '404': + description: External Secrets Manager not found + content: + application/json: + examples: + not_found: + value: + code: NotFound + message: External Secrets Manager with 'lucky_tiger' id is not found. + delete: + tags: + - Handling External Secrets Manager (ESM) resources + summary: Delete an External Secrets Manager + description: Deletes an External Secrets Manager instance from your Fivetran account. The instance must not be in use by any source connections or destinations. + operationId: delete_esm + parameters: + - name: esm_id + in: path + description: The unique identifier of the External Secrets Manager instance. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Resource deleted successfully + type: object + examples: + delete_successful: + value: + code: Success + message: External Secrets Manager 'lucky_tiger' has been deleted. + '400': + description: External Secrets Manager is still in use + content: + application/json: + examples: + esm_in_use: + value: + code: BadRequest + message: Failed to delete External Secrets Manager with 'lucky_tiger' id, because it is used by 1 connection(s) and 0 destination(s). + '404': + description: External Secrets Manager not found + content: + application/json: + examples: + not_found: + value: + code: NotFound + message: External Secrets Manager with 'lucky_tiger' id is not found. + patch: + tags: + - Handling External Secrets Manager (ESM) resources + summary: Update an External Secrets Manager + description: Updates the configuration of an existing External Secrets Manager instance. + operationId: modify_esm + parameters: + - name: esm_id + in: path + description: The unique identifier of the External Secrets Manager instance. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecretsManagerUpdateRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Resource updated successfully + data: + $ref: '#/components/schemas/SecretsManagerResponse' + type: object + examples: + esm_response: + value: + code: Success + data: + id: lucky_tiger + type: AWS_SECRET_MANAGER + name: My AWS Secrets Manager + is_hybrid_deployment: false + created_at: '2024-01-01T00:00:00.000000Z' + updated_at: '2024-06-01T00:00:00.000000Z' + config: + role_arn: arn:aws:iam::123456789012:role/FivetranRole + external_id: fivetran_external_id + '400': + description: Validation error + content: + application/json: + examples: + bad_request: + value: + code: BadRequest + message: ESM config is required. + '404': + description: External Secrets Manager not found + content: + application/json: + examples: + not_found: + value: + code: NotFound + message: External Secrets Manager with 'lucky_tiger' id is not found. + /v1/external-secrets-managers/{esm_id}/entities: + get: + tags: + - Handling External Secrets Manager (ESM) resources + summary: List Entities Using an External Secrets Manager + description: Returns a list of source connections and destinations that are using a specific External Secrets Manager. + operationId: get_esm_entities + parameters: + - name: esm_id + in: path + description: The unique identifier of the External Secrets Manager instance. + required: true + schema: + type: string + - name: type + in: query + description: Filter by entity type. Accepted values are source, destination, or all. + required: false + schema: + type: string + example: source + example: source + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Operation performed successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/SecretsManagerEntityItem' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + examples: + entities_response: + value: + code: Success + data: + items: + - id: connection_id + type: SOURCE + name: my_schema + enabled: true + secret_manager_id: lucky_tiger + created_at: '2024-01-01T00:00:00.000000Z' + next_cursor: eyJza2lwIjoyfQ +components: + schemas: + SecretsManagerResponse: + type: object + properties: + id: + type: string + description: The unique identifier of the External Secrets Manager instance. + example: lucky_tiger + type: + type: string + description: The ESM provider type + example: AWS_SECRET_MANAGER + enum: + - AWS_SECRET_MANAGER + - AZURE_KEY_VAULT + - HASHICORP_VAULT + name: + type: string + description: The name of the ESM instance + example: My AWS Secrets Manager + config: + type: object + additionalProperties: + type: string + description: (opaque JSON object) + description: Provider-specific configuration. + is_hybrid_deployment: + type: boolean + description: Whether this External Secrets Manager instance is compatible with Hybrid Deployment environments. + example: true + created_at: + type: string + description: The timestamp when the ESM instance was created. + format: date-time + example: '2026-05-20T00:00:00Z' + updated_at: + type: string + description: The timestamp when the ESM instance was last updated. + format: date-time + example: '2026-05-20T00:00:00Z' + SecretsManagerCreateRequest: + required: + - config + - name + - type + type: object + properties: + type: + type: string + description: 'The ESM provider type. Supported values: AWS_SECRET_MANAGER, AZURE_KEY_VAULT, HASHICORP_VAULT.' + example: AWS_SECRET_MANAGER + enum: + - AWS_SECRET_MANAGER + - AZURE_KEY_VAULT + - HASHICORP_VAULT + name: + type: string + description: The name of the External Secrets Manager instance. Must be unique within the account. + example: My AWS Secrets Manager + config: + description: 'Provider-specific configuration object. For AWS_SECRET_MANAGER: role_arn (required). For AZURE_KEY_VAULT: vault_url (required), tenant_id (required for SaaS). For HASHICORP_VAULT: vault_address (required), role_id and secret_id (required for SaaS), namespace (optional).' + type: string + is_hybrid_deployment: + type: boolean + description: Whether this External Secrets Manager instance is compatible with Hybrid Deployment environments. + example: false + SecretsManagerEntityItem: + type: object + properties: + id: + type: string + description: The unique identifier of the source connection or destination. + example: connection_id + name: + type: string + description: The schema name of the source connection, or the name of the destination group. + example: my_schema + enabled: + type: boolean + description: Whether the source connection or destination is currently active and connected. + example: true + type: + type: string + description: 'The type of entity using this External Secrets Manager. Possible values: SOURCE, DESTINATION.' + example: SOURCE + enum: + - SOURCE + - DESTINATION + secret_manager_id: + type: string + description: The unique identifier of the External Secrets Manager instance. + example: lucky_tiger + created_at: + type: string + description: Timestamp when the entity was created + format: date-time + example: '2024-01-01T00:00:00Z' + description: An entity (connection or destination) that uses an External Secrets Manager + SecretsManagerUpdateRequest: + required: + - config + type: object + properties: + config: + description: 'Provider-specific configuration object. For AWS_SECRET_MANAGER: role_arn (required). For AZURE_KEY_VAULT: vault_url (required), tenant_id (required for SaaS). For HASHICORP_VAULT: vault_address (required), role_id and secret_id (required for SaaS), namespace (optional).' + type: string + JsonNode: + type: string + description: (opaque JSON object) + x-stackQL-resources: + secrets_managers: + id: fivetran.external_secrets_managers.secrets_managers + name: secrets_managers + title: Secrets Managers + methods: + list: + operation: + $ref: '#/paths/~1v1~1external-secrets-managers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1external-secrets-managers/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1external-secrets-managers~1{esm_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1external-secrets-managers~1{esm_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1external-secrets-managers~1{esm_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/secrets_managers/methods/get' + - $ref: '#/components/x-stackQL-resources/secrets_managers/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/secrets_managers/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/secrets_managers/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/secrets_managers/methods/delete' + replace: [] + entities: + id: fivetran.external_secrets_managers.entities + name: entities + title: Entities + methods: + list: + operation: + $ref: '#/paths/~1v1~1external-secrets-managers-entities/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + list_by_esm: + operation: + $ref: '#/paths/~1v1~1external-secrets-managers~1{esm_id}~1entities/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/entities/methods/list_by_esm' + - $ref: '#/components/x-stackQL-resources/entities/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/groups.yaml b/providers/src/fivetran/v00.00.00000/services/groups.yaml index c783dc10..789accb7 100644 --- a/providers/src/fivetran/v00.00.00000/services/groups.yaml +++ b/providers/src/fivetran/v00.00.00000/services/groups.yaml @@ -1,471 +1,351 @@ openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} info: - title: OpenAPI Definition - groups - description: Group Management + title: Fivetran Groups API + description: Groups, their users and connections, SSH public key and service account. version: v1 -security: - - basicAuth: [] -components: - schemas: - GroupResponse: - type: object - properties: - id: - type: string +paths: + /v1/groups: + get: + tags: + - Group Management + summary: List All Destinations within Account + description: Returns a list of all groups within your Fivetran account. + operationId: list_all_groups + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Groups retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/GroupResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + post: + tags: + - Group Management + summary: Create a Group + description: | + Creates a new group in your Fivetran account. + + > IMPORTANT: Groups and destinations are mapped 1:1 to each other. We do this mapping using the group's `id` value that we automatically generate when you create a group, and the destination's `group_id` value that you specify when you create a destination. This means that you must create a group in your Fivetran account before you can create a destination in it. + operationId: create_group + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NewGroupRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Group has been created + data: + $ref: '#/components/schemas/GroupResponse' + type: object + /v1/groups/{group_id}: + get: + tags: + - Group Management + summary: Retrieve Group Details + description: Returns a group object if a valid identifier was provided. + operationId: group_details + parameters: + - name: group_id + in: path description: The unique identifier for the group within the Fivetran system. - name: - type: string - description: The name of the group within your account. - created_at: - type: string - description: The timestamp of when the group was created in your account. - format: date-time - UpdateGroupRequest: - type: object - properties: - name: - type: string - description: The name of the group within your account. - example: string - UserResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the user within the Fivetran system. - email: - type: string - description: The email address that the user has associated with their user profile. - verified: - type: boolean - description: The field indicates whether the user has verified their email address in the account creation process. - invited: - type: boolean - description: The field indicates whether the user has been invited to your account. - picture: - type: string - description: 'The user''s avatar as a URL link (for example, ''http://mycompany.com/avatars/john_white.png'') or base64 data URI (for example, ''data:image/png;base64,aHR0cDovL215Y29tcGFueS5jb20vYXZhdGFycy9qb2huX3doaXRlLnBuZw=='')' - phone: - type: string - description: The phone number of the user. - role: - type: string - description: 'The role that you would like to assign to the user ' - active: - type: boolean - description: 'The boolean value indicating the user''s status. If the user is able to log in, the value is true. If the user''s account has been suspended, the value is false' - given_name: - type: string - description: The first name of the user. - created_at: - type: string - description: The timestamp that the user created their Fivetran account - format: date-time - family_name: - type: string - description: The last name of the user. - logged_in_at: - type: string - description: The last time that the user has logged into their Fivetran account. - format: date-time - AddUserToGroupRequest: - type: object - properties: - email: - type: string - description: The email address that the user has associated with their user profile. - role: - type: string - description: 'The group role that you would like to assign this new user to. Supported group roles: ‘Destination Administrator‘, ‘Destination Reviewer‘, ‘Destination Analyst‘, ‘Connector Creator‘, or a custom destination role' - NewGroupRequest: - type: object - properties: - name: - type: string - description: The name of the group within your account. - example: string - ConnectorResponse: - type: object - properties: - id: - type: string + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Group details retrieved successfully + data: + $ref: '#/components/schemas/GroupResponse' + type: object + delete: + tags: + - Group Management + summary: Delete a Group + description: Deletes a group from your Fivetran account. + operationId: delete_group + parameters: + - name: group_id + in: path description: The unique identifier for the group within the Fivetran system. - service: - type: string - description: The name for the connector type within the Fivetran system. - schema: - type: string - description: The name used both as the connector's name within the Fivetran system and as the source schema's name within your destination. - paused: - type: boolean - description: Specifies whether the connector is paused. - status: - $ref: '#/components/schemas/ConnectorStatusResponse' - config: - type: object - additionalProperties: - type: object - description: The connector setup configuration. - daily_sync_time: - type: string - description: 'The optional parameter that defines the sync start time when the sync frequency is already set or being set by the current request to 1440. It can be specified in one hour increments starting from 00:00 to 23:00. If not specified, we will use the baseline sync start time. This parameter has no effect on the 0 to 60 minutes offset used to determine the actual sync start time.' - succeeded_at: - type: string - description: The timestamp of the time the connector sync succeeded last time. - format: date-time - connect_card: - $ref: '#/components/schemas/ConnectCardResponse' - sync_frequency: - type: integer - description: The connector sync frequency in minutes - format: int32 - pause_after_trial: - type: boolean - description: Specifies whether the connector should be paused after the free trial period has ended. - group_id: - type: string + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Group with id 'string' has been deleted + type: object + patch: + tags: + - Group Management + summary: Update a Group + description: Updates information for an existing group within your Fivetran account. + operationId: modify_group + parameters: + - name: group_id + in: path description: The unique identifier for the group within the Fivetran system. - connected_by: - type: string - description: The unique identifier of the user who has created the connector in your account. - setup_tests: - type: array - description: Setup tests results - items: - $ref: '#/components/schemas/SetupTestResultResponse' - source_sync_details: - type: object - description: The additional information about the connector's state. The format of this parameter is specific for each connector type. - service_version: - type: integer - description: The connector type version within the Fivetran system. - format: int32 - created_at: - type: string - description: The timestamp of when the group was created in your account. - format: date-time - failed_at: - type: string - description: The timestamp of the time the connector sync failed last time. - format: date-time - schedule_type: - type: string - description: 'The connector schedule config type. Supported values: auto, manual. Lets you disable or enable an automatic data sync on a schedule.' - connect_card_config: - $ref: '#/components/schemas/ConnectCardConfig' - ConnectorStatusResponse: - type: object - properties: - tasks: - type: array - description: The collection of tasks for the connector - items: - $ref: '#/components/schemas/Alert' - warnings: - type: array - description: The collection of warnings for the connector - items: - $ref: '#/components/schemas/Alert' - schema_status: - type: string - description: Schema status - update_state: - type: string - description: 'The current data update state of the connector. The available values are:
- on_schedule - the sync is running smoothly, no delays
- delayed - the data is delayed for a longer time than expected for the update.' - setup_state: - type: string - description: 'The current setup state of the connector. The available values are:
- incomplete - the setup config is incomplete, the setup tests never succeeded
- connected - the connector is properly set up
- broken - the connector setup config is broken.' - sync_state: - type: string - description: 'The current sync state of the connector. The available values are:
- scheduled - the sync is waiting to be run
- syncing - the sync is currently running
- paused - the sync is currently paused
- rescheduled - the sync is waiting until more API calls are available in the source service.' - is_historical_sync: - type: boolean - description: 'The boolean specifying whether the connector should be triggered to re-sync all historical data. If you set this parameter to TRUE, the next scheduled sync will be historical. If the value is FALSE or not specified, the connector will not re-sync historical data. NOTE: When the value is TRUE, only the next scheduled sync will be historical, all subsequent ones will be incremental. This parameter is set to FALSE once the historical sync is completed.' - rescheduled_for: - type: string - format: date-time - ConnectCardResponse: - type: object - properties: - token: - type: string - description: The connect-card auth token - uri: - type: string - description: The Connect Card URI for the user interface - SetupTestResultResponse: - type: object - properties: - title: - type: string - description: Setup test title. - status: - type: string - description: 'The current state of the connector. ' - message: - type: string - description: Setup test message. - details: - type: object - description: Setup test details. - ConnectCardConfig: - type: object - properties: - redirect_uri: - type: string - description: 'The URI on your site we redirect the end user to after successful setup. The URI must start with the `https` or `http` prefix. ' - hide_setup_guide: - type: boolean - description: An optional parameter that lets you hide the embedded setup guide in the Connect Card. - Alert: - type: object - properties: - code: - type: string - description: Code - message: - type: string - description: Setup test message - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - groups: - id: fivetran.groups.groups - name: groups - title: Groups - methods: - group_details: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _group_details: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_group: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_group: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - list_all_groups: - operation: - $ref: '#/paths/~1v1~1groups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_all_groups: - operation: - $ref: '#/paths/~1v1~1groups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_group: - operation: - $ref: '#/paths/~1v1~1groups/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/groups/methods/group_details' - - $ref: '#/components/x-stackQL-resources/groups/methods/list_all_groups' - insert: - - $ref: '#/components/x-stackQL-resources/groups/methods/create_group' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/groups/methods/delete_group' - users: - id: fivetran.groups.users - name: users - title: Users - methods: - list_all_users_in_group: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_all_users_in_group: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - add_user_to_group: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}~1users/post' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_from_group: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}~1users~1{userId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/list_all_users_in_group' - insert: - - $ref: '#/components/x-stackQL-resources/users/methods/add_user_to_group' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/users/methods/delete_user_from_group' - connectors: - id: fivetran.groups.connectors - name: connectors - title: Connectors - methods: - list_all_connectors_in_group: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}~1connectors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_all_connectors_in_group: - operation: - $ref: '#/paths/~1v1~1groups~1{groupId}~1connectors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/connectors/methods/list_all_connectors_in_group' - insert: [] - update: [] - delete: [] -paths: - '/v1/groups/{groupId}': + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateGroupRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Group has been updated + data: + $ref: '#/components/schemas/GroupResponse' + type: object + /v1/groups/{group_id}/connections: get: tags: - Group Management - summary: Retrieve Group Details - description: Returns a group object if a valid identifier was provided. - operationId: group_details + summary: List All Connections within a Group + description: Returns a list of information about all connections within a group in your Fivetran account. + operationId: list_all_connections_in_group parameters: - - name: groupId + - name: group_id in: path description: The unique identifier for the group within the Fivetran system. required: true schema: type: string - - name: Accept - in: header + - name: schema + in: query + description: The name used both as the connection's name within the Fivetran system and as the source schema's name within your destination. + required: false + schema: + type: string + example: schema_name + example: schema_name + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false schema: type: string - example: application/json - default: application/json + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Group connections retrieved successfully data: - $ref: '#/components/schemas/GroupResponse' + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/ConnectorResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object type: object - delete: + /v1/groups/{group_id}/public-key: + get: tags: - Group Management - summary: Delete a group - description: Deletes a group from your Fivetran account. - operationId: delete_group + summary: Retrieve Group Public SSH Key + description: Returns public key from SSH key pair associated with the group. + operationId: group_ssh_public_key parameters: - - name: groupId + - name: group_id in: path description: The unique identifier for the group within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Group SSH public key retrieved successfully + data: + $ref: '#/components/schemas/GroupSshKeyResponse' type: object - patch: + /v1/groups/{group_id}/service-account: + get: tags: - Group Management - summary: Modify a Group - description: Updates information for an existing group within your Fivetran account. - operationId: modify_group + summary: Retrieve Group Service Account + description: Returns Fivetran service account associated with the group. + operationId: group_service_account parameters: - - name: groupId + - name: group_id in: path description: The unique identifier for the group within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateGroupRequest' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Group service account retrieved successfully data: - $ref: '#/components/schemas/GroupResponse' + $ref: '#/components/schemas/GroupServiceAccountResponse' type: object - '/v1/groups/{groupId}/users': + /v1/groups/{group_id}/users: get: tags: - Group Management @@ -473,7 +353,7 @@ paths: description: Returns a list of information about all users within a group in your Fivetran account. operationId: list_all_users_in_group parameters: - - name: groupId + - name: group_id in: path description: The unique identifier for the group within the Fivetran system. required: true @@ -481,10 +361,12 @@ paths: type: string - name: cursor in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) required: false schema: type: string + example: cursor_value + example: cursor_value - name: limit in: query description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. @@ -492,35 +374,47 @@ paths: schema: type: integer format: int32 - - name: Accept - in: header + example: 100 + example: 100 + - name: active + in: query + description: Indicates whether to return only enabled users (true) or not (false). By default, both enabled (allowed to log in) and suspended users are returned. + required: false schema: - type: string - example: application/json - default: application/json + type: boolean + example: true + example: true responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Group users retrieved successfully data: + required: + - items properties: items: type: array - description: The collection of return items + description: The collection of returned items items: $ref: '#/components/schemas/UserResponse' - nextCursor: + next_cursor: type: string description: The value of the cursor parameter for the next page + example: cursor_value type: object type: object post: @@ -530,18 +424,12 @@ paths: description: Adds an existing user to a group in your Fivetran account. operationId: add_user_to_group parameters: - - name: groupId + - name: group_id in: path description: The unique identifier for the group within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: @@ -553,201 +441,702 @@ paths: content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User has been added to the group type: object - /v1/groups: - get: + /v1/groups/{group_id}/users/{user_id}: + delete: tags: - Group Management - summary: List All Groups - description: Returns a list of all groups within your Fivetran account. - operationId: list_all_groups + summary: Remove a User from a Group + description: Removes an existing user from a group in your Fivetran account. + operationId: delete_user_from_group parameters: - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false + - name: group_id + in: path + description: The unique identifier for the group within the Fivetran system. + required: true schema: type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header + - name: user_id + in: path + description: The unique identifier for the user within the account. + required: true schema: type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/GroupResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object + example: User with id 'string' has been removed from the group type: object - post: - tags: - - Group Management - summary: Create a Group - description: Creates a new group in your Fivetran account. - operationId: create_group - parameters: - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/NewGroupRequest' - responses: - '201': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/GroupResponse' - type: object - '/v1/groups/{groupId}/users/{userId}': - delete: - tags: - - Group Management - summary: Remove a User from a Group - description: Removes an existing user from a group in your Fivetran account. - operationId: delete_user_from_group - parameters: - - name: groupId - in: path +components: + schemas: + GroupResponse: + required: + - created_at + - id + - name + type: object + properties: + id: + type: string description: The unique identifier for the group within the Fivetran system. - required: true - schema: - type: string - - name: userId - in: path - description: The unique identifier for the user within the Fivetran system. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - type: object - '/v1/groups/{groupId}/connectors': - get: - tags: - - Group Management - summary: List All Connectors within a Group - description: Returns a list of information about all connectors within a group in your Fivetran account. - operationId: list_all_connectors_in_group - parameters: - - name: groupId - in: path + example: group_id + name: + type: string + description: The name of the group within your account. + example: Group_Name + created_at: + type: string + description: The timestamp of when the group was created in your account. + format: date-time + example: '2024-01-01T00:00:00Z' + NewGroupRequest: + type: object + properties: + name: + type: string + description: The name of the group within your account. + example: Group_Name + UpdateGroupRequest: + type: object + properties: + name: + type: string + description: The name of the group within your account. + example: Updated_Group_Name + ConnectorResponse: + required: + - connected_by + - created_at + - group_id + - id + - pause_after_trial + - paused + - schedule_type + - schema + - service + - status + - sync_frequency + type: object + properties: + id: + type: string description: The unique identifier for the group within the Fivetran system. - required: true - schema: - type: string - - name: schema - in: query - description: The name used both as the connector's name within the Fivetran system and as the source schema's name within your destination. - required: false - schema: + example: connection_id + service: + type: string + description: The name for the connector type within the Fivetran system. + example: google_sheets + schema: + type: string + description: The name used both as the connection's name within the Fivetran system and as the source schema's name within your destination. + example: gsheets.table + paused: + type: boolean + description: Specifies whether the connection is paused. + example: false + status: + description: 'The current state of the connection. ' + required: + - is_historical_sync + - setup_state + - sync_state + - update_state + type: object + properties: + tasks: + type: array + description: The collection of tasks for the connection + items: + $ref: '#/components/schemas/ConnectionTask' + warnings: + type: array + description: The collection of warnings for the connection + items: + $ref: '#/components/schemas/ConnectionWarning' + setup_state: + type: string + description: 'The current setup state of the connection. The available values are:
- incomplete - the setup config is incomplete, the setup tests never succeeded
- connected - the connection is properly set up
- broken - the connection setup config is broken.' + example: connected + schema_status: + type: string + description: Schema status. Returned only for connectors that support [Universal Column Masking flow](https://fivetran.com/docs/rest-api/tutorials/schema-status). + example: ready + sync_state: + type: string + description: 'The current sync state of the connection. The available values are:
- scheduled - the sync is waiting to be run
- syncing - the sync is currently running
- paused - the sync is currently paused
- rescheduled - the sync is waiting until more API calls are available in the source service.' + example: scheduled + update_state: + type: string + description: 'The current data update state of the connection. The available values are:
- on_schedule - the sync is running smoothly, no delays
- delayed - the data is delayed for a longer time than expected for the update.' + example: delayed + is_historical_sync: + type: boolean + description: The boolean specifying whether the connection should be triggered to re-sync all historical data. If you set this parameter to TRUE, a [historical sync](https://fivetran.com/docs/getting-started/glossary#historicalsync) starts immediately. If a sync is currently running, it's canceled and restarted as a historical sync. All subsequent syncs after the historical sync completes will be incremental. If the value is FALSE or not specified, the connection doesn't re-sync historical data. This parameter is automatically reset to FALSE once the historical sync is completed. + example: false + rescheduled_for: + type: string + description: The UTC timestamp of the next scheduled sync attempt. Non-null only when `sync_state` is `"rescheduled"`. If `schedule_type` is `manual`, the connection expects the sync to be triggered at the designated time through the [Sync Connection Data](https://fivetran.com/docs/rest-api/api-reference/connections/sync-connection) endpoint. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + config: + type: object + additionalProperties: type: string - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: + description: (opaque JSON object) + description: The connection setup configuration. + schedule: + $ref: '#/components/schemas/ConnectorSchedule' + group_id: + type: string + description: The unique identifier for the group within the Fivetran system. + example: group_id + service_version: + type: integer + description: The connector type version within the Fivetran system. + format: int32 + example: 0 + connected_by: + type: string + description: The unique identifier of the user who has created the connection in your account. + example: user_id + created_at: + type: string + description: The timestamp of when the group was created in your account. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + succeeded_at: + type: string + description: The timestamp of the time the connection sync succeeded last time. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + failed_at: + type: string + description: The timestamp of the time the connection sync failed last time. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + pause_after_trial: + type: boolean + description: Specifies whether the connection should be paused after the free trial period has ended. + example: false + sync_frequency: + type: integer + description: The connection sync frequency in minutes. `null` when the connection's schedule has no single cadence to report, such as a custom cron or multiple-time-of-day schedule. + format: int32 + example: 360 + data_delay_threshold: + type: integer + format: int32 + data_delay_sensitivity: + type: string + enum: + - LOW + - NORMAL + - HIGH + - CUSTOM + - SYNC_FREQUENCY + daily_sync_time: + type: string + description: The optional parameter that defines the sync start time when the sync frequency is already set or being set by the current request to 1440. It can be specified in one hour increments starting from 00:00 to 23:00. If not specified, we will use the baseline sync start time. This parameter has no effect on the 0 to 60 minutes offset used to determine the actual sync start time. + example: '14:00' + schedule_type: + type: string + description: 'The connection schedule config type. Supported values: auto, manual. Lets you disable or enable an automatic data sync on a schedule.' + example: auto + setup_tests: + type: array + description: Setup tests results + items: + $ref: '#/components/schemas/SetupTestResultResponse' + private_link_id: + type: string + networking_method: + type: string + enum: + - Directly + - SshTunnel + - PrivateLink + - ProxyAgent + - UnmanagedProxyAgent + - Unknown + proxy_agent_id: + type: string + source_sync_details: + type: string + description: Read-only, connector-specific sync state. Depending on the connector type, this object may include source scope identifiers such as accounts, profiles, or projects; per-entity cursors or checkpoints; or last-synced timestamps. This field is optional, and its schema varies by connector type. To determine whether a connector exposes this information and inspect its returned fields, use [Retrieve Connection Details](https://fivetran.com/docs/rest-api/api-reference/connections/connection-details). (opaque JSON object) + hybrid_deployment_agent_id: + type: string + connect_card: + $ref: '#/components/schemas/ConnectCardResponse' + connect_card_config: + $ref: '#/components/schemas/ConnectCardConfig' + destination_configuration: + $ref: '#/components/schemas/DestinationConfiguration' + destination_schema_names: + type: string + enum: + - FIVETRAN_NAMING + - SOURCE_NAMING + external_secrets_manager_id: + type: string + external_secrets_keys_config: + type: object + additionalProperties: type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: + GroupSshKeyResponse: + required: + - public_key + type: object + properties: + public_key: + type: string + example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6 ... fivetran user key + GroupServiceAccountResponse: + required: + - service_account + type: object + properties: + service_account: + type: string + example: service_account + UserResponse: + required: + - active + - created_at + - email + - id + - logged_in_at + - role + - verified + type: object + properties: + id: + type: string + description: The unique identifier for the user within the Fivetran system. + example: user_id + email: + type: string + description: 'The email address that the user has associated with their user profile. Optional for service accounts (`user_type: SERVICE_ACCOUNT`).' + example: user@email.value + verified: + type: boolean + description: The field indicates whether the user has verified their email address in the account creation process. + example: true + invited: + type: boolean + description: The field indicates whether the user has been invited to your account. + example: true + picture: + type: string + description: The user's avatar as a URL link (for example, 'http://mycompany.com/avatars/john_white.png') or base64 data URI (for example, 'data:image/png;base64,aHR0cDovL215Y29tcGFueS5jb20vYXZhdGFycy9qb2huX3doaXRlLnBuZw==') + example: AFg65aoa7af4r3feaAa6bi7se ... base64 encoded image ... blDFSs87gQ== + phone: + type: string + description: The phone number of the user. + example: '+1234567890' + role: + type: string + description: 'The role that you would like to assign to the user ' + example: Account Administrator + active: + type: boolean + description: The field indicates if the user is an active Fivetran account user. + example: true + given_name: + type: string + description: The first name of the user. + example: John + family_name: + type: string + description: The last name of the user. + example: Doe + logged_in_at: + type: string + description: The last time that the user has logged into their Fivetran account. + format: date-time + example: '2024-01-01T00:00:00Z' + created_at: + type: string + description: The timestamp that the user created their Fivetran account + format: date-time + example: '2024-01-01T00:00:00Z' + user_type: + type: string + description: 'The type of user. Possible values: `REGULAR_USER`: A human user who can log in to the Fivetran dashboard and interact with the API, and `SERVICE_ACCOUNT`: A non-human identity for machine-to-machine API access that cannot log in to the dashboard.' + example: SERVICE_ACCOUNT + enum: + - REGULAR_USER + - SERVICE_ACCOUNT + has_api_key: + type: boolean + description: 'Indicates whether the user has an assigned API key, including expired keys. Accepted values: `true` or `false`.' + example: true + AddUserToGroupRequest: + type: object + properties: + email: + type: string + description: The email address that the user has associated with their user profile. + example: user@email.value + role: + type: string + description: 'The group role that you would like to assign this new user to. Supported group roles: ‘Manage Destination‘, ‘View Destination‘, ‘Edit Destination‘, ‘Create Connection‘, or a custom destination role' + example: Owner + ConnectorStatusResponse: + required: + - is_historical_sync + - setup_state + - sync_state + - update_state + type: object + properties: + tasks: + type: array + description: The collection of tasks for the connection + items: + $ref: '#/components/schemas/ConnectionTask' + warnings: + type: array + description: The collection of warnings for the connection + items: + $ref: '#/components/schemas/ConnectionWarning' + setup_state: + type: string + description: 'The current setup state of the connection. The available values are:
- incomplete - the setup config is incomplete, the setup tests never succeeded
- connected - the connection is properly set up
- broken - the connection setup config is broken.' + example: connected + schema_status: + type: string + description: Schema status. Returned only for connectors that support [Universal Column Masking flow](https://fivetran.com/docs/rest-api/tutorials/schema-status). + example: ready + sync_state: + type: string + description: 'The current sync state of the connection. The available values are:
- scheduled - the sync is waiting to be run
- syncing - the sync is currently running
- paused - the sync is currently paused
- rescheduled - the sync is waiting until more API calls are available in the source service.' + example: scheduled + update_state: + type: string + description: 'The current data update state of the connection. The available values are:
- on_schedule - the sync is running smoothly, no delays
- delayed - the data is delayed for a longer time than expected for the update.' + example: delayed + is_historical_sync: + type: boolean + description: The boolean specifying whether the connection should be triggered to re-sync all historical data. If you set this parameter to TRUE, a [historical sync](https://fivetran.com/docs/getting-started/glossary#historicalsync) starts immediately. If a sync is currently running, it's canceled and restarted as a historical sync. All subsequent syncs after the historical sync completes will be incremental. If the value is FALSE or not specified, the connection doesn't re-sync historical data. This parameter is automatically reset to FALSE once the historical sync is completed. + example: false + rescheduled_for: + type: string + description: The UTC timestamp of the next scheduled sync attempt. Non-null only when `sync_state` is `"rescheduled"`. If `schedule_type` is `manual`, the connection expects the sync to be triggered at the designated time through the [Sync Connection Data](https://fivetran.com/docs/rest-api/api-reference/connections/sync-connection) endpoint. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + ConnectorSchedule: + type: object + properties: + cron: + type: string + interval: + type: integer + description: The sync interval in minutes + format: int32 + example: 360 + schedule_type: + type: string + description: 'The schedule type. Possible values: INTERVAL, TIME_OF_DAY' + example: INTERVAL + enum: + - TIME_OF_DAY + - INTERVAL + - CRON + - MANUAL + days_of_week: + uniqueItems: true + type: array + description: The days of the week on which the connection syncs + example: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + items: type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/ConnectorResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object + enum: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + time_of_day: + type: string + SetupTestResultResponse: + required: + - status + - title + type: object + properties: + title: + type: string + description: 'A human-readable name for the setup test step. For example: Validate Login, Test Connection, Check Permissions.' + example: Validate Login + status: + type: string + description: 'The result of the individual setup test step. Possible values: PASSED, FAILED, SKIPPED.' + example: FAILED + enum: + - PASSED + - SKIPPED + - WARNING + - FAILED + - JOB_FAILED + message: + type: string + description: 'The result message for the setup test step. For example: Invalid login credentials.' + example: Invalid login credentials. + details: + type: string + description: Additional diagnostic information about the setup test result. Populated when the status is FAILED and more context is available beyond the message. (opaque JSON object) + example: Authentication failed (401 Unauthorized). Verify the provided credentials and permissions. + ConnectCardResponse: + type: object + properties: + token: + type: string + description: A short-lived JWT that authorizes the end user to configure this connection via the Connect Card interface. Use the `uri` field directly to redirect users — it already embeds this token. If you need to construct your own URL, pass this value as the `auth` query parameter to `https://fivetran.com/connect-card/setup`. + example: eyJ0e... + uri: + type: string + description: The complete URL to redirect the end user to in order to authorize the connection. It embeds the auth token, redirect URI, and setup guide visibility as query parameters. Redirect the user directly to this address. + example: https://fivetran.com/connect-card/setup?redirect_uri=https://your.site/path&auth=eyJ0e...&hide_setup_guide=true + ConnectCardConfig: + required: + - redirect_uri + type: object + properties: + redirect_uri: + type: string + description: The URI on your site we redirect the end user to after successful setup. The URI must start with the `https` or `http` prefix. + example: https://your.site/path + hide_setup_guide: + type: boolean + description: An optional parameter that lets you hide the embedded setup guide in the Connect Card. + example: true + all_fields: + type: boolean + description: An optional parameter that lets you show all fields on Connect Card including those that are hidden by default for certain connectors. + example: true + DestinationConfiguration: + type: object + properties: + virtual_warehouse: + type: string + description: Snowflake's virtual warehouse used in the connection + example: virtual_warehouse + ConnectionTask: + type: object + properties: + code: + type: string + description: A machine-readable identifier for the condition type. Use this value to programmatically detect and respond to specific connection conditions. + message: + type: string + description: 'A human-readable label describing the condition. For example: Reconnect, Resync Table Warning.' + details: + type: string + description: Additional context about this condition beyond the message field. + ConnectionWarning: + type: object + properties: + code: + type: string + description: A machine-readable identifier for the condition type. Use this value to programmatically detect and respond to specific connection conditions. + message: + type: string + description: 'A human-readable label describing the condition. For example: Reconnect, Resync Table Warning.' + details: + type: string + description: Additional context about this condition beyond the message field. + x-stackQL-resources: + groups: + id: fivetran.groups.groups + name: groups + title: Groups + methods: + list: + operation: + $ref: '#/paths/~1v1~1groups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1groups/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/groups/methods/get' + - $ref: '#/components/x-stackQL-resources/groups/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/groups/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/groups/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/groups/methods/delete' + replace: [] + connections: + id: fivetran.groups.connections + name: connections + title: Connections + methods: + list: + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}~1connections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connections/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + ssh_public_keys: + id: fivetran.groups.ssh_public_keys + name: ssh_public_keys + title: Ssh Public Keys + methods: + get: + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}~1public-key/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/ssh_public_keys/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + service_accounts: + id: fivetran.groups.service_accounts + name: service_accounts + title: Service Accounts + methods: + get: + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}~1service-account/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + users: + id: fivetran.groups.users + name: users + title: Users + methods: + list: + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}~1users/post' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v1~1groups~1{group_id}~1users~1{user_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/users/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/hybrid_deployment.yaml b/providers/src/fivetran/v00.00.00000/services/hybrid_deployment.yaml new file mode 100644 index 00000000..f0cb6b9c --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/hybrid_deployment.yaml @@ -0,0 +1,634 @@ +openapi: 3.0.1 +info: + title: Fivetran Hybrid Deployment API + description: Hybrid deployment agents and HVR hub registration. + version: v1 +paths: + /v1/hvr/register-hub: + post: + tags: + - HVR Registrations Management + summary: Register Hub + description: Register a new hub within your Fivetran account. + operationId: hvr_register_hub + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/HvrHubRegistrationRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: HVR hub has been registered + data: + $ref: '#/components/schemas/HvrHubRegistrationResponse' + type: object + /v1/hybrid-deployment-agents: + get: + tags: + - Hybrid Deployment Agent Management + summary: List Hybrid Deployment Agents + description: Returns list of all Hybrid Deployment Agents within your Fivetran account, along with usage. Optionally filtered to a single group. + operationId: get_hybrid_deployment_agent_list + parameters: + - name: groupId + in: query + description: The Fivetran Group Id. + required: false + schema: + type: string + example: group_id + example: group_id + - name: cursor + in: query + schema: + type: string + - name: limit + in: query + schema: + type: integer + format: int32 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Hybrid deployment agents retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/HybridDeploymentAgentWithUsageResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + post: + tags: + - Hybrid Deployment Agent Management + summary: Create a Hybrid Deployment Agent + description: Creates a new Hybrid Deployment Agent in a group. + operationId: create_hybrid_deployment_agent + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/HybridDeploymentAgentCreateRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Hybrid deployment agent has been created + data: + $ref: '#/components/schemas/HybridDeploymentAgentCreateResponse' + type: object + '400': + description: Missing name or license not accepted in the payload. + '404': + description: Group not found. + /v1/hybrid-deployment-agents/{agent_id}: + get: + tags: + - Hybrid Deployment Agent Management + summary: Returns Hybrid Deployment Agent Details + description: Returns Hybrid Deployment Agent Details. + operationId: get_hybrid_deployment_agent + parameters: + - name: agent_id + in: path + description: Hybrid Deployment Agent Id + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Hybrid deployment agent details retrieved successfully + data: + $ref: '#/components/schemas/HybridDeploymentAgentWithUsageResponse' + type: object + delete: + tags: + - Hybrid Deployment Agent Management + summary: Delete a Hybrid Deployment Agent + description: Delete a Hybrid Deployment Agent. + operationId: delete_hybrid_deployment_agent + parameters: + - name: agent_id + in: path + description: Hybrid Deployment Agent Id + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Hybrid deployment agent with id = string has been deleted. + type: object + '404': + description: Hybrid Deployment Agent not found. + /v1/hybrid-deployment-agents/{agent_id}/re-auth: + patch: + tags: + - Hybrid Deployment Agent Management + summary: Regenerate Authentication Keys + description: Regenerate authentication for a Hybrid Deployment Agent. + operationId: re_auth_hybrid_deployment_agent + parameters: + - name: agent_id + in: path + description: Hybrid Deployment Agent Id + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/HybridDeploymentAgentReAuthRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Hybrid deployment agent re-authentication successful + data: + $ref: '#/components/schemas/HybridDeploymentAgentCreateResponse' + type: object + '404': + description: Hybrid Deployment Agent not found in group. + /v1/hybrid-deployment-agents/{agent_id}/reset-credentials: + post: + tags: + - Hybrid Deployment Agent Management + summary: Reset Agent Credentials + description: Reset credentials for a Hybrid Deployment Agent. + operationId: reset_hybrid_deployment_agent_credentials + parameters: + - name: agent_id + in: path + description: Hybrid Deployment Agent Id + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Successfully reset credentials the agent with id = string + type: object + '404': + description: Hybrid Deployment Agent not found +components: + schemas: + HvrHubRegistrationRequest: + required: + - fingerprint + - hub_server_url + type: object + properties: + fingerprint: + type: string + description: Installation fingerprint. + example: fingerprint_value + port: + type: integer + description: Installation port. + format: int32 + example: 1234 + hub_server_url: + type: string + description: URL of Hub server. + example: hub_server_url + HvrHubRegistrationResponse: + type: object + properties: + access_token: + type: string + description: Access token. + example: access_token_value + registration_id: + type: string + description: Registration identifier. + example: registration_id + HybridDeploymentAgentWithUsageResponse: + required: + - created_by + - deployment_type + - display_name + - enabled + - group_id + - id + - last_used_at + - online + - registered_at + - updated_at + - version + type: object + properties: + id: + type: string + description: The unique identifier for the hybrid deployment agent within the Fivetran system. + example: agent_id + version: + type: string + description: Version of the Hybrid Deployment Agent + example: version + enabled: + type: boolean + description: The boolean value specifying whether the Hybrid Deployment Agent is enabled. + example: true + online: + type: boolean + description: The boolean value specifying whether the Hybrid Deployment Agent is online. + example: true + usage: + type: array + items: + $ref: '#/components/schemas/HybridDeploymentAgentUsageResponse' + display_name: + type: string + description: Hybrid Deployment Agent display name. + example: display_name + group_id: + type: string + description: The unique identifier for the group within your Fivetran account. + example: group_id + registered_at: + type: string + description: Time when this Hybrid Deployment Agent was created. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + created_by: + type: string + description: The actor who created the Hybrid Deployment Agent + example: created_by + deployment_type: + type: string + description: Environment type. + example: DOCKER + enum: + - DOCKER + - PODMAN + - KUBERNETES + - SNOWPARK + updated_at: + type: string + description: Time when this Hybrid Deployment Agent was updated. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + last_used_at: + type: string + description: The time this Hybrid Deployment Agent was last used. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + HybridDeploymentAgentCreateRequest: + required: + - accept_terms + - display_name + - env_type + type: object + properties: + group_id: + type: string + description: The unique identifier for the group within your Fivetran account. + example: group_id + display_name: + type: string + description: Hybrid Deployment Agent display name. + example: display_name + env_type: + type: string + description: Environment type. + example: DOCKER + enum: + - DOCKER + - PODMAN + - KUBERNETES + - SNOWPARK + accept_terms: + type: boolean + description: Boolean, must be true to indicate that the caller accepts the Fivetran On-Prem Software License Addendum. + example: true + auth_type: + type: string + description: Agent Auth Mode. Defines how agent should be authorised. + example: AUTO + enum: + - AUTO + - MANUAL + HybridDeploymentAgentCreateResponse: + required: + - created_by + - deployment_type + - display_name + - enabled + - group_id + - id + - last_used_at + - online + - registered_at + - updated_at + - version + type: object + properties: + id: + type: string + description: The unique identifier for the hybrid deployment agent within the Fivetran system. + example: agent_id + version: + type: string + description: Version of the Hybrid Deployment Agent + example: version + enabled: + type: boolean + description: The boolean value specifying whether the Hybrid Deployment Agent is enabled. + example: true + online: + type: boolean + description: The boolean value specifying whether the Hybrid Deployment Agent is online. + example: true + files: + $ref: '#/components/schemas/HybridDeploymentAgentFilesResponse' + token: + type: string + description: Base64 encoded content of token + example: token_value + display_name: + type: string + description: Hybrid Deployment Agent display name. + example: display_name + group_id: + type: string + description: The unique identifier for the group within your Fivetran account. + example: group_id + registered_at: + type: string + description: Time when this Hybrid Deployment Agent was created. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + created_by: + type: string + description: The actor who created the Hybrid Deployment Agent + example: created_by + deployment_type: + type: string + description: Environment type. + example: DOCKER + enum: + - DOCKER + - PODMAN + - KUBERNETES + - SNOWPARK + updated_at: + type: string + description: Time when this Hybrid Deployment Agent was updated. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + last_used_at: + type: string + description: The time this Hybrid Deployment Agent was last used. + format: date-time + example: '2024-12-01T15:43:29.013729Z' + HybridDeploymentAgentReAuthRequest: + type: object + properties: + auth_type: + type: string + enum: + - AUTO + - MANUAL + HybridDeploymentAgentUsageResponse: + required: + - connection_id + - schema + - service + type: object + properties: + schema: + type: string + description: The name used both as the connection's name within the Fivetran system and as the source schema's name within your group. + example: schema_name + service: + type: string + description: The connector type name within the Fivetran system. + example: service + connection_id: + type: string + description: The unique identifier for the connection within the Fivetran + example: connection_id + HybridDeploymentAgentFilesResponse: + required: + - auth_json + - config_json + - docker_compose_yaml + type: object + properties: + config_json: + type: string + description: Base64 encoded content of the config.json + format: byte + example: Base64 {... config.json contents ...} + auth_json: + type: string + description: Base64 encoded content of the auth.json + format: byte + example: Base64 {... auth.json contents ...} + docker_compose_yaml: + type: string + description: Base64 encoded content of the docker-compose.yaml + format: byte + example: Base64 {... docker-compose.yaml contents ...} + x-stackQL-resources: + hvr_hubs: + id: fivetran.hybrid_deployment.hvr_hubs + name: hvr_hubs + title: Hvr Hubs + methods: + register: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1hvr~1register-hub/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + agents: + id: fivetran.hybrid_deployment.agents + name: agents + title: Agents + methods: + list: + operation: + $ref: '#/paths/~1v1~1hybrid-deployment-agents/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1hybrid-deployment-agents/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1hybrid-deployment-agents~1{agent_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1hybrid-deployment-agents~1{agent_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + re_auth: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1hybrid-deployment-agents~1{agent_id}~1re-auth/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + reset_credentials: + operation: + $ref: '#/paths/~1v1~1hybrid-deployment-agents~1{agent_id}~1reset-credentials/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/agents/methods/get' + - $ref: '#/components/x-stackQL-resources/agents/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/agents/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/agents/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/metadata.yaml b/providers/src/fivetran/v00.00.00000/services/metadata.yaml new file mode 100644 index 00000000..9b027b3e --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/metadata.yaml @@ -0,0 +1,391 @@ +openapi: 3.0.1 +info: + title: Fivetran Connector Metadata API + description: Connector types and their configuration metadata. + version: v1 +paths: + /public/connector-types: + get: + tags: + - Public Endpoints + summary: Retrieve Source Metadata Public Endpoint + description: Returns all available source types. This endpoint provides metadata including the proper source name (‘Facebook Ads’ instead of facebook_ads), the source icon, feature tables, information about the Hybrid deployment support, information about the Authorization via API support, and links to Fivetran resources. As we update source names and icons, that metadata will automatically update within this endpoint. + operationId: metadata_public_connectors + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connector metadata retrieved successfully + data: + type: array + description: The connector types + items: + $ref: '#/components/schemas/MetadataResponse' + type: object + security: [] + /v1/metadata/connector-types: + get: + tags: + - Connector Metadata + summary: Retrieve Source Metadata + description: Returns all available source types within your Fivetran account. This endpoint makes it easier to display Fivetran connectors within your application because it provides metadata including the proper source name ('Facebook Ads' instead of 'facebook_ads'), the source icon, information about the Hybrid deployment support, and links to Fivetran resources. As we update source names and icons, that metadata will automatically update within this endpoint + operationId: metadata_connectors + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connectors list retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/MetadataResponseShort' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + /v1/metadata/connector-types/{service}: + get: + tags: + - Connector Metadata + summary: Retrieve Connector Configuration Metadata + description: Returns metadata of configuration parameters and authorization parameters for a specified connector type. + operationId: metadata_connector_config + parameters: + - name: service + in: path + description: '[The connector type](https://fivetran.com/docs/rest-api/getting-started#commonterms) identifier within the Fivetran system' + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connector configuration retrieved successfully + data: + $ref: '#/components/schemas/MetadataResponse' + type: object +components: + schemas: + MetadataResponse: + required: + - id + - name + - type + type: object + properties: + id: + type: string + description: The connector type identifier within the Fivetran system + example: google_ads + name: + type: string + description: The connector service name within the Fivetran system + example: Google Ads + type: + type: string + description: The connector service type + example: Marketing + enum: + - API + - Dbt + - Marketing + - HumanResources + - Finance + - Productivity + - Engineering + - Support + - Sales + - Security + - SuperConnectorTest + - Free + - File + - Database + - Events + - Function + - BITool + - Warehouse + - Log + - Hvr + description: + type: string + description: The description characterizing the purpose of the connector + example: Google Ads is an online advertising platform + icons: + type: array + description: The set of additional icon resource URLs in different formats (.svg, .png). Updating this list is not a breaking change. The set of icon URLs or the icons themselves may be changed + items: + type: string + config: + type: string + description: Metadata for configuration fields (opaque JSON object) + auth: + type: string + description: Metadata for authorization fields (optional) (opaque JSON object) + icon_url: + type: string + description: The icon resource URL + example: https://fivetran.com/integrations/google_ads/resources/google-ads.png + link_to_docs: + type: string + description: The link to the connector documentation + example: https://fivetran.com/docs/connectors/applications/google-ads + connector_class: + type: string + enum: + - standard + - lite + supported_features: + type: array + items: + $ref: '#/components/schemas/Feature' + link_to_erd: + type: string + description: The link to the connector ERD (entity–relationship diagram) + example: https://docs.google.com/presentation/d/1f16zOPxwT1AXoOcNkvwT82ApKqU1yhtJ04f-73M91nw/embed + service_status: + type: string + description: The current availability status of the connector + example: general_availability + enum: + - general_availability + - beta + - private_preview + - sunset + - development + service_status_updated_at: + type: string + description: The date (yyyy-MM-dd) the connector status was updated to the current availability status + format: date-time + external_secrets_keys_config: + type: string + description: (opaque JSON object) + MetadataResponseShort: + required: + - id + - name + - type + type: object + properties: + id: + type: string + description: The connector type identifier within the Fivetran system + example: google_ads + name: + type: string + description: The connector service name within the Fivetran system + example: Google Ads + type: + type: string + description: The connector service type + example: Marketing + enum: + - API + - Dbt + - Marketing + - HumanResources + - Finance + - Productivity + - Engineering + - Support + - Sales + - Security + - SuperConnectorTest + - Free + - File + - Database + - Events + - Function + - BITool + - Warehouse + - Log + - Hvr + description: + type: string + description: The description characterizing the purpose of the connector + example: Google Ads is an online advertising platform + icons: + type: array + description: The set of additional icon resource URLs in different formats (.svg, .png). Updating this list is not a breaking change. The set of icon URLs or the icons themselves may be changed + items: + type: string + icon_url: + type: string + description: The icon resource URL + example: https://fivetran.com/integrations/google_ads/resources/google-ads.png + link_to_docs: + type: string + description: The link to the connector documentation + example: https://fivetran.com/docs/connectors/applications/google-ads + connector_class: + type: string + enum: + - standard + - lite + supported_features: + type: array + items: + $ref: '#/components/schemas/Feature' + link_to_erd: + type: string + description: The link to the connector ERD (entity–relationship diagram) + example: https://docs.google.com/presentation/d/1f16zOPxwT1AXoOcNkvwT82ApKqU1yhtJ04f-73M91nw/embed + service_status: + type: string + description: The current availability status of the connector + example: general_availability + enum: + - general_availability + - beta + - private_preview + - sunset + - development + service_status_updated_at: + type: string + description: The date (yyyy-MM-dd) the connector status was updated to the current availability status + format: date-time + Feature: + type: object + properties: + id: + type: string + description: The unique identifier of a feature supported by the connector + example: API_CONFIGURABLE + enum: + - CUSTOM_DATA + - CAPTURE_DELETES + - DATA_BLOCKING + - COLUMN_HASHING + - RE_SYNC + - HISTORY + - API_CONFIGURABLE + - PRIORITY_FIRST_SYNC + - FIVETRAN_DATA_MODELS + - PRIVATE_NETWORKING + - AUTHORIZATION_VIA_API + - ROW_FILTERING + notes: + type: string + description: Additional information about the feature support of a specific connector + example: ... + x-stackQL-resources: + public_connector_types: + id: fivetran.metadata.public_connector_types + name: public_connector_types + title: Public Connector Types + methods: + list: + operation: + $ref: '#/paths/~1public~1connector-types/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/public_connector_types/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + connector_types: + id: fivetran.metadata.connector_types + name: connector_types + title: Connector Types + methods: + list: + operation: + $ref: '#/paths/~1v1~1metadata~1connector-types/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + get: + operation: + $ref: '#/paths/~1v1~1metadata~1connector-types~1{service}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connector_types/methods/get' + - $ref: '#/components/x-stackQL-resources/connector_types/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/networking.yaml b/providers/src/fivetran/v00.00.00000/services/networking.yaml new file mode 100644 index 00000000..6ad32092 --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/networking.yaml @@ -0,0 +1,1235 @@ +openapi: 3.0.1 +info: + title: Fivetran Networking API + description: Private links and proxy agents. + version: v1 +paths: + /v1/private-links: + get: + tags: + - Private Link Management + summary: List All Private Links + description: Returns a list of all private links. + operationId: get_private_links + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Private links retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/PrivateLinkResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + post: + tags: + - Private Link Management + summary: Create a Private Link + description: | + Creates a new private link in your Fivetran account. + + > NOTE: See the [Set Up a Connection With Private Links tutorial](https://fivetran.com/docs/rest-api/tutorials/set-up-connection-with-private-links) to learn how to use this endpoint to set up a [database connection](https://fivetran.com/docs/connectors/databases) with [private networking](https://fivetran.com/docs/using-fivetran/features#privatenetworking). + operationId: create_private_link + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateLinkCreateRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Private link has been created + data: + $ref: '#/components/schemas/PrivateLinkResponse' + type: object + /v1/private-links/{private_link_id}: + get: + tags: + - Private Link Management + summary: Retrieve Private Link Details + description: Returns a private link object if a valid identifier was provided. + operationId: get_private_link_details + parameters: + - name: private_link_id + in: path + description: The unique identifier for the private link within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Private link details retrieved successfully + data: + $ref: '#/components/schemas/PrivateLinkResponse' + type: object + '404': + description: Private Link not found + delete: + tags: + - Private Link Management + summary: Delete a Private Link + description: Deletes a private link from your Fivetran account. + operationId: delete_private_link + parameters: + - name: private_link_id + in: path + description: The unique identifier for the private link within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Private link with id 'string' is marked for deletion + type: object + '404': + description: Private Link not found + patch: + tags: + - Private Link Management + summary: Update a Private Link + description: Updates information for an existing private link within your Fivetran account. + operationId: modify_private_link + parameters: + - name: private_link_id + in: path + description: The unique identifier for the private link within the Fivetran system + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateLinkUpdateRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Private link has been updated + data: + $ref: '#/components/schemas/PrivateLinkResponse' + type: object + '404': + description: Private Link not found + /v1/proxy: + get: + tags: + - Proxy Agent Management + summary: List all Proxy Agents + description: Returns a list of all proxy agents within your Fivetran account. + operationId: get_proxy_agent + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Proxy agent retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/ProxyAgentWithCountsResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + examples: + get_response_with_counts: + value: + code: Success + data: + items: + - id: id + account_id: account_id + registered_at: '2018-12-01T15:43:29.013729Z' + region: GCP_US_EAST4 + created_by: created_by + display_name: display_name + version: 1.0.0 + status: CONNECTED + connector_count: 3 + destination_count: 1 + next_cursor: eyJza2lwIjoyfQ + post: + tags: + - Proxy Agent Management + summary: Create a Proxy Agent + description: Creates a new proxy agent within your Fivetran account. + operationId: create_proxy_agent + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProxyParamRequest' + examples: + create_payload: + value: + display_name: display_name + group_region: GCP_US_EAST4 + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Created + message: + type: string + description: Response status text + example: Proxy agent has been created + data: + $ref: '#/components/schemas/ProxyAgentCreatedResponse' + type: object + '400': + description: Group region not supported + content: + application/json: + examples: + group_region_not_found: + value: + code: InvalidInput + message: Group region not supported. + '409': + description: Proxy agent with same name already exists. + content: + application/json: + examples: + proxy_name_conflict: + value: + code: Conflict + message: Proxy agent with same name already exists. + /v1/proxy/{agent_id}: + get: + tags: + - Proxy Agent Management + summary: Retrieve Proxy Agent Details + description: Retrieves the details of the specified proxy agent. + operationId: get_proxy_agent_details + parameters: + - name: agent_id + in: path + description: The unique identifier for the proxy agent within the Fivetran system. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + type: object + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + data: + $ref: '#/components/schemas/ProxyAgentWithUsageResponse' + examples: + get_details_with_usages: + value: + code: Success + data: + id: id + account_id: account_id + registered_at: '2018-12-01T15:43:29.013729Z' + region: GCP_US_EAST4 + created_by: created_by + display_name: display_name + version: 1.0.0 + status: CONNECTED + usage: + - id: connection_id + schema: schema + service: postgres + '404': + description: Proxy Agent not found + content: + application/json: + examples: + proxy_not_found: + value: + code: NotFound + message: Proxy Agent not found. + delete: + tags: + - Proxy Agent Management + summary: Delete a Proxy Agent + description: Deletes the specified proxy agent from your Fivetran account. + operationId: delete_proxy_agent + parameters: + - name: agent_id + in: path + description: The unique identifier for the proxy agent within the Fivetran system. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Agent string successfully deleted + type: object + examples: + delete_successful: + value: + code: Success + message: Agent successfully deleted. + '404': + description: Proxy agent not found. + content: + application/json: + examples: + proxy_not_found: + value: + code: NotFound + message: Proxy Agent not found. + '409': + description: Proxy agent have attached connections. + content: + application/json: + examples: + proxy_has_connections: + value: + code: Conflict + message: Proxy agent have attached connections. + /v1/proxy/{agent_id}/connections: + get: + tags: + - Proxy Agent Management + summary: List All Connections Attached to the Proxy Agent + description: Returns all connections attached to the specified proxy agent within your Fivetran account. + operationId: get_proxy_agent_connections + parameters: + - name: agent_id + in: path + description: The unique identifier for the proxy agent within the Fivetran system. + required: true + schema: + type: string + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Proxy agent connections retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/ProxyIntegrationResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + examples: + get_connections_response: + value: + code: Success + data: + items: + - connection_id: connection_id + next_cursor: eyJza2lwIjoyfQ + '404': + description: Proxy Agent not found + content: + application/json: + examples: + proxy_not_found: + value: + code: NotFound + message: Proxy Agent not found. + /v1/proxy/{agent_id}/regenerate-secrets: + post: + tags: + - Proxy Agent Management + summary: Regenerate Secrets for Proxy Agent + description: Regenerate secrets for proxy agent within your Fivetran account. + operationId: regenerate_secrets_proxy_agent + parameters: + - name: agent_id + in: path + description: The unique identifier for the proxy agent within the Fivetran system. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Created + message: + type: string + description: Response status text + example: Proxy agent secrets have been regenerated + data: + $ref: '#/components/schemas/ProxyAgentCreatedResponse' + type: object + '404': + description: Proxy agent not found. + content: + application/json: + examples: + proxy_not_found: + value: + code: NotFound + message: Proxy Agent not found. +components: + schemas: + PrivateLinkResponse: + required: + - cloud_provider + - config + - created_at + - created_by + - id + - name + - region + - service + - state + - state_summary + type: object + properties: + id: + type: string + description: The unique identifier for the private link within the Fivetran system. + example: private_link_id + name: + type: string + description: Private link name + example: PrivateLinkName + region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data. + example: AWS_US_EAST_1 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + service: + type: string + description: The name for the service type within the Fivetran system. + example: DATABRICKS + enum: + - DATABRICKS_AWS + - SNOWFLAKE_AWS + - REDSHIFT_AWS + - SOURCE_AWS + - DATABRICKS_AZURE + - SNOWFLAKE_AZURE + - ONELAKE_AZURE + - POSTGRES_WAREHOUSE_AZURE + - SQL_DATA_WAREHOUSE_AZURE + - SOURCE_AZURE + - SNOWFLAKE_GCP + - SOURCE_GCP + - DATABRICKS_GCP + state: + type: string + description: Private link state + example: OK + enum: + - CREATING + - UPDATING + - DESTROYING + - OK + - FAIL + host: + type: string + description: The DNS name of the PrivateLink endpoint service. + example: example.host.com + account_id: + type: string + cloud_provider: + type: string + description: Private link cloud provider + example: AWS + enum: + - AWS + - GCP + - AZURE + created_at: + type: string + description: The timestamp of the time the private link was created in your account + format: date-time + example: '2023-12-01T15:43:29.013729Z' + created_by: + type: string + description: The actor who created the private link + example: user_id + state_summary: + type: string + description: Private link state summary + example: ... + resource_upstream_status: + type: string + description: The upstream status of the PrivateLink resource as reported by the cloud provider. + example: IDLE + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + PrivateLinkCreateRequest: + required: + - config + - name + - region + - service + type: object + properties: + name: + type: string + description: Private link name + example: PrivateLinkName + region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data. + example: GCP_US_EAST4 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + service: + type: string + description: The name for the service type within the Fivetran system. + example: DATABRICKS + enum: + - DATABRICKS_AWS + - SNOWFLAKE_AWS + - REDSHIFT_AWS + - SOURCE_AWS + - DATABRICKS_AZURE + - SNOWFLAKE_AZURE + - ONELAKE_AZURE + - POSTGRES_WAREHOUSE_AZURE + - SQL_DATA_WAREHOUSE_AZURE + - SOURCE_AZURE + - SNOWFLAKE_GCP + - SOURCE_GCP + - DATABRICKS_GCP + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + PrivateLinkUpdateRequest: + type: object + properties: + config: + type: object + additionalProperties: true + description: The `config` object for the `service` in question (a JSON value; its keys depend on the `service`). The accepted keys per type are documented in the vendor's API reference and returned by the connector metadata endpoints. + ProxyAgentWithCountsResponse: + type: object + properties: + id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system. + example: id + account_id: + type: string + description: Fivetran Account ID. + example: account_id + registered_at: + type: string + description: The timestamp of the time the proxy agent was created in your account. + format: date-time + example: '2018-12-01T15:43:29.013729Z' + region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data. + example: GCP_US_EAST4 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + created_by: + type: string + description: The actor who created the proxy agent. + example: created_by + display_name: + type: string + description: Proxy agent name. + example: display_name + version: + type: string + description: The version of the proxy agent. + example: 1.0.0 + status: + type: string + description: The connection status of the proxy agent. + example: CONNECTED + enum: + - NOT_FOUND + - CONNECTED + - NOT_CONNECTED + connector_count: + type: integer + description: The number of source connections using the proxy agent. + format: int32 + example: 3 + destination_count: + type: integer + description: The number of destinations using the proxy agent. + format: int32 + example: 1 + ProxyParamRequest: + type: object + properties: + display_name: + type: string + description: Proxy agent name. + example: display_name + group_region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data (optional). + example: GCP_US_EAST4 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + ProxyAgentCreatedResponse: + required: + - agent_id + - auth_token + - client_cert + - client_private_key + - orchestrator_host + - orchestrator_port + type: object + properties: + agent_id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system. + example: id + auth_token: + type: string + description: The auth token. + example: auth_token + client_cert: + type: string + description: Client certificate. + example: client_cert + client_private_key: + type: string + description: Client private key. + example: client_private_key + orchestrator_host: + type: string + description: The hostname that the Proxy Agent uses to connect to the Fivetran orchestrator. + example: orchestrator.fivetran.com + orchestrator_port: + type: integer + description: The port that the Proxy Agent uses to connect to the Fivetran orchestrator. + format: int32 + example: 443 + ProxyAgentWithUsageResponse: + type: object + properties: + id: + type: string + description: The unique identifier for the proxy agent within the Fivetran system. + example: id + account_id: + type: string + description: Fivetran Account ID. + example: account_id + registered_at: + type: string + description: The timestamp of the time the proxy agent was created in your account. + format: date-time + example: '2018-12-01T15:43:29.013729Z' + region: + type: string + description: Data processing location. This is where Fivetran will operate and run computation on data. + example: GCP_US_EAST4 + enum: + - GCP_US_EAST4 + - GCP_US_WEST1 + - GCP_US_CENTRAL1 + - GCP_EUROPE_WEST3 + - GCP_AUSTRALIA_SOUTHEAST1 + - GCP_NORTHAMERICA_NORTHEAST1 + - GCP_EUROPE_WEST2 + - GCP_ASIA_SOUTHEAST1 + - GCP_ASIA_SOUTHEAST2 + - GCP_ASIA_SOUTH1 + - GCP_ASIA_NORTHEAST1 + - GCP_ASIA_NORTHEAST3 + - GCP_ME_CENTRAL2 + - AWS_US_EAST_1 + - AWS_US_EAST_2 + - AWS_US_WEST_2 + - AWS_AP_NORTHEAST_1 + - AWS_AP_NORTHEAST_2 + - AWS_AP_SOUTHEAST_1 + - AWS_AP_SOUTHEAST_2 + - AWS_EU_CENTRAL_1 + - AWS_EU_NORTH_1 + - AWS_EU_WEST_1 + - AWS_EU_WEST_2 + - AWS_EU_WEST_3 + - AWS_AP_SOUTH_1 + - AWS_CA_CENTRAL_1 + - AWS_US_GOV_WEST_1 + - AZURE_EASTUS2 + - AZURE_AUSTRALIAEAST + - AZURE_UKSOUTH + - AZURE_WESTEUROPE + - AZURE_CENTRALUS + - AZURE_CANADACENTRAL + - AZURE_UAENORTH + - AZURE_SOUTHEASTASIA + - AZURE_EASTUS + - AZURE_JAPANEAST + - AZURE_CENTRALINDIA + - AZURE_GERMANYWESTCENTRAL + - AZURE_WESTUS3 + - AZURE_SWITZERLANDNORTH + - AZURE_KOREACENTRAL + created_by: + type: string + description: The actor who created the proxy agent. + example: created_by + display_name: + type: string + description: Proxy agent name. + example: display_name + version: + type: string + description: The version of the proxy agent. + example: 1.0.0 + status: + type: string + description: The connection status of the proxy agent. + example: CONNECTED + enum: + - NOT_FOUND + - CONNECTED + - NOT_CONNECTED + usage: + type: array + description: List of source connections and destinations using this proxy agent. + items: + $ref: '#/components/schemas/ProxyAgentUsageResponse' + ProxyIntegrationResponse: + type: object + properties: + connection_id: + type: string + description: The unique identifier for the connection within the Fivetran system. + example: connection_id + ProxyAgentUsageResponse: + type: object + properties: + id: + type: string + description: The unique identifier for either source connection or destination within the Fivetran system. + example: two_words + schema: + type: string + description: The schema name of the source connection. Null for destinations. + example: schema + service: + type: string + description: Source connector service or connection destination type. + example: service + x-stackQL-resources: + private_links: + id: fivetran.networking.private_links + name: private_links + title: Private Links + methods: + list: + operation: + $ref: '#/paths/~1v1~1private-links/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1private-links/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1private-links~1{private_link_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1private-links~1{private_link_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1private-links~1{private_link_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/private_links/methods/get' + - $ref: '#/components/x-stackQL-resources/private_links/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/private_links/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/private_links/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/private_links/methods/delete' + replace: [] + proxy_agents: + id: fivetran.networking.proxy_agents + name: proxy_agents + title: Proxy Agents + methods: + list: + operation: + $ref: '#/paths/~1v1~1proxy/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1proxy/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1proxy~1{agent_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1proxy~1{agent_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + regenerate_secrets: + operation: + $ref: '#/paths/~1v1~1proxy~1{agent_id}~1regenerate-secrets/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/proxy_agents/methods/get' + - $ref: '#/components/x-stackQL-resources/proxy_agents/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/proxy_agents/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/proxy_agents/methods/delete' + replace: [] + proxy_agent_connections: + id: fivetran.networking.proxy_agent_connections + name: proxy_agent_connections + title: Proxy Agent Connections + methods: + list: + operation: + $ref: '#/paths/~1v1~1proxy~1{agent_id}~1connections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/proxy_agent_connections/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/roles.yaml b/providers/src/fivetran/v00.00.00000/services/roles.yaml deleted file mode 100644 index 4688cd0b..00000000 --- a/providers/src/fivetran/v00.00.00000/services/roles.yaml +++ /dev/null @@ -1,113 +0,0 @@ -openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} -info: - title: OpenAPI Definition - roles - description: Role Management - version: v1 -security: - - basicAuth: [] -components: - schemas: - RoleResponse: - type: object - properties: - name: - type: string - description: The role name - description: - type: string - description: The role description - scope: - uniqueItems: true - type: array - description: Defines the list of resources the role manages - items: - type: string - is_custom: - type: boolean - description: Defines whether the role is standard or custom - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - roles: - id: fivetran.roles.roles - name: roles - title: Roles - methods: - list_all_roles: - operation: - $ref: '#/paths/~1v1~1roles/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_all_roles: - operation: - $ref: '#/paths/~1v1~1roles/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/roles/methods/list_all_roles' - insert: [] - update: [] - delete: [] -paths: - /v1/roles: - get: - tags: - - Role Management - summary: List all roles - description: Returns a list of all predefined and custom roles within your Fivetran account. - operationId: list_all_roles - parameters: - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/RoleResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object diff --git a/providers/src/fivetran/v00.00.00000/services/teams.yaml b/providers/src/fivetran/v00.00.00000/services/teams.yaml index f8a98350..d0d125f3 100644 --- a/providers/src/fivetran/v00.00.00000/services/teams.yaml +++ b/providers/src/fivetran/v00.00.00000/services/teams.yaml @@ -1,1244 +1,1327 @@ openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} info: - title: OpenAPI Definition - teams - description: Team Management + title: Fivetran Teams API + description: Teams and their user, group and connection memberships. version: v1 -security: - - basicAuth: [] -components: - schemas: - MembershipResponse: - type: object - properties: - id: - type: string - description: The membership entity unique identifier - role: - type: string - description: The role the user has within the entity - created_at: - type: string - description: The date and time the membership was created - format: date-time - MembershipRequest: - required: - - id - - role - type: object - properties: - id: - type: string - description: The unique identifier for the user within the Fivetran system. - role: - type: string - description: 'The role that you would like to assign to the user ' - TeamMembershipResponse: - type: object - properties: - user_id: - type: string - description: The unique identifier of user - role: - type: string - description: The user's role within the team - UpdateMembershipRequest: - required: - - role - type: object - properties: - role: - type: string - description: 'The role that you would like to assign to the user ' - TeamResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the team within your account - name: - type: string - description: The name of the team within your account - description: - type: string - description: The description of the team within your account - role: - type: string - description: The account role of the team - TeamRequest: - type: object - properties: - name: - type: string - description: The name of the team within your account - description: - type: string - description: The description of the team within your account - role: - type: string - description: The account role of the team - TeamMembershipRequest: - type: object - properties: - user_id: - type: string - description: The unique identifier of user - role: - type: string - description: The user's role within the team - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - connectors: - id: fivetran.teams.connectors - name: connectors - title: Connectors - methods: - get_team_memberships_in_connectors: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1connectors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _get_team_memberships_in_connectors: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1connectors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - add_team_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1connectors/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_team_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1connectors~1{connectorId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _get_team_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1connectors~1{connectorId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_team_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1connectors~1{connectorId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - update_team_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1connectors~1{connectorId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/connectors/methods/get_team_memberships_in_connectors' - - $ref: '#/components/x-stackQL-resources/connectors/methods/get_team_membership_in_connector' - insert: - - $ref: '#/components/x-stackQL-resources/connectors/methods/add_team_membership_in_connector' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/connectors/methods/delete_team_membership_in_connector' - users: - id: fivetran.teams.users - name: users - title: Users - methods: - get_user_in_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1users~1{userId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _get_user_in_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1users~1{userId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_from_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1users~1{userId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - update_user_membership: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1users~1{userId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - list_users_in_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_users_in_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - add_user_to_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1users/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/get_user_in_team' - - $ref: '#/components/x-stackQL-resources/users/methods/list_users_in_team' - insert: - - $ref: '#/components/x-stackQL-resources/users/methods/add_user_to_team' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/users/methods/delete_user_from_team' - teams: - id: fivetran.teams.teams - name: teams - title: Teams - methods: - team_details: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _team_details: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - list_all_teams: - operation: - $ref: '#/paths/~1v1~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_all_teams: - operation: - $ref: '#/paths/~1v1~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_team: - operation: - $ref: '#/paths/~1v1~1teams/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/teams/methods/team_details' - - $ref: '#/components/x-stackQL-resources/teams/methods/list_all_teams' - insert: - - $ref: '#/components/x-stackQL-resources/teams/methods/create_team' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/teams/methods/delete_team' - role: - id: fivetran.teams.role - name: role - title: Role - methods: - delete_team_membership_in_account: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1role/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/role/methods/delete_team_membership_in_account' - groups: - id: fivetran.teams.groups - name: groups - title: Groups - methods: - get_team_memberships_in_groups: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1groups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _get_team_memberships_in_groups: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1groups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - add_team_membership_in_group: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1groups/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_team_membership_in_group: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1groups~1{groupId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _get_team_membership_in_group: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1groups~1{groupId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_team_membership_in_group: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1groups~1{groupId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - update_team_membership_in_group: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1groups~1{groupId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/groups/methods/get_team_memberships_in_groups' - - $ref: '#/components/x-stackQL-resources/groups/methods/get_team_membership_in_group' - insert: - - $ref: '#/components/x-stackQL-resources/groups/methods/add_team_membership_in_group' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/groups/methods/delete_team_membership_in_group' paths: - '/v1/teams/{teamId}/connectors': + /v1/teams: get: tags: - Team Management - summary: List all connector memberships - description: Returns connector memberships within a team. - operationId: get_team_memberships_in_connectors + summary: List All Teams + description: Returns a list of all teams within your Fivetran account + operationId: list_all_teams parameters: - - name: teamId - in: path - description: The unique identifier for the team within the account - required: true - schema: - type: string - name: cursor in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) required: false schema: type: string + example: cursor_value + example: cursor_value - name: limit in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100 + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. required: false schema: type: integer format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + example: 100 + example: 100 responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Teams retrieved successfully data: + required: + - items properties: items: type: array - description: The collection of return items + description: The collection of returned items items: - $ref: '#/components/schemas/MembershipResponse' - nextCursor: + $ref: '#/components/schemas/TeamResponse' + next_cursor: type: string description: The value of the cursor parameter for the next page + example: cursor_value type: object type: object post: tags: - Team Management - summary: Add connector membership - description: Adds a connector role within a team - operationId: add_team_membership_in_connector - parameters: - - name: teamId - in: path - description: The unique identifier for the team within the account - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + summary: Create a Team + description: Creates a new team in your Fivetran account + operationId: create_team requestBody: content: application/json: schema: - $ref: '#/components/schemas/MembershipRequest' + $ref: '#/components/schemas/TeamRequest' responses: '201': - description: Successful response + description: default response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team has been created data: - $ref: '#/components/schemas/MembershipResponse' + $ref: '#/components/schemas/TeamResponse' type: object - '/v1/teams/{teamId}/users/{userId}': + /v1/teams/{team_id}: get: tags: - Team Management - summary: Retrieve user membership in a team - description: Returns the user role a user has within a team - operationId: get_user_in_team + summary: Retrieve Team Details + description: Returns information for a given team within your Fivetran account + operationId: team_details parameters: - - name: teamId - in: path - description: The unique identifier for the team within the account - required: true - schema: - type: string - - name: userId + - name: team_id in: path - description: The unique identifier for the user within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team details retrieved successfully data: - $ref: '#/components/schemas/TeamMembershipResponse' + $ref: '#/components/schemas/TeamResponse' type: object delete: tags: - Team Management - summary: Delete a user from a team - description: Removes a user from a team - operationId: delete_user_from_team + summary: Delete a Team + description: Deletes a team from your Fivetran account + operationId: delete_team parameters: - - name: teamId - in: path - description: The unique identifier for the team within the account - required: true - schema: - type: string - - name: userId + - name: team_id in: path - description: The unique identifier for the user within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team has been deleted type: object patch: tags: - Team Management - summary: Modify a user membership - description: Updates a user role within a team in your Fivetran account - operationId: update_user_membership + summary: Update a Team + description: Updates information for an existing team within your Fivetran account + operationId: modify_team parameters: - - name: teamId - in: path - description: The unique identifier for the team within the account - required: true - schema: - type: string - - name: userId + - name: team_id in: path - description: The unique identifier for the user within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/UpdateMembershipRequest' + $ref: '#/components/schemas/UpdateTeamRequest' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team has been updated + data: + $ref: '#/components/schemas/TeamResponse' type: object - '/v1/teams/{teamId}': + /v1/teams/{team_id}/connections: get: tags: - Team Management - summary: Retrieve team details - description: Returns information for a given team within your Fivetran account - operationId: team_details + summary: List All Connection Memberships + description: Returns all connections a team has membership in. + operationId: get_team_memberships_in_connections parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: Accept - in: header + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false schema: type: string - example: application/json - default: application/json + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team connection memberships retrieved successfully data: - $ref: '#/components/schemas/TeamResponse' + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/MembershipResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object type: object - delete: + post: tags: - Team Management - summary: Delete a team - description: Deletes a team from your Fivetran account - operationId: delete_team + summary: Add Connection Membership + description: Adds a team as a member of a connection. + operationId: add_team_membership_in_connection + parameters: + - name: team_id + in: path + description: The unique identifier for the team within the account. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MembershipRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Connection membership has been created + data: + $ref: '#/components/schemas/MembershipResponse' + type: object + /v1/teams/{team_id}/connections/{connection_id}: + get: + tags: + - Team Management + summary: Retrieve Connection Membership + description: Returns details of a team membership in a connection. + operationId: get_team_membership_in_connection parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: Accept - in: header + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true schema: type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team connection membership retrieved successfully + data: + $ref: '#/components/schemas/MembershipResponse' type: object - patch: + delete: tags: - Team Management - summary: Modify a team - description: Updates information for an existing team within your Fivetran account - operationId: modify_team + summary: Delete Connection Membership + description: Removes team membership in a connection. + operationId: delete_team_membership_in_connection parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: Accept - in: header + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true schema: type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TeamRequest' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text - data: - $ref: '#/components/schemas/TeamResponse' + example: Connection membership has been deleted type: object - '/v1/teams/{teamId}/role': - delete: + patch: tags: - Team Management - summary: Delete team role in account - description: Removes a team role within your Fivetran account - operationId: delete_team_membership_in_account + summary: Update Connection Membership + description: Updates team membership in a connection + operationId: update_team_membership_in_connection parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: Accept - in: header + - name: connection_id + in: path + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). + required: true schema: type: string - example: application/json - default: application/json + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateMembershipRequest' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Connection membership has been updated + data: + $ref: '#/components/schemas/MembershipResponse' type: object - '/v1/teams/{teamId}/groups': + /v1/teams/{team_id}/groups: get: tags: - Team Management - summary: List all group memberships - description: Returns a group membership within a team + summary: List All Group Memberships + description: Returns all groups in which a team has membership. operationId: get_team_memberships_in_groups parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - name: cursor in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) required: false schema: type: string + example: cursor_value + example: cursor_value - name: limit in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100 + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. required: false schema: type: integer format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + example: 100 + example: 100 responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team group memberships retrieved successfully data: + required: + - items properties: items: type: array - description: The collection of return items + description: The collection of returned items items: $ref: '#/components/schemas/MembershipResponse' - nextCursor: + next_cursor: type: string description: The value of the cursor parameter for the next page + example: cursor_value type: object type: object post: tags: - Team Management - summary: Add group membership - description: Adds a group membership in a team + summary: Add Group Membership + description: Adds a team as a member of a group. operationId: add_team_membership_in_group parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/MembershipRequest' + $ref: '#/components/schemas/MembershipRequest_add_team_membership_in_group' responses: '201': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Group membership has been created data: $ref: '#/components/schemas/MembershipResponse' type: object - '/v1/teams/{teamId}/groups/{groupId}': + /v1/teams/{team_id}/groups/{group_id}: get: tags: - Team Management - summary: Retrieve group membership - description: Returns a group membership within a team. + summary: Retrieve Group Membership Details + description: Returns details of a team membership in a group. operationId: get_team_membership_in_group parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: groupId + - name: group_id in: path - description: The unique identifier for the group within the account + description: The unique identifier for the group within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team group membership retrieved successfully data: $ref: '#/components/schemas/MembershipResponse' type: object delete: tags: - Team Management - summary: Delete group membership - description: Removes group membership in a team + summary: Delete Group Membership + description: Removes a team's membership in a group. operationId: delete_team_membership_in_group parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: groupId + - name: group_id in: path - description: The unique identifier for the group within the account + description: The unique identifier for the group within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Group membership has been deleted type: object patch: tags: - Team Management - summary: Update group membership - description: Updates group membership in a team + summary: Update Group Membership + description: Updates team membership in a group. operationId: update_team_membership_in_group parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: groupId + - name: group_id in: path - description: The unique identifier for the group within the account + description: The unique identifier for the group within the Fivetran system. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/UpdateMembershipRequest' + $ref: '#/components/schemas/UpdateMembershipRequest_update_team_membership_in_group' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Group membership has been updated + data: + $ref: '#/components/schemas/MembershipResponse' type: object - /v1/teams: + /v1/teams/{team_id}/role: + delete: + tags: + - Team Management + summary: Delete Team from Account + description: Removes a team from your Fivetran account + operationId: delete_team_membership_in_account + parameters: + - name: team_id + in: path + description: The unique identifier for the team within the account. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Team role in account has been removed + type: object + /v1/teams/{team_id}/users: get: tags: - Team Management - summary: List all teams - description: Returns a list of all teams within your Fivetran account - operationId: list_all_teams + summary: List All User Memberships + description: Returns a list of users and their roles within a team in your Fivetran account + operationId: list_users_in_team parameters: + - name: team_id + in: path + description: The unique identifier for the team within the account. + required: true + schema: + type: string - name: cursor in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) required: false schema: type: string + example: cursor_value + example: cursor_value - name: limit in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100 + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. required: false schema: type: integer format: int32 - - name: Accept - in: header + example: 100 + example: 100 + - name: active + in: query + description: Indicates whether to return only enabled users (true) or not (false). By default, both enabled (allowed to log in) and suspended users are returned. + required: false schema: - type: string - example: application/json - default: application/json + type: boolean + example: true + example: true responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team users retrieved successfully data: + required: + - items properties: items: type: array - description: The collection of return items + description: The collection of returned items items: - $ref: '#/components/schemas/TeamResponse' - nextCursor: + $ref: '#/components/schemas/TeamMembershipResponse' + next_cursor: type: string description: The value of the cursor parameter for the next page + example: cursor_value type: object type: object post: tags: - Team Management - summary: Create a team - description: Creates a new team in your Fivetran account - operationId: create_team + summary: Add a User to the Team + description: Assigns a role for a user in a team. + operationId: add_user_to_team parameters: - - name: Accept - in: header + - name: team_id + in: path + description: The unique identifier for the team within the account. + required: true schema: type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/TeamRequest' + $ref: '#/components/schemas/TeamMembershipRequest' responses: '201': - description: default response + description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User has been added to the team data: - $ref: '#/components/schemas/TeamResponse' + $ref: '#/components/schemas/TeamMembershipResponse' type: object - '/v1/teams/{teamId}/connectors/{connectorId}': + /v1/teams/{team_id}/users/{user_id}: get: tags: - Team Management - summary: Retrieve connector membership - description: Returns a connector membership within a team - operationId: get_team_membership_in_connector + summary: Retrieve User Membership in a Team + description: Returns the membership details for a user in a team. + operationId: get_user_in_team parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: connectorId + - name: user_id in: path - description: The unique identifier for the connector within the account + description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Team user details retrieved successfully data: - $ref: '#/components/schemas/MembershipResponse' + $ref: '#/components/schemas/TeamMembershipResponse' type: object delete: tags: - Team Management - summary: Delete connector membership - description: Removes connector membership in a team - operationId: delete_team_membership_in_connector + summary: Delete a User from a Team + description: Removes a user from a team. + operationId: delete_user_from_team parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: connectorId + - name: user_id in: path - description: The unique identifier for the connector within the account + description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User has been removed from the team type: object patch: tags: - Team Management - summary: Update connector membership - description: Updates connector membership in a team - operationId: update_team_membership_in_connector + summary: Update a User Membership + description: Updates a user membership in a team. + operationId: update_user_membership parameters: - - name: teamId + - name: team_id in: path - description: The unique identifier for the team within the account + description: The unique identifier for the team within the account. required: true schema: type: string - - name: connectorId + - name: user_id in: path - description: The unique identifier for the connector within the account + description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/UpdateMembershipRequest' - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - type: object - '/v1/teams/{teamId}/users': - get: - tags: - - Team Management - summary: List all user memberships - description: Returns a list of users and their roles within a team in your Fivetran account - operationId: list_users_in_team - parameters: - - name: teamId - in: path - description: The unique identifier for the team within the account - required: true - schema: - type: string - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100 - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + $ref: '#/components/schemas/UpdateMembershipRequest_update_user_membership' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User role has been updated data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/TeamMembershipResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - post: - tags: - - Team Management - summary: Add a user to a team - description: Assigns a user role within a team - operationId: add_user_to_team - parameters: - - name: teamId - in: path - description: The unique identifier for the team within the account - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TeamMembershipRequest' - responses: - '201': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - $ref: '#/components/schemas/TeamMembershipResponse' + $ref: '#/components/schemas/TeamMembershipResponse' type: object +components: + schemas: + TeamResponse: + required: + - id + - role + type: object + properties: + id: + type: string + description: The unique identifier for the team within your account + example: team_id + name: + type: string + description: The name of the team within your account + example: Team Title + description: + type: string + description: The description of the team within your account + example: Team Description + role: + type: string + description: The account role of the team + example: Account Reviewer + TeamRequest: + type: object + properties: + name: + type: string + description: The name of the team within your account + example: Team Title + description: + type: string + description: The description of the team within your account + example: Team Description + role: + type: string + description: The account role of the team + example: Account Analyst + UpdateTeamRequest: + type: object + properties: + name: + type: string + description: The name of the team within your account + example: Team Name + description: + type: string + description: The description of the team within your account + example: Team description + role: + type: string + description: The account role of the team + example: Account Analyst + MembershipResponse: + required: + - created_at + - id + - role + type: object + properties: + id: + type: string + description: The membership entity unique identifier + example: resource_id + role: + type: string + description: The role the user has within the entity + example: Role Title + created_at: + type: string + description: The timestamp that the user created their Fivetran account + format: date-time + example: '2024-01-01T00:00:00Z' + MembershipRequest: + required: + - id + - role + type: object + properties: + id: + type: string + description: The connection unique identifier + example: connection_id + role: + type: string + description: The team's role + example: View Connection + UpdateMembershipRequest: + required: + - role + type: object + properties: + role: + type: string + description: The team's role + example: Edit Connection + MembershipRequest_add_team_membership_in_group: + required: + - id + - role + type: object + properties: + id: + type: string + description: The group unique identifier + example: group_id + role: + type: string + description: The team's role + example: Manage Destination + UpdateMembershipRequest_update_team_membership_in_group: + required: + - role + type: object + properties: + role: + type: string + description: The user's role within the team + example: Manage Destination + TeamMembershipResponse: + required: + - created_at + - role + - user_id + type: object + properties: + user_id: + type: string + description: The unique identifier of user + example: user_id + role: + type: string + description: The user's role within the team + example: Team Member + created_at: + type: string + description: The date and time the membership was created + format: date-time + example: '2023-08-20T10:15:20.677566Z' + TeamMembershipRequest: + required: + - user_id + type: object + properties: + user_id: + type: string + description: The unique identifier of user + example: user_id + role: + type: string + description: The user's role within the team + example: Team Manager + UpdateMembershipRequest_update_user_membership: + required: + - role + type: object + properties: + role: + type: string + description: The user's role within the team + example: Team Member + x-stackQL-resources: + teams: + id: fivetran.teams.teams + name: teams + title: Teams + methods: + list: + operation: + $ref: '#/paths/~1v1~1teams/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + remove_account_role: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1role/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/teams/methods/get' + - $ref: '#/components/x-stackQL-resources/teams/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/teams/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/teams/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/teams/methods/delete' + replace: [] + connection_memberships: + id: fivetran.teams.connection_memberships + name: connection_memberships + title: Connection Memberships + methods: + list: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1connections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1connections/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1connections~1{connection_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1connections~1{connection_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1connections~1{connection_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/get' + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/delete' + replace: [] + group_memberships: + id: fivetran.teams.group_memberships + name: group_memberships + title: Group Memberships + methods: + list: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1groups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1groups/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1groups~1{group_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1groups~1{group_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1groups~1{group_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/get' + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/delete' + replace: [] + user_memberships: + id: fivetran.teams.user_memberships + name: user_memberships + title: User Memberships + methods: + list: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1users/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1users~1{user_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1users~1{user_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1users~1{user_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/user_memberships/methods/get' + - $ref: '#/components/x-stackQL-resources/user_memberships/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/user_memberships/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/user_memberships/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/user_memberships/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/transformations.yaml b/providers/src/fivetran/v00.00.00000/services/transformations.yaml new file mode 100644 index 00000000..983f3a21 --- /dev/null +++ b/providers/src/fivetran/v00.00.00000/services/transformations.yaml @@ -0,0 +1,1447 @@ +openapi: 3.0.1 +info: + title: Fivetran Transformations API + description: Transformations, transformation projects and quickstart package metadata. + version: v1 +paths: + /v1/transformation-projects: + get: + tags: + - Transformation Projects Management + summary: List all Transformation Projects + description: Returns a list of all transformation projects available via API within your Fivetran account. + operationId: list_all_transformation_projects + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation projects retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/TransformationProjectResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + post: + tags: + - Transformation Projects Management + summary: Create Transformation Project + description: Creates a new transformation project. + operationId: create_transformation_project + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NewTransformationProjectRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation project created successfully + data: + $ref: '#/components/schemas/TransformationProjectDetailsResponse' + type: object + /v1/transformation-projects/{project_id}: + get: + tags: + - Transformation Projects Management + summary: Retrieve Transformation Project Details + description: Returns transformation project details if a valid identifier was provided. + operationId: transformation_project_details + parameters: + - name: project_id + in: path + description: The unique identifier for the transformation project within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation project details retrieved successfully + data: + $ref: '#/components/schemas/TransformationProjectDetailsResponse' + type: object + delete: + tags: + - Transformation Projects Management + summary: Delete Transformation Project + description: Deletes transformation project if a valid identifier was provided. + operationId: delete_transformation_project + parameters: + - name: project_id + in: path + description: The unique identifier for the transformation project within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation project with id 'string' has been deleted + type: object + patch: + tags: + - Transformation Projects Management + summary: Update Transformation Project + description: Updates transformation project if a valid identifier was provided. + operationId: modify_transformation_project + parameters: + - name: project_id + in: path + description: The unique identifier for the transformation project within the Fivetran system + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateTransformationProjectRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation project updated successfully + data: + $ref: '#/components/schemas/TransformationProjectDetailsResponse' + type: object + /v1/transformation-projects/{project_id}/test: + post: + tags: + - Transformation Projects Management + summary: Test Transformation Project + description: Triggers tests for an existing transformation project. + operationId: test_transformation_project + parameters: + - name: project_id + in: path + description: The unique identifier for the transformation project within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation project test completed successfully + data: + $ref: '#/components/schemas/TransformationProjectDetailsResponse' + type: object + /v1/transformations: + get: + tags: + - Transformation Management + summary: List all Transformations + description: Returns a list of all transformations within your Fivetran account. + operationId: transformations_list + parameters: + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + - name: group_id + in: query + description: Specify the group identifier to filter transformations by group + required: false + schema: + type: string + example: group_id + example: group_id + - name: project_id + in: query + description: Specify dbt project identifier to filter transformations by project + required: false + schema: + type: string + example: project_id + example: project_id + - name: type + in: query + description: Transformation type filter + required: false + schema: + type: string + example: DBT_CORE + enum: + - DBT_CORE + - QUICKSTART + example: DBT_CORE + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformations list retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/TransformationResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + post: + tags: + - Transformation Management + summary: Create a Transformation + description: Creates a new transformation. + operationId: create_transformation + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NewTransformationRequest' + responses: + '201': + description: Created response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation created successfully + data: + $ref: '#/components/schemas/TransformationResponse' + type: object + /v1/transformations/package-metadata: + get: + tags: + - Transformation Management + summary: List All Quickstart Package Metadata + description: Returns a list of available Quickstart transformation package metadata details. + operationId: transformation_package_metadata_list + parameters: + - name: service + in: query + description: Specify the service identifier to filter Quickstart packages by connection service + required: false + schema: + type: string + example: service + example: service + - name: name + in: query + description: Specify the package name to filter Quickstart packages by name + required: false + schema: + type: string + example: service + example: service + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false + schema: + type: string + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false + schema: + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation package metadata list retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/TransformationPackageMetadataResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + '400': + description: Bad request + /v1/transformations/package-metadata/{package_definition_id}: + get: + tags: + - Transformation Management + summary: Retrieve a Quickstart Package Metadata Details + description: Returns the metadata details of the Quickstart transformation package if a valid identifier is provided. + operationId: transformation_package_metadata_details + parameters: + - name: package_definition_id + in: path + description: The unique identifier for the Quickstart transformation package definition within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation package metadata details retrieved successfully + data: + $ref: '#/components/schemas/TransformationPackageMetadataResponse' + type: object + '404': + description: Transformation Package not found + /v1/transformations/{transformation_id}: + get: + tags: + - Transformation Management + summary: Retrieve Transformation Details + description: Returns a transformation details if a valid identifier is provided. + operationId: transformation_details + parameters: + - name: transformation_id + in: path + description: The unique identifier for the transformation within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation details retrieved successfully + data: + $ref: '#/components/schemas/TransformationResponse' + type: object + '404': + description: Transformation not found + delete: + tags: + - Transformation Management + summary: Delete a Transformation + description: Deletes a transformation if a valid identifier is provided. + operationId: delete_transformation + parameters: + - name: transformation_id + in: path + description: The unique identifier for the transformation within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation with id 'string' has been deleted + type: object + '404': + description: Transformation not found + patch: + tags: + - Transformation Management + summary: Update a Transformation + description: Updates the transformation if a valid identifier is provided. + operationId: update_transformation + parameters: + - name: transformation_id + in: path + description: The unique identifier for the transformation within the Fivetran system + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateTransformationRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation updated successfully + data: + $ref: '#/components/schemas/TransformationResponse' + type: object + '404': + description: Transformation not found + /v1/transformations/{transformation_id}/cancel: + post: + tags: + - Transformation Management + summary: Cancel Running Transformation + description: Cancels the execution of the transformation if a valid identifier is provided. + operationId: cancel_transformation + parameters: + - name: transformation_id + in: path + description: The unique identifier for the transformation within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation with id 'string' has been canceled + type: object + '404': + description: Transformation not found + /v1/transformations/{transformation_id}/run: + post: + tags: + - Transformation Management + summary: Run Transformation + description: Runs the transformation if a valid identifier is provided. + operationId: run_transformation + parameters: + - name: transformation_id + in: path + description: The unique identifier for the transformation within the Fivetran system + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RunTransformationRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation with id 'string' has been started + type: object + '404': + description: Transformation not found + /v1/transformations/{transformation_id}/upgrade: + post: + tags: + - Transformation Management + summary: Upgrade Transformation Package + description: Upgrades the Quickstart transformation package to latest version if a valid identifier is provided. + operationId: upgrade_transformation_package + parameters: + - name: transformation_id + in: path + description: The unique identifier for the transformation within the Fivetran system + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Transformation package has been upgraded + type: object + '404': + description: Transformation Package not found +components: + schemas: + TransformationProjectResponse: + type: object + properties: + id: + type: string + description: The unique identifier for the transformation project within the Fivetran system + type: + type: string + description: Transformation project type + enum: + - DBT_CORE + created_at: + type: string + description: The timestamp when the transformation project was created + format: date-time + created_by_id: + type: string + description: The unique identifier for the actor (user or system key) within the Fivetran system + group_id: + type: string + description: The unique identifier for the group within the Fivetran system + NewTransformationProjectRequest: + type: object + properties: + group_id: + type: string + description: The unique identifier for the group within the Fivetran system + type: + type: string + description: Transformation project type + enum: + - DBT_CORE + run_tests: + type: boolean + description: The boolean flag specifies if the project should be tested after creation or update operation + project_config: + type: object + description: Depends on `type` (DBT_CORE). + properties: + dbt_version: + type: string + description: The version of dbt that should run the project + default_schema: + type: string + description: The default schema in the destination + git_remote_url: + type: string + description: The Git remote URL of your dbt project + folder_path: + type: string + description: The path to the folder in the Git repo where your dbt project is stored. + git_branch: + type: string + description: The Git branch of your dbt project. + threads: + type: integer + description: The number of threads dbt will use + format: int32 + target_name: + type: string + description: The default target name + environment_vars: + type: array + description: 'The list of environment variables defined as key-value pairs in the raw string format using `=` as a separator. The variable names should have the `DBT_` prefix and can contain A-Z, 0-9, dash, underscore, or dot characters. Example: `["DBT_VARIABLE=variable_value", "DBT_VARIABLE_2=variable_value_2"]`' + items: + type: string + description: '' + TransformationProjectDetailsResponse: + type: object + properties: + id: + type: string + description: The unique identifier for the transformation project within the Fivetran system + type: + type: string + description: Transformation project type + enum: + - DBT_CORE + status: + type: string + description: The status of transformation project + enum: + - NOT_READY + - READY + - ERROR + errors: + type: array + description: The list of errors occurred during project processing and setup + items: + type: string + created_at: + type: string + description: The timestamp when the transformation project was created + format: date-time + created_by_id: + type: string + description: The unique identifier for the actor (user or system key) within the Fivetran system + group_id: + type: string + description: The unique identifier for the group within the Fivetran system + setup_tests: + type: array + description: The setup tests results + items: + $ref: '#/components/schemas/SetupTestResultResponse' + project_config: + type: object + description: Depends on `type` (DBT_CORE). + properties: + dbt_version: + type: string + description: The version of dbt that should run the project + default_schema: + type: string + description: The default schema in the destination + git_remote_url: + type: string + description: The Git remote URL of your dbt project + folder_path: + type: string + description: The path to the folder in the Git repo where your dbt project is stored. + git_branch: + type: string + description: The Git branch of your dbt project. + threads: + type: integer + description: The number of threads dbt will use + format: int32 + target_name: + type: string + description: The default target name + environment_vars: + type: array + description: 'The list of environment variables defined as key-value pairs in the raw string format using `=` as a separator. The variable names should have the `DBT_` prefix and can contain A-Z, 0-9, dash, underscore, or dot characters. Example: `["DBT_VARIABLE=variable_value", "DBT_VARIABLE_2=variable_value_2"]`' + items: + type: string + description: '' + public_key: + type: string + description: The public key used to grant Fivetran SSH access to the dbt project Git repository + UpdateTransformationProjectRequest: + type: object + properties: + run_tests: + type: boolean + description: The boolean flag specifies if the project should be tested after creation or update operation + project_config: + type: object + description: Depends on `type` (DBT_CORE). + properties: + folder_path: + type: string + description: The path to the folder in the Git repo where your dbt project is stored. + git_branch: + type: string + description: The Git branch of your dbt project. + threads: + type: integer + description: The number of threads dbt will use + format: int32 + target_name: + type: string + description: The default target name + environment_vars: + type: array + description: 'The list of environment variables defined as key-value pairs in the raw string format using `=` as a separator. The variable names should have the `DBT_` prefix and can contain A-Z, 0-9, dash, underscore, or dot characters. Example: `["DBT_VARIABLE=variable_value", "DBT_VARIABLE_2=variable_value_2"]`' + items: + type: string + description: '' + TransformationResponse: + required: + - created_at + - created_by_id + - id + - paused + - schedule + - status + - type + type: object + properties: + id: + type: string + description: The unique identifier for the transformation within the Fivetran system + example: transformation_id + status: + type: string + description: The status of transformation + example: RUNNING + enum: + - NEW + - SCHEDULING + - RUNNING + - TERMINATING + - SUCCEEDED + - FAILED + - BLOCKED + - CANCELED + - PARTIALLY_SUCCEEDED + schedule: + description: The transformation schedule + required: + - schedule_type + type: object + properties: + cron: + type: array + description: 'Cron schedule: list of CRON strings.' + example: + - 0 */1 * * * + items: + type: string + interval: + type: integer + description: The interval in minutes + format: int32 + example: 60 + schedule_type: + type: string + description: 'The schedule type. The following values are supported: ''INTEGRATED'', ''TIME_OF_DAY'', ''INTERVAL'', ''CRON''' + example: TIME_OF_DAY + enum: + - INTEGRATED + - TIME_OF_DAY + - INTERVAL + - CRON + days_of_week: + uniqueItems: true + type: array + description: The set of days of the week, where an empty set represents a daily schedule + example: + - MONDAY + - FRIDAY + items: + type: string + enum: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + time_of_day: + type: string + description: 'The time of the day the transformation should be launched at. The following values are supported: ''00:00'', ''00:30'', ''01:00'', ''01:30'', ''02:00'', ''02:30'', ''03:00'', ''03:30'', ''04:00'', ''04:30'', ''05:00'', ''05:30'', ''06:00'', ''06:30'', ''07:00'', ''07:30'', ''08:00'', ''08:30'', ''09:00'', ''09:30'', ''10:00'', ''10:30'', ''11:00'', ''11:30'', ''12:00'', ''12:30'', ''13:00'', ''13:30'', ''14:00'', ''14:30'', ''15:00'', ''15:30'', ''16:00'', ''16:30'', ''17:00'', ''17:30'', ''18:00'', ''18:30'', ''19:00'', ''19:30'', ''20:00'', ''20:30'', ''21:00'', ''21:30'', ''22:00'', ''22:30'', ''23:00'', ''23:30''' + example: '14:00' + connection_ids: + uniqueItems: true + type: array + description: 'The list of connection IDs that the Transformation for dbt depends on when using the integrated schedule (`schedule_type: INTEGRATED`) or custom schedules (`schedule_type: TIME_OF_DAY` or `schedule_type: INTERVAL`) with smart syncing enabled (`smart_syncing: true`). These connections must belong to the same group as the dbt project. This field should not be used for Quickstart transformations.' + example: + - connection_id + items: + type: string + transformation_ids: + uniqueItems: true + type: array + description: The list of the transformation identifiers to be used for the integrated schedule or custom scheduling with smart syncing enabled + example: + - transformation_id + items: + type: string + smart_syncing: + type: boolean + description: The boolean flag that enables the Smart Syncing schedule + type: + type: string + description: Transformation type + example: DBT_CORE + enum: + - DBT_CORE + - QUICKSTART + paused: + type: boolean + description: The field indicates whether transformation is in paused state + example: true + created_at: + type: string + description: The timestamp when the transformation was created + format: date-time + example: '2024-01-02T00:00:00.743708Z' + created_by_id: + type: string + description: The unique identifier for the actor (user or system key) within the Fivetran system + example: user_id + last_started_at: + type: string + description: The timestamp when the transformation was started last time + format: date-time + example: '2024-01-02T00:00:00.000001Z' + last_ended_at: + type: string + description: The timestamp when the transformation was ended last time + format: date-time + example: '2024-01-02T00:00:00.000001Z' + output_model_names: + uniqueItems: true + type: array + description: The list of transformation output models + items: + type: string + transformation_config: + type: object + description: Depends on `type` (DBT_CORE, QUICKSTART). + properties: + project_id: + type: string + description: The unique identifier for the dbt project within the Fivetran system + name: + type: string + description: The transformation name + steps: + type: array + description: The list of transformation steps + items: + type: object + properties: + name: + type: string + description: The step name + command: + type: string + description: The dbt command in the transformation step + description: '' + package_name: + type: string + description: The Quickstart transformation package name + connection_ids: + type: array + description: 'The list of connection IDs that the Quickstart transformation depends on when using the integrated schedule (`schedule_type: INTEGRATED`) or custom schedules (`schedule_type: TIME_OF_DAY` or `schedule_type: INTERVAL`) with smart syncing enabled (`smart_syncing: true`). This is also used to auto-detect `package_name` if it is not provided. This field should not be used for Transformations for dbt.' + items: + type: string + description: '' + excluded_models: + type: array + description: The list of excluded output model names + items: + type: string + description: '' + upgrade_available: + type: boolean + description: The boolean flag indicating that a newer version is available for the transformation package + configurable_variables: + type: string + description: The map of configurable variable values keyed by variable name. (opaque JSON object) + group_id: + type: string + description: The destination group identifier to run the Quickstart transformation against. Required only when it differs from the connections' own group, for example, when the connections land data through Managed Data Lake Service (MDLS) and this group is linked to it. Defaults to the connections' own group. + NewTransformationRequest: + type: object + properties: + schedule: + $ref: '#/components/schemas/TransformationSchedule' + type: + type: string + enum: + - DBT_CORE + - QUICKSTART + paused: + type: boolean + transformation_config: + type: object + description: Depends on `type` (DBT_CORE, QUICKSTART). + properties: + project_id: + type: string + description: The unique identifier for the dbt project within the Fivetran system + name: + type: string + description: The transformation name + steps: + type: array + description: The list of transformation steps + items: + type: object + properties: + name: + type: string + description: The step name + command: + type: string + description: The dbt command in the transformation step + description: '' + package_name: + type: string + description: The Quickstart transformation package name + connection_ids: + type: array + description: 'The list of connection IDs that the Quickstart transformation depends on when using the integrated schedule (`schedule_type: INTEGRATED`) or custom schedules (`schedule_type: TIME_OF_DAY` or `schedule_type: INTERVAL`) with smart syncing enabled (`smart_syncing: true`). This is also used to auto-detect `package_name` if it is not provided. This field should not be used for Transformations for dbt.' + items: + type: string + description: '' + excluded_models: + type: array + description: The list of excluded output model names + items: + type: string + description: '' + configurable_variables: + type: string + description: The map of configurable variable values keyed by variable name. (opaque JSON object) + group_id: + type: string + description: The destination group identifier to run the Quickstart transformation against. Required only when it differs from the connections' own group, for example, when the connections land data through Managed Data Lake Service (MDLS) and this group is linked to it. Defaults to the connections' own group. + TransformationPackageMetadataResponse: + required: + - id + - name + - version + type: object + properties: + id: + type: string + description: The unique identifier for the Quickstart transformation package definition within the Fivetran system + example: package_definition_id + name: + type: string + description: The Quickstart transformation package name + example: package_definition_name + version: + type: string + description: The Quickstart package definition version + example: version + connector_types: + uniqueItems: true + type: array + description: The set of connector types + items: + type: string + output_model_names: + type: array + description: The list of transformation output models + items: + type: string + configurable_variables: + type: string + description: The map of configurable variable values keyed by variable name. (opaque JSON object) + UpdateTransformationRequest: + type: object + properties: + schedule: + $ref: '#/components/schemas/TransformationSchedule' + paused: + type: boolean + transformation_config: + type: object + description: Depends on `type` (DBT_CORE, QUICKSTART). + properties: + project_id: + type: string + description: The unique identifier for the dbt project within the Fivetran system + name: + type: string + description: The transformation name + steps: + type: array + description: The list of transformation steps + items: + type: object + properties: + name: + type: string + description: The step name + command: + type: string + description: The dbt command in the transformation step + description: '' + excluded_models: + type: array + description: The list of excluded output model names + items: + type: string + description: '' + configurable_variables: + type: string + description: The map of configurable variable values keyed by variable name. (opaque JSON object) + group_id: + type: string + description: The destination group identifier to run the Quickstart transformation against. Required only when it differs from the connections' own group, for example, when the connections land data through Managed Data Lake Service (MDLS) and this group is linked to it. Defaults to the connections' own group. + RunTransformationRequest: + type: object + properties: + full_refresh: + type: boolean + SetupTestResultResponse: + required: + - status + - title + type: object + properties: + title: + type: string + description: 'A human-readable name for the setup test step. For example: Validate Login, Test Connection, Check Permissions.' + example: Validate Login + status: + type: string + description: 'The result of the individual setup test step. Possible values: PASSED, FAILED, SKIPPED.' + example: FAILED + enum: + - PASSED + - SKIPPED + - WARNING + - FAILED + - JOB_FAILED + message: + type: string + description: 'The result message for the setup test step. For example: Invalid login credentials.' + example: Invalid login credentials. + details: + type: string + description: Additional diagnostic information about the setup test result. Populated when the status is FAILED and more context is available beyond the message. (opaque JSON object) + example: Authentication failed (401 Unauthorized). Verify the provided credentials and permissions. + TransformationSchedule: + required: + - schedule_type + type: object + properties: + cron: + type: array + description: 'Cron schedule: list of CRON strings.' + example: + - 0 */1 * * * + items: + type: string + interval: + type: integer + description: The interval in minutes + format: int32 + example: 60 + schedule_type: + type: string + description: 'The schedule type. The following values are supported: ''INTEGRATED'', ''TIME_OF_DAY'', ''INTERVAL'', ''CRON''' + example: TIME_OF_DAY + enum: + - INTEGRATED + - TIME_OF_DAY + - INTERVAL + - CRON + days_of_week: + uniqueItems: true + type: array + description: The set of days of the week, where an empty set represents a daily schedule + example: + - MONDAY + - FRIDAY + items: + type: string + enum: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY + time_of_day: + type: string + description: 'The time of the day the transformation should be launched at. The following values are supported: ''00:00'', ''00:30'', ''01:00'', ''01:30'', ''02:00'', ''02:30'', ''03:00'', ''03:30'', ''04:00'', ''04:30'', ''05:00'', ''05:30'', ''06:00'', ''06:30'', ''07:00'', ''07:30'', ''08:00'', ''08:30'', ''09:00'', ''09:30'', ''10:00'', ''10:30'', ''11:00'', ''11:30'', ''12:00'', ''12:30'', ''13:00'', ''13:30'', ''14:00'', ''14:30'', ''15:00'', ''15:30'', ''16:00'', ''16:30'', ''17:00'', ''17:30'', ''18:00'', ''18:30'', ''19:00'', ''19:30'', ''20:00'', ''20:30'', ''21:00'', ''21:30'', ''22:00'', ''22:30'', ''23:00'', ''23:30''' + example: '14:00' + connection_ids: + uniqueItems: true + type: array + description: 'The list of connection IDs that the Transformation for dbt depends on when using the integrated schedule (`schedule_type: INTEGRATED`) or custom schedules (`schedule_type: TIME_OF_DAY` or `schedule_type: INTERVAL`) with smart syncing enabled (`smart_syncing: true`). These connections must belong to the same group as the dbt project. This field should not be used for Quickstart transformations.' + example: + - connection_id + items: + type: string + transformation_ids: + uniqueItems: true + type: array + description: The list of the transformation identifiers to be used for the integrated schedule or custom scheduling with smart syncing enabled + example: + - transformation_id + items: + type: string + smart_syncing: + type: boolean + description: The boolean flag that enables the Smart Syncing schedule + x-stackQL-resources: + transformation_projects: + id: fivetran.transformations.transformation_projects + name: transformation_projects + title: Transformation Projects + methods: + list: + operation: + $ref: '#/paths/~1v1~1transformation-projects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1transformation-projects/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1transformation-projects~1{project_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1transformation-projects~1{project_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1transformation-projects~1{project_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + test: + operation: + $ref: '#/paths/~1v1~1transformation-projects~1{project_id}~1test/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/transformation_projects/methods/get' + - $ref: '#/components/x-stackQL-resources/transformation_projects/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/transformation_projects/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/transformation_projects/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/transformation_projects/methods/delete' + replace: [] + transformations: + id: fivetran.transformations.transformations + name: transformations + title: Transformations + methods: + list: + operation: + $ref: '#/paths/~1v1~1transformations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1transformations/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1transformations~1{transformation_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1transformations~1{transformation_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1transformations~1{transformation_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + cancel: + operation: + $ref: '#/paths/~1v1~1transformations~1{transformation_id}~1cancel/post' + response: + mediaType: application/json + openAPIDocKey: '200' + run: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1transformations~1{transformation_id}~1run/post' + response: + mediaType: application/json + openAPIDocKey: '200' + upgrade_package: + operation: + $ref: '#/paths/~1v1~1transformations~1{transformation_id}~1upgrade/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/transformations/methods/get' + - $ref: '#/components/x-stackQL-resources/transformations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/transformations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/transformations/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/transformations/methods/delete' + replace: [] + package_metadata: + id: fivetran.transformations.package_metadata + name: package_metadata + title: Package Metadata + methods: + list: + operation: + $ref: '#/paths/~1v1~1transformations~1package-metadata/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + get: + operation: + $ref: '#/paths/~1v1~1transformations~1package-metadata~1{package_definition_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/package_metadata/methods/get' + - $ref: '#/components/x-stackQL-resources/package_metadata/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/users.yaml b/providers/src/fivetran/v00.00.00000/services/users.yaml index c74c2d94..2f545399 100644 --- a/providers/src/fivetran/v00.00.00000/services/users.yaml +++ b/providers/src/fivetran/v00.00.00000/services/users.yaml @@ -1,341 +1,8 @@ openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} info: - title: OpenAPI Definition - users - description: User Management + title: Fivetran Users API + description: Users, API keys, and group and connection memberships. version: v1 -security: - - basicAuth: [] -components: - schemas: - UserResponse: - type: object - properties: - id: - type: string - description: The unique identifier for the user within the Fivetran system. - email: - type: string - description: The email address that the user has associated with their user profile. - verified: - type: boolean - description: The field indicates whether the user has verified their email address in the account creation process. - invited: - type: boolean - description: The field indicates whether the user has been invited to your account. - picture: - type: string - description: 'The user''s avatar as a URL link (for example, ''http://mycompany.com/avatars/john_white.png'') or base64 data URI (for example, ''data:image/png;base64,aHR0cDovL215Y29tcGFueS5jb20vYXZhdGFycy9qb2huX3doaXRlLnBuZw=='')' - phone: - type: string - description: The phone number of the user. - role: - type: string - description: 'The role that you would like to assign to the user ' - active: - type: boolean - description: 'The boolean value indicating the user''s status. If the user is able to log in, the value is true. If the user''s account has been suspended, the value is false' - given_name: - type: string - description: The first name of the user. - created_at: - type: string - description: The timestamp that the user created their Fivetran account - format: date-time - family_name: - type: string - description: The last name of the user. - logged_in_at: - type: string - description: The last time that the user has logged into their Fivetran account. - format: date-time - NewUserRequest: - required: - - email - - family_name - - given_name - type: object - properties: - email: - type: string - description: The email address that the user has associated with their user profile. - example: string - family_name: - type: string - description: The last name of the user. - example: string - given_name: - type: string - description: The first name of the user. - example: string - phone: - type: string - description: The phone number of the user. - example: string - picture: - type: string - description: 'The user''s avatar as a URL link (for example, ''http://mycompany.com/avatars/john_white.png'') or base64 data URI (for example, ''data:image/png;base64,aHR0cDovL215Y29tcGFueS5jb20vYXZhdGFycy9qb2huX3doaXRlLnBuZw=='')' - example: string - role: - type: string - description: 'The role that you would like to assign to the user ' - MembershipResponse: - type: object - properties: - id: - type: string - description: The membership entity unique identifier - role: - type: string - description: The role the user has within the entity - created_at: - type: string - description: The date and time the membership was created - format: date-time - MembershipRequest: - required: - - id - - role - type: object - properties: - id: - type: string - description: The unique identifier for the user within the Fivetran system. - role: - type: string - description: 'The role that you would like to assign to the user ' - UpdateUserRequest: - required: - - family_name - - given_name - type: object - properties: - phone: - type: string - description: The phone number of the user. - example: string - picture: - type: string - description: 'The user''s avatar as a URL link (for example, ''http://mycompany.com/avatars/john_white.png'') or base64 data URI (for example, ''data:image/png;base64,aHR0cDovL215Y29tcGFueS5jb20vYXZhdGFycy9qb2huX3doaXRlLnBuZw=='')' - example: string - role: - type: string - description: 'The role that you would like to assign to the user ' - family_name: - type: string - description: The last name of the user. - example: string - given_name: - type: string - description: The first name of the user. - example: string - UpdateMembershipRequest: - required: - - role - type: object - properties: - role: - type: string - description: 'The role that you would like to assign to the user ' - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - users: - id: fivetran.users.users - name: users - title: Users - methods: - list_all_users: - operation: - $ref: '#/paths/~1v1~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_all_users: - operation: - $ref: '#/paths/~1v1~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_user: - operation: - $ref: '#/paths/~1v1~1users/post' - response: - mediaType: application/json - openAPIDocKey: '201' - delete_user: - operation: - $ref: '#/paths/~1v1~1users~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - user_details: - operation: - $ref: '#/paths/~1v1~1users~1{userId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _user_details: - operation: - $ref: '#/paths/~1v1~1users~1{userId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - modify_user: - operation: - $ref: '#/paths/~1v1~1users~1{userId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/list_all_users' - - $ref: '#/components/x-stackQL-resources/users/methods/user_details' - insert: - - $ref: '#/components/x-stackQL-resources/users/methods/create_user' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/users/methods/delete_user' - groups: - id: fivetran.users.groups - name: groups - title: Groups - methods: - get_user_memberships_in_groups: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1groups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _get_user_memberships_in_groups: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1groups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - add_user_membership_in_group: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1groups/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_user_membership_in_group: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1groups~1{groupId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _get_user_membership_in_group: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1groups~1{groupId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_membership_in_group: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1groups~1{groupId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - update_user_membership_in_group: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1groups~1{groupId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/groups/methods/get_user_memberships_in_groups' - - $ref: '#/components/x-stackQL-resources/groups/methods/get_user_membership_in_group' - insert: - - $ref: '#/components/x-stackQL-resources/groups/methods/add_user_membership_in_group' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/groups/methods/delete_user_membership_in_group' - connectors: - id: fivetran.users.connectors - name: connectors - title: Connectors - methods: - get_user_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1connectors~1{connectorId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _get_user_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1connectors~1{connectorId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1connectors~1{connectorId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - update_user_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1connectors~1{connectorId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - get_user_memberships_in_connectors: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1connectors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _get_user_memberships_in_connectors: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1connectors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - add_user_membership_in_connector: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1connectors/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/connectors/methods/get_user_membership_in_connector' - - $ref: '#/components/x-stackQL-resources/connectors/methods/get_user_memberships_in_connectors' - insert: - - $ref: '#/components/x-stackQL-resources/connectors/methods/add_user_membership_in_connector' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/connectors/methods/delete_user_membership_in_connector' - role: - id: fivetran.users.role - name: role - title: Role - methods: - delete_user_membership_in_account: - operation: - $ref: '#/paths/~1v1~1users~1{userId}~1role/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/role/methods/delete_user_membership_in_account' paths: /v1/users: get: @@ -347,10 +14,12 @@ paths: parameters: - name: cursor in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) required: false schema: type: string + example: cursor_value + example: cursor_value - name: limit in: query description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. @@ -358,50 +27,78 @@ paths: schema: type: integer format: int32 - - name: Accept - in: header + example: 100 + example: 100 + - name: active + in: query + description: Indicates whether to return only enabled users (true) or not (false). By default, both enabled (allowed to log in) and suspended users are returned. + required: false + schema: + type: boolean + example: true + example: true + - name: user_type + in: query + description: 'The type of user. Possible values: `REGULAR_USER`: A human user who can log in to the Fivetran dashboard and interact with the API, and `SERVICE_ACCOUNT`: A non-human identity for machine-to-machine API access that cannot log in to the dashboard.' + required: false + schema: + type: string + example: SERVICE_ACCOUNT + example: SERVICE_ACCOUNT + - name: has_api_key + in: query + description: 'Indicates whether the user has an assigned API key, including expired keys. Accepted values: `true` or `false`.' + required: false schema: type: string - example: application/json - default: application/json + example: 'true' + example: 'true' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Users list retrieved successfully data: + required: + - items properties: items: type: array - description: The collection of return items + description: The collection of returned items items: $ref: '#/components/schemas/UserResponse' - nextCursor: + next_cursor: type: string description: The value of the cursor parameter for the next page + example: cursor_value type: object type: object post: tags: - User Management summary: Invite a User - description: Invites a new user to your Fivetran account. The invited user will have access to the account only after accepting the invitation. Invited user details are still accessible through the API. + description: | + Creates a new user in your Fivetran account. + + For a regular user, an invitation email is sent, and the user must accept it before gaining access; their details are accessible through the API in the meantime. + + For a service account, the user gets created immediately with no invitation or email validation required. + + > Note: A service account user can't create another service account user. operationId: create_user - parameters: - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: @@ -413,38 +110,39 @@ paths: content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User has been created data: $ref: '#/components/schemas/UserResponse' type: object '400': description: Bad request - '/v1/users/{userId}/groups': + /v1/users/api-keys: get: tags: - User Management - summary: List all group memberships - description: Returns all group membership objects for a user within your Fivetran account. - operationId: get_user_memberships_in_groups + summary: List All API Keys + description: Returns a paginated list of API keys for all users within your Fivetran account. + operationId: list_api_keys parameters: - - name: userId - in: path - description: The unique identifier for the user within the account. - required: true - schema: - type: string - name: cursor in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) required: false schema: type: string + example: cursor_value + example: cursor_value - name: limit in: query description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. @@ -452,502 +150,577 @@ paths: schema: type: integer format: int32 - - name: Accept - in: header + example: 100 + example: 100 + - name: user_type + in: query + description: 'The type of user. Possible values: `REGULAR_USER`: A human user who can log in to the Fivetran dashboard and interact with the API, and `SERVICE_ACCOUNT`: A non-human identity for machine-to-machine API access that cannot log in to the dashboard.' + required: false schema: type: string - example: application/json - default: application/json + example: SERVICE_ACCOUNT + example: SERVICE_ACCOUNT responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: API keys have been listed data: + required: + - items properties: items: type: array - description: The collection of return items + description: The collection of returned items items: - $ref: '#/components/schemas/MembershipResponse' - nextCursor: + $ref: '#/components/schemas/ApiKeyResponse' + next_cursor: type: string description: The value of the cursor parameter for the next page + example: cursor_value type: object type: object - post: + /v1/users/{user_id}: + delete: tags: - User Management - summary: Add group membership - description: Adds a group membership. - operationId: add_user_membership_in_group + summary: Delete a User + description: Deletes a user from your Fivetran account. You will be unable to delete an account owner user if there is only one remaining. + operationId: delete_user parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/MembershipRequest' responses: - '201': + '200': description: Successful response content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text - data: - $ref: '#/components/schemas/MembershipResponse' + example: User with id 'string' has been deleted type: object - '400': - description: Bad request '404': description: Not found error - '/v1/users/{id}': - delete: + get: tags: - User Management - summary: Delete a user - description: Deletes a user from your Fivetran account. You will be unable to delete an account owner user if there is only one remaining. - operationId: delete_user + summary: Retrieve User Details + description: Returns a user object if a valid identifier was provided. + operationId: user_details parameters: - - name: id + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User details retrieved successfully + data: + $ref: '#/components/schemas/UserResponse' type: object '404': - description: Not found error - '/v1/users/{userId}': - get: + description: User not found + patch: tags: - User Management - summary: Retrieve User Details - description: Returns a user object if a valid identifier was provided. - operationId: user_details + summary: Update a User + description: Updates information for an existing user within your Fivetran account. + operationId: modify_user parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateUserRequest' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User has been updated data: $ref: '#/components/schemas/UserResponse' type: object '404': - description: Not found error - patch: + description: User not found + /v1/users/{user_id}/api-keys: + get: tags: - User Management - summary: Modify a User - description: Updates information for an existing user within your Fivetran account. - operationId: modify_user + summary: Retrieve User API Key + description: Returns the API key details for the specified service account. + operationId: get_user_api_key parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateUserRequest' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User API key has been retrieved data: - $ref: '#/components/schemas/UserResponse' + $ref: '#/components/schemas/ApiKeyResponse' type: object '404': - description: Not found error - '/v1/users/{userId}/connectors/{connectorId}': - get: + description: User not found + post: tags: - User Management - summary: Retrieve connector membership - description: Returns a connector membership object. - operationId: get_user_membership_in_connector + summary: Create Service Account API Key + description: | + Creates a new API key for the specified service account. The secret is + returned once at creation and cannot be retrieved again. + + > Note: Only a regular user can perform this operation. + operationId: create_user_api_key parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: connectorId - in: path - description: The unique identifier for the connector within the account. - required: true - schema: - type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApiKeyRequest' responses: - '200': + '201': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: API key has been created data: - $ref: '#/components/schemas/MembershipResponse' + $ref: '#/components/schemas/CreateApiKeyResponse' type: object + '400': + description: Bad request + '404': + description: User not found delete: tags: - User Management - summary: Delete connector membership - description: Removes connector membership. - operationId: delete_user_membership_in_connector + summary: Delete API Keys + description: | + Deletes all API keys for the specified user. + + > Note: Only a regular user can perform this operation. + operationId: delete_user_api_keys parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: connectorId + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: API key deleted for service account user with id='string' + type: object + '404': + description: User not found + /v1/users/{user_id}/api-keys/rotate: + post: + tags: + - User Management + summary: Rotate Service Account API Key + description: | + Rotates the API key for the specified service account and generates a new secret. + + During the optional overlap period, both the old and new secrets remain valid, allowing zero-downtime credential rotation. + + > Note: Only a regular user can perform this operation. + operationId: rotate_user_api_key + parameters: + - name: user_id in: path - description: The unique identifier for the connector within the account. + description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RotateApiKeyRequest' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: API key rotated successfully data: - $ref: '#/components/schemas/MembershipResponse' + $ref: '#/components/schemas/RotateApiKeyResponse' type: object - patch: + '400': + description: Bad request + '404': + description: User not found + /v1/users/{user_id}/connections: + get: tags: - User Management - summary: Update connector membership - description: Updates connector membership. - operationId: update_user_membership_in_connector + summary: List All Connection Memberships + description: Returns all connection membership for a user within your Fivetran account. + operationId: get_user_memberships_in_connections parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: connectorId - in: path - description: The unique identifier for the connector within the account. - required: true + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false schema: type: string - - name: Accept - in: header + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false schema: - type: string - example: application/json - default: application/json - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateMembershipRequest' + type: integer + format: int32 + example: 100 + example: 100 responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User memberships in connections retrieved successfully data: - $ref: '#/components/schemas/MembershipResponse' + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/MembershipResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object type: object - '/v1/users/{userId}/role': - delete: + post: tags: - User Management - summary: Delete user role in account - description: Removes a user's role in account. - operationId: delete_user_membership_in_account + summary: Add a Connection Membership + description: Adds a connection membership + operationId: add_user_membership_in_connection parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MembershipRequest_add_user_membership_in_connection' responses: - '200': + '201': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Connection membership has been created + data: + $ref: '#/components/schemas/MembershipResponse' type: object '404': - description: Bad request - '/v1/users/{userId}/groups/{groupId}': + description: User not found + /v1/users/{user_id}/connections/{connection_id}: get: tags: - User Management - summary: Retrieve group membership - description: Returns a group membership object. - operationId: get_user_membership_in_group + summary: Retrieve Connection Membership + description: Returns the details of a user's membership in a connection. + operationId: get_user_membership_in_connections parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: groupId + - name: connection_id in: path - description: The unique identifier for the group within the account. + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User membership in connection retrieved successfully data: $ref: '#/components/schemas/MembershipResponse' type: object '404': - description: Not found error + description: User not found delete: tags: - User Management - summary: Delete group membership - description: Removes group membership. - operationId: delete_user_membership_in_group + summary: Delete Connection Membership + description: Removes user membership in a connection. + operationId: delete_user_membership_in_connection parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: groupId + - name: connection_id in: path - description: The unique identifier for the group within the account. + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Connection membership has been deleted + data: + $ref: '#/components/schemas/MembershipResponse' type: object '404': - description: Not found error + description: User not found patch: tags: - User Management - summary: Update group membership - description: Updates group membership. - operationId: update_user_membership_in_group + summary: Update Connection Membership + description: Updates user membership in a connection. + operationId: update_user_membership_in_connection parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: groupId + - name: connection_id in: path - description: The unique identifier for the group within the account. + description: The unique identifier of the connection. Retrieve it from the `id` field in the [List All Connections](https://fivetran.com/docs/rest-api/api-reference/connections/list-connections) response, or from the `id` field returned when you [Create a Connection](https://fivetran.com/docs/rest-api/api-reference/connections/create-connection). required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/UpdateMembershipRequest' + $ref: '#/components/schemas/UpdateMembershipRequest_update_user_membership_in_connection' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Connection membership has been updated + data: + $ref: '#/components/schemas/MembershipResponse' type: object '404': - description: Not found error - '/v1/users/{userId}/connectors': + description: User not found + /v1/users/{user_id}/groups: get: tags: - User Management - summary: List all connector memberships - description: Returns all connector membership objects for a user within your Fivetran account - operationId: get_user_memberships_in_connectors + summary: List All Group Memberships + description: Returns the membership details for all groups a user belongs to. + operationId: get_user_memberships_in_groups parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true @@ -955,10 +728,12 @@ paths: type: string - name: cursor in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) required: false schema: type: string + example: cursor_value + example: cursor_value - name: limit in: query description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. @@ -966,67 +741,819 @@ paths: schema: type: integer format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json + example: 100 + example: 100 responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: User memberships in groups retrieved successfully data: + required: + - items properties: items: type: array - description: The collection of return items + description: The collection of returned items items: $ref: '#/components/schemas/MembershipResponse' - nextCursor: + next_cursor: type: string description: The value of the cursor parameter for the next page + example: cursor_value type: object type: object post: tags: - User Management - summary: Add connector membership - description: Adds a connector membership - operationId: add_user_membership_in_connector + summary: Add Group Membership + description: Adds a user membership in a group. + operationId: add_user_membership_in_group parameters: - - name: userId + - name: user_id in: path description: The unique identifier for the user within the account. required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/MembershipRequest' + $ref: '#/components/schemas/GroupMembershipRequest' + responses: + '201': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Group membership has been created + data: + $ref: '#/components/schemas/MembershipResponse' + type: object + '400': + description: Bad request + '404': + description: User not found + /v1/users/{user_id}/groups/{group_id}: + get: + tags: + - User Management + summary: Retrieve Group Membership Details + description: Returns details of a user membership in group. + operationId: get_user_membership_in_group + parameters: + - name: user_id + in: path + description: The unique identifier for the user within the account. + required: true + schema: + type: string + - name: group_id + in: path + description: The unique identifier for the group within the Fivetran system. + required: true + schema: + type: string responses: '200': description: Successful response - '201': + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: User membership in group retrieved successfully + data: + $ref: '#/components/schemas/MembershipResponse' + type: object + '404': + description: User not found + delete: + tags: + - User Management + summary: Delete Group Membership + description: Removes user from a group. + operationId: delete_user_membership_in_group + parameters: + - name: user_id + in: path + description: The unique identifier for the user within the account. + required: true + schema: + type: string + - name: group_id + in: path + description: The unique identifier for the group within the Fivetran system. + required: true + schema: + type: string + responses: + '200': description: Successful response content: application/json: schema: - $ref: '#/components/schemas/MembershipResponse' + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Group membership has been deleted + type: object + '404': + description: User not found + patch: + tags: + - User Management + summary: Update Group Membership + description: Updates user group membership. + operationId: update_user_membership_in_group + parameters: + - name: user_id + in: path + description: The unique identifier for the user within the account. + required: true + schema: + type: string + - name: group_id + in: path + description: The unique identifier for the group within the Fivetran system. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateMembershipRequest_update_user_membership_in_group' + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Group membership has been updated + type: object + '404': + description: User not found + /v1/users/{user_id}/role: + delete: + tags: + - User Management + summary: Delete Account Role + description: Removes a user's role from an account, but the user remains a member of the account. + operationId: delete_user_membership_in_account + parameters: + - name: user_id + in: path + description: The unique identifier for the user within the account. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - message + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: User role in account has been removed + type: object + '404': + description: User not found +components: + schemas: + UserResponse: + required: + - active + - created_at + - email + - id + - logged_in_at + - role + - verified + type: object + properties: + id: + type: string + description: The unique identifier for the user within the Fivetran system. + example: user_id + email: + type: string + description: 'The email address that the user has associated with their user profile. Optional for service accounts (`user_type: SERVICE_ACCOUNT`).' + example: user@email.value + verified: + type: boolean + description: The field indicates whether the user has verified their email address in the account creation process. + example: true + invited: + type: boolean + description: The field indicates whether the user has been invited to your account. + example: true + picture: + type: string + description: The user's avatar as a URL link (for example, 'http://mycompany.com/avatars/john_white.png') or base64 data URI (for example, 'data:image/png;base64,aHR0cDovL215Y29tcGFueS5jb20vYXZhdGFycy9qb2huX3doaXRlLnBuZw==') + example: AFg65aoa7af4r3feaAa6bi7se ... base64 encoded image ... blDFSs87gQ== + phone: + type: string + description: The phone number of the user. + example: '+1234567890' + role: + type: string + description: 'The role that you would like to assign to the user ' + example: Account Administrator + active: + type: boolean + description: The field indicates if the user is an active Fivetran account user. + example: true + given_name: + type: string + description: The first name of the user. + example: John + family_name: + type: string + description: The last name of the user. + example: Doe + logged_in_at: + type: string + description: The last time that the user has logged into their Fivetran account. + format: date-time + example: '2024-01-01T00:00:00Z' + created_at: + type: string + description: The timestamp that the user created their Fivetran account + format: date-time + example: '2024-01-01T00:00:00Z' + user_type: + type: string + description: 'The type of user. Possible values: `REGULAR_USER`: A human user who can log in to the Fivetran dashboard and interact with the API, and `SERVICE_ACCOUNT`: A non-human identity for machine-to-machine API access that cannot log in to the dashboard.' + example: SERVICE_ACCOUNT + enum: + - REGULAR_USER + - SERVICE_ACCOUNT + has_api_key: + type: boolean + description: 'Indicates whether the user has an assigned API key, including expired keys. Accepted values: `true` or `false`.' + example: true + NewUserRequest: + required: + - email + - family_name + - given_name + type: object + properties: + email: + type: string + description: 'The email address that the user has associated with their user profile. Optional for service accounts (`user_type: SERVICE_ACCOUNT`).' + example: user@email.value + family_name: + type: string + description: The last name of the user. + example: Doe + given_name: + type: string + description: The first name of the user. + example: John + phone: + type: string + description: The phone number of the user. + example: '+1234567890' + picture: + type: string + description: The user's avatar as a URL link (for example, 'http://mycompany.com/avatars/john_white.png') or base64 data URI (for example, 'data:image/png;base64,aHR0cDovL215Y29tcGFueS5jb20vYXZhdGFycy9qb2huX3doaXRlLnBuZw==') + example: AFg65aoa7af4r3feaAa6bi7se ... base64 encoded image ... blDFSs87gQ== + role: + type: string + description: 'The role that you would like to assign to the user ' + example: Account Administrator + user_type: + type: string + description: 'The type of user. Possible values: `REGULAR_USER`: A human user who can log in to the Fivetran dashboard and interact with the API, and `SERVICE_ACCOUNT`: A non-human identity for machine-to-machine API access that cannot log in to the dashboard.' + example: SERVICE_ACCOUNT + ApiKeyResponse: + required: + - created_at + - key_status + - key_value + - user_id + - user_type + type: object + properties: + user_id: + type: string + description: The unique identifier for the user within the Fivetran system. + example: user_id + user_type: + type: string + description: 'The type of user. Possible values: `REGULAR_USER`: A human user who can log in to the Fivetran dashboard and interact with the API, and `SERVICE_ACCOUNT`: A non-human identity for machine-to-machine API access that cannot log in to the dashboard.' + example: SERVICE_ACCOUNT + enum: + - REGULAR_USER + - SERVICE_ACCOUNT + key_value: + type: string + description: The public identifier of the API key. + example: key_abc123 + created_at: + type: string + description: The timestamp that the user created their API key + format: date-time + example: '2024-01-01T00:00:00Z' + key_status: + type: string + description: 'The status of the API key. Possible values: `ACTIVE`: The key has a single active secret, `ACTIVE_GRACE`: The key has two active secrets during rotation overlap, and `EXPIRED`: The key has expired.' + example: ACTIVE + enum: + - ACTIVE + - ACTIVE_GRACE + - EXPIRED + expires_at: + type: string + description: The timestamp when the API key expires. + format: date-time + example: '2024-04-01T00:00:00Z' + overlap_expires_at: + type: string + description: The timestamp when the previous secret expires after rotation. Only present during the overlap period. + format: date-time + example: '2024-03-08T00:00:00Z' + last_rotated_at: + type: string + format: date-time + UpdateUserRequest: + type: object + properties: + phone: + type: string + description: The phone number of the user. + example: '+9876543210' + picture: + type: string + description: The user's avatar as a URL link (for example, 'http://mycompany.com/avatars/john_white.png') or base64 data URI (for example, 'data:image/png;base64,aHR0cDovL215Y29tcGFueS5jb20vYXZhdGFycy9qb2huX3doaXRlLnBuZw==') + example: AFg65aoa7af4r3feaAa6bi7se ... base64 encoded image ... blDFSs87gQ== + role: + type: string + description: 'The account role that you would like to assign to the user. You cannot change your own role. ' + example: Account Administrator + family_name: + type: string + description: The last name of the user. + example: Doe + given_name: + type: string + description: The first name of the user. + example: Jane + CreateApiKeyRequest: + type: object + properties: + expiration_period_days: + type: integer + description: The number of days until the API key expires. Defaults to 90. Maximum is 365. + format: int32 + example: 90 + CreateApiKeyResponse: + required: + - created_at + - key_secret + - key_status + - key_value + type: object + properties: + key_value: + type: string + description: The public identifier of the API key. + example: key_abc123 + key_secret: + type: string + description: The secret portion of the API key. Only returned at creation time and cannot be retrieved again. + example: secret_xyz789 + key_status: + type: string + description: 'The status of the API key. Possible values: `ACTIVE`: The key has a single active secret, `ACTIVE_GRACE`: The key has two active secrets during rotation overlap, and `EXPIRED`: The key has expired.' + example: ACTIVE + created_at: + type: string + description: The timestamp that the user created their API key + format: date-time + example: '2024-01-01T00:00:00Z' + expires_at: + type: string + description: The timestamp when the API key expires. + format: date-time + example: '2024-04-01T00:00:00Z' + RotateApiKeyRequest: + type: object + properties: + expiration_period_days: + type: integer + description: The number of days until the API key expires. Defaults to 90. Maximum is 365. + format: int32 + example: 90 + overlap_days: + type: integer + description: The number of days the old and new API keys both remain valid after rotation. Maximum is 30 days. + format: int32 + example: 7 + RotateApiKeyResponse: + required: + - expires_at + - key_secret + - key_status + - key_value + type: object + properties: + key_value: + type: string + description: The public identifier of the API key. + example: key_abc123 + key_secret: + type: string + description: The secret portion of the API key. Only returned at creation time and cannot be retrieved again. + example: secret_xyz789 + key_status: + type: string + description: 'The status of the API key. Possible values: `ACTIVE`: The key has a single active secret, `ACTIVE_GRACE`: The key has two active secrets during rotation overlap, and `EXPIRED`: The key has expired.' + example: ACTIVE + enum: + - ACTIVE + - ACTIVE_GRACE + - EXPIRED + expires_at: + type: string + description: The timestamp when the API key expires. + format: date-time + example: '2024-04-01T00:00:00Z' + overlap_expires_at: + type: string + description: The timestamp when the previous secret expires after rotation. Only present during the overlap period. + format: date-time + example: '2024-03-08T00:00:00Z' + last_rotated_at: + type: string + format: date-time + MembershipResponse: + required: + - created_at + - id + - role + type: object + properties: + id: + type: string + description: The membership entity unique identifier + example: resource_id + role: + type: string + description: The role the user has within the entity + example: Role Title + created_at: + type: string + description: The timestamp that the user created their Fivetran account + format: date-time + example: '2024-01-01T00:00:00Z' + MembershipRequest_add_user_membership_in_connection: + required: + - id + - role + type: object + properties: + id: + type: string + description: The membership entity unique identifier + example: connection_id + role: + type: string + description: 'The role that you would like to assign to the user ' + example: Manage Connection + UpdateMembershipRequest_update_user_membership_in_connection: + required: + - role + type: object + properties: + role: + type: string + description: 'The role that you would like to assign to the user ' + GroupMembershipRequest: + required: + - id + - role + type: object + properties: + id: + type: string + description: The membership entity unique identifier + example: group_id + role: + type: string + description: 'The role that you would like to assign to the user ' + example: Manage Connection + UpdateMembershipRequest_update_user_membership_in_group: + required: + - role + type: object + properties: + role: + type: string + description: 'The role that you would like to assign to the user ' + example: Manage Destination + x-stackQL-resources: + users: + id: fivetran.users.users + name: users + title: Users + methods: + list: + operation: + $ref: '#/paths/~1v1~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1users/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1users~1{user_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + remove_account_role: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1role/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/users/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/users/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/users/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + replace: [] + api_keys: + id: fivetran.users.api_keys + name: api_keys + title: Api Keys + methods: + list: + operation: + $ref: '#/paths/~1v1~1users~1api-keys/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + get: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1api-keys/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1api-keys/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1api-keys/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + rotate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1api-keys~1rotate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/api_keys/methods/get' + - $ref: '#/components/x-stackQL-resources/api_keys/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/api_keys/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/api_keys/methods/delete' + replace: [] + connection_memberships: + id: fivetran.users.connection_memberships + name: connection_memberships + title: Connection Memberships + methods: + list: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1connections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1connections/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1connections~1{connection_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1connections~1{connection_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1connections~1{connection_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/get' + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/connection_memberships/methods/delete' + replace: [] + group_memberships: + id: fivetran.users.group_memberships + name: group_memberships + title: Group Memberships + methods: + list: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1groups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1groups/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1groups~1{group_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1groups~1{group_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1users~1{user_id}~1groups~1{group_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/get' + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/group_memberships/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body diff --git a/providers/src/fivetran/v00.00.00000/services/webhooks.yaml b/providers/src/fivetran/v00.00.00000/services/webhooks.yaml index 96e1bfe5..c92a9807 100644 --- a/providers/src/fivetran/v00.00.00000/services/webhooks.yaml +++ b/providers/src/fivetran/v00.00.00000/services/webhooks.yaml @@ -1,205 +1,74 @@ openapi: 3.0.1 -servers: - - url: 'https://api.fivetran.com' - variables: {} info: - title: OpenAPI Definition - webhooks - description: Webhook Management + title: Fivetran Webhooks API + description: Account and group webhooks. version: v1 -security: - - basicAuth: [] -components: - schemas: - WebhookRequest: - type: object - properties: - url: - type: string - description: Your webhooks URL endpoint for your application - events: - type: array - description: The array of event types - items: - type: string - active: - type: boolean - description: 'Boolean, if set to true, webhooks are immediately sent in response to events' - secret: - type: string - description: The secret string used for payload signing. Optional. - WebhookResponse: - type: object - properties: - id: - type: string - description: The webhook ID - type: - type: string - description: The webhook type - enum: - - group - - account - url: - type: string - description: Your webhooks URL endpoint for your application - events: - type: array - description: The array of event types - items: - type: string - active: - type: boolean - description: 'Boolean, if set to true, webhooks are immediately sent in response to events' - secret: - type: string - description: The secret string used for payload signing. Optional. - created_at: - type: string - description: The webhook creation timestamp - format: date-time - created_by: - type: string - description: The ID of the user who created the webhook - group_id: - type: string - description: The group ID - WebhookTestRequest: - type: object - properties: - event: - type: string - description: Events - WebhookTestResponse: - type: object - properties: - succeed: - type: boolean - description: Test result - status: - type: integer - description: Test status - format: int32 - message: - type: string - description: Test message - responses: {} - securitySchemes: - basicAuth: - type: http - scheme: basic - x-stackQL-resources: - group: - id: fivetran.webhooks.group - name: group - title: Group - methods: - create_group_webhook: - operation: - $ref: '#/paths/~1v1~1webhooks~1group~1{groupId}/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/group/methods/create_group_webhook' - update: [] - delete: [] - account: - id: fivetran.webhooks.account - name: account - title: Account - methods: - create_account_webhook: - operation: - $ref: '#/paths/~1v1~1webhooks~1account/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/account/methods/create_account_webhook' - update: [] - delete: [] - webhooks: - id: fivetran.webhooks.webhooks - name: webhooks - title: Webhooks - methods: - webhook_details: - operation: - $ref: '#/paths/~1v1~1webhooks~1{webhookId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - _webhook_details: - operation: - $ref: '#/paths/~1v1~1webhooks~1{webhookId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_webhook: - operation: - $ref: '#/paths/~1v1~1webhooks~1{webhookId}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - modify_webhook: - operation: - $ref: '#/paths/~1v1~1webhooks~1{webhookId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - list_all_webhooks: - operation: - $ref: '#/paths/~1v1~1webhooks/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data.items - _list_all_webhooks: - operation: - $ref: '#/paths/~1v1~1webhooks/get' - response: - mediaType: application/json - openAPIDocKey: '200' - test_webhook: - operation: - $ref: '#/paths/~1v1~1webhooks~1{webhookId}~1test/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/webhook_details' - - $ref: '#/components/x-stackQL-resources/webhooks/methods/list_all_webhooks' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/delete_webhook' paths: - '/v1/webhooks/group/{groupId}': - post: + /v1/webhooks: + get: tags: - Webhook Management - summary: Create group webhook - description: This endpoint allows you to create a new webhook for a given group - operationId: create_group_webhook + summary: List all Webhooks + description: The endpoint allows you to retrieve the list of existing webhooks available for the current account + operationId: list_all_webhooks parameters: - - name: groupId - in: path - description: The group ID - required: true + - name: cursor + in: query + description: Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination) + required: false schema: type: string - - name: Accept - in: header + example: cursor_value + example: cursor_value + - name: limit + in: query + description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. + required: false schema: - type: string - example: application/json - default: application/json + type: integer + format: int32 + example: 100 + example: 100 + responses: + '200': + description: Successful response + content: + application/json: + schema: + required: + - code + - data + properties: + code: + type: string + description: Response status code + example: Success + message: + type: string + description: Response status text + example: Webhooks retrieved successfully + data: + required: + - items + properties: + items: + type: array + description: The collection of returned items + items: + $ref: '#/components/schemas/WebhookResponse' + next_cursor: + type: string + description: The value of the cursor parameter for the next page + example: cursor_value + type: object + type: object + /v1/webhooks/account: + post: + tags: + - Webhook Management + summary: Create an Account Webhook + description: This endpoint allows you to create a new webhook for the current account. + operationId: create_account_webhook requestBody: content: application/json: @@ -211,232 +80,189 @@ paths: content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Account webhook has been created data: $ref: '#/components/schemas/WebhookResponse' type: object - /v1/webhooks/account: + /v1/webhooks/group/{group_id}: post: tags: - Webhook Management - summary: Create account webhook - description: This endpoint allows you to create a new webhook for the current account. - operationId: create_account_webhook + summary: Create a Group Webhook + description: This endpoint allows you to create a new webhook for a given group + operationId: create_group_webhook parameters: - - name: Accept - in: header + - name: group_id + in: path + description: The unique identifier for the group within the Fivetran system. + required: true schema: type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/WebhookRequest' + $ref: '#/components/schemas/WebhookRequest_create_group_webhook' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Group webhook has been created data: $ref: '#/components/schemas/WebhookResponse' type: object - '/v1/webhooks/{webhookId}': + '404': + description: Group not found + /v1/webhooks/{webhook_id}: get: tags: - Webhook Management - summary: Retrieve webhook details + summary: Retrieve Webhook Details description: This endpoint allows you to retrieve details of the existing webhook for a given identifier operationId: webhook_details parameters: - - name: webhookId + - name: webhook_id in: path description: The webhook ID required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Webhook details retrieved successfully data: $ref: '#/components/schemas/WebhookResponse' type: object + '404': + description: Webhook not found delete: tags: - Webhook Management - summary: Delete webhook + summary: Delete a Webhook description: This endpoint allows you to delete an existing webhook with a given identifier operationId: delete_webhook parameters: - - name: webhookId + - name: webhook_id in: path description: The webhook ID required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json responses: - '204': + '200': description: Successful response content: application/json: schema: + required: + - code + - message properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Webhook with id 'string' has been deleted type: object + '404': + description: Webhook not found patch: tags: - Webhook Management - summary: Update webhook + summary: Update a Webhook description: The endpoint allows you to update the existing webhook with a given identifier operationId: modify_webhook parameters: - - name: webhookId + - name: webhook_id in: path description: The webhook ID required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: schema: - $ref: '#/components/schemas/WebhookRequest' + $ref: '#/components/schemas/WebhookRequest_modify_webhook' responses: '200': description: Successful response content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Webhook has been updated data: $ref: '#/components/schemas/WebhookResponse' type: object - /v1/webhooks: - get: - tags: - - Webhook Management - summary: Retrieve the list of webhooks - description: The endpoint allows you to retrieve the list of existing webhooks available for the current account - operationId: list_all_webhooks - parameters: - - name: cursor - in: query - description: 'Paging cursor, [read more about pagination](https://fivetran.com/docs/rest-api/pagination)' - required: false - schema: - type: string - - name: limit - in: query - description: Number of records to fetch per page. Accepts a number in the range 1..1000; the default value is 100. - required: false - schema: - type: integer - format: int32 - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json - responses: - '200': - description: Successful response - content: - application/json: - schema: - properties: - code: - type: string - description: Response status code - message: - type: string - description: Response status text - data: - properties: - items: - type: array - description: The collection of return items - items: - $ref: '#/components/schemas/WebhookResponse' - nextCursor: - type: string - description: The value of the cursor parameter for the next page - type: object - type: object - '/v1/webhooks/{webhookId}/test': + '404': + description: Webhook not found + /v1/webhooks/{webhook_id}/test: post: tags: - Webhook Management - summary: Test webhook - description: The endpoint allows you to test an existing webhook. It sends a webhook with a given identifier for a dummy connector with identifier _connector_1 + summary: Test a Webhook + description: The endpoint allows you to test an existing webhook. It sends a webhook with a given identifier for a dummy connection with identifier _connection_1 operationId: test_webhook parameters: - - name: webhookId + - name: webhook_id in: path description: The webhook ID required: true schema: type: string - - name: Accept - in: header - schema: - type: string - example: application/json - default: application/json requestBody: content: application/json: @@ -448,13 +274,268 @@ paths: content: application/json: schema: + required: + - code + - data properties: code: type: string description: Response status code + example: Success message: type: string description: Response status text + example: Webhook test completed successfully data: $ref: '#/components/schemas/WebhookTestResponse' type: object + '404': + description: Webhook not found +components: + schemas: + WebhookResponse: + required: + - active + - created_at + - created_by + - events + - id + - type + - url + type: object + properties: + id: + type: string + description: Unique identifier for the webhook. + example: webhook_id + type: + type: string + description: The type of the webhook. Specifies whether the webhook is associated with a group or an account. + example: group + enum: + - group + - account + url: + type: string + description: The endpoint URL where webhook events will be delivered. + example: https://your-host.your-domain/webhook + events: + type: array + description: List of event types that trigger the webhook. + example: + - sync_start + - sync_end + items: + type: string + active: + type: boolean + description: Indicates if the webhook is enabled to send events immediately upon occurrence. + example: true + secret: + type: string + description: A secret string used to sign webhook payloads for verification. + example: '******' + group_id: + type: string + description: Unique identifier for the group associated with the webhook. + example: group_id + created_at: + type: string + description: Timestamp indicating when the webhook was created. + format: date-time + example: '2024-01-01T00:00:00Z' + created_by: + type: string + description: Identifier of the user who created the webhook setting. + example: user_id + WebhookRequest: + required: + - events + - url + type: object + properties: + url: + type: string + description: The endpoint URL where webhook events will be delivered. + example: https://your-host.your-domain/webhook + events: + type: array + description: List of event types that trigger the webhook. + example: + - sync_start + - sync_end + items: + type: string + active: + type: boolean + description: Indicates if the webhook is enabled to send events immediately upon occurrence. + example: true + secret: + type: string + description: A secret string used to sign webhook payloads for verification. + example: your_webhook_secret + WebhookRequest_create_group_webhook: + required: + - events + - url + type: object + properties: + url: + type: string + description: The endpoint URL where webhook events will be delivered. + example: https://your-host.your-domain/webhook + events: + type: array + description: List of event types that trigger the webhook. + example: + - sync_start + - sync_end + items: + type: string + active: + type: boolean + description: Indicates if the webhook is enabled to send events immediately upon occurrence. + example: true + secret: + type: string + description: A secret string used to sign webhook payloads for verification. + example: your_webhook_secret + WebhookRequest_modify_webhook: + type: object + properties: + url: + type: string + description: The endpoint URL where webhook events will be delivered. + example: https://your-host.your-domain/webhook + events: + type: array + description: List of event types that trigger the webhook. + example: + - sync_start + - sync_end + items: + type: string + active: + type: boolean + description: Indicates if the webhook is enabled to send events immediately upon occurrence. + example: true + secret: + type: string + description: A secret string used to sign webhook payloads for verification. + example: your_webhook_secret + WebhookTestRequest: + required: + - event + type: object + properties: + event: + type: string + description: Type of event to be sent during webhook testing. + example: sync_end + WebhookTestResponse: + required: + - status + - succeed + type: object + properties: + succeed: + type: boolean + description: Indicates whether the webhook test was successful. + example: true + status: + type: integer + description: HTTP status code returned by the webhook test. + format: int32 + example: 200 + message: + type: string + description: Additional information or result message from the webhook test. + example: Success + x-stackQL-resources: + webhooks: + id: fivetran.webhooks.webhooks + name: webhooks + title: Webhooks + methods: + list: + operation: + $ref: '#/paths/~1v1~1webhooks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.items + create_account_webhook: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1webhooks~1account/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + create_group_webhook: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1webhooks~1group~1{group_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1v1~1webhooks~1{webhook_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + delete: + operation: + $ref: '#/paths/~1v1~1webhooks~1{webhook_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1webhooks~1{webhook_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + test: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1webhooks~1{webhook_id}~1test/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/get' + - $ref: '#/components/x-stackQL-resources/webhooks/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/create_group_webhook' + - $ref: '#/components/x-stackQL-resources/webhooks/methods/create_account_webhook' + update: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/delete' + replace: [] +servers: + - url: https://api.fivetran.com +x-stackQL-config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.data.next_cursor + location: body