diff --git a/airbyte-integrations/connectors/source-salesloft/README.md b/airbyte-integrations/connectors/source-salesloft/README.md index fcf3c5dbd01b..fa381e8bc5f4 100644 --- a/airbyte-integrations/connectors/source-salesloft/README.md +++ b/airbyte-integrations/connectors/source-salesloft/README.md @@ -1,47 +1,22 @@ # Salesloft source connector -This is the repository for the Salesloft configuration based source connector. -For information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.com/integrations/sources/salesloft). +This directory contains the manifest-only connector for `source-salesloft`. +This _manifest-only_ connector is not a Python package on its own, as it runs inside of the base `source-declarative-manifest` image. -## Local development - -### Prerequisites -* Python (^3.9) -* Poetry (^1.7) - installation instructions [here](https://python-poetry.org/docs/#installation) - -### Installing the connector - -From this connector directory, run: -```bash -poetry install --with dev -``` - -### Create credentials -**If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.com/integrations/sources/salesloft) -to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `source_salesloft/spec.yaml` file. - -Note that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information. -See `sample_files/sample_config.json` for a sample config file. - - -### Locally running the connector -``` -poetry run source-salesloft spec -poetry run source-salesloft check --config secrets/config.json -poetry run source-salesloft discover --config secrets/config.json -poetry run source-salesloft read --config secrets/config.json --catalog integration_tests/configured_catalog.json -``` +For information about how to configure and use this connector within Airbyte, see [the connector's full documentation](https://docs.airbyte.com/integrations/sources/salesloft). -### Running tests +## Local development -To run tests locally, from the connector directory run: +We recommend using the Connector Builder to edit this connector. +Using either Airbyte Cloud or your local Airbyte OSS instance, navigate to the **Builder** tab and select **Import a YAML**. +Then select the connector's `manifest.yaml` file to load the connector into the Builder. You're now ready to make changes to the connector! -``` -poetry run pytest tests -``` +If you prefer to develop locally, you can follow the instructions below. ### Building the docker image +You can build any manifest-only connector with `airbyte-ci`: + 1. Install [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md) 2. Run the following command to build the docker image: @@ -51,46 +26,40 @@ airbyte-ci connectors --name=source-salesloft build An image will be available on your host with the tag `airbyte/source-salesloft:dev`. +### Creating credentials + +**If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.com/integrations/sources/salesloft) +to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `spec` object in the connector's `manifest.yaml` file. +Note that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information. + ### Running as a docker container -Then run any of the connector commands as follows: -``` + +Then run any of the standard source connector commands: + +```bash docker run --rm airbyte/source-salesloft:dev spec docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-salesloft:dev check --config /secrets/config.json docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-salesloft:dev discover --config /secrets/config.json docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-salesloft:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json ``` -### Running our CI test suite +### Running the CI test suite You can run our full test suite locally using [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md): -```bash -airbyte-ci connectors --name=source-salesloft test -``` - -### Customizing acceptance Tests - -Customize `acceptance-test-config.yml` file to configure acceptance tests. See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information. -If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py. -### Dependency Management - -All of your dependencies should be managed via Poetry. -To add a new dependency, run: ```bash -poetry add +airbyte-ci connectors --name=source-salesloft test ``` -Please commit the changes to `pyproject.toml` and `poetry.lock` files. - ## Publishing a new version of the connector -You've checked out the repo, implemented a million dollar feature, and you're ready to share your changes with the world. Now what? -1. Make sure your changes are passing our test suite: `airbyte-ci connectors --name=source-salesloft test` -2. Bump the connector version (please follow [semantic versioning for connectors](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#semantic-versioning-for-connectors)): + +If you want to contribute changes to `source-salesloft`, here's how you can do that: +1. Make your changes locally, or load the connector's manifest into Connector Builder and make changes there. +2. Make sure your changes are passing our test suite with `airbyte-ci connectors --name=source-salesloft test` +3. Bump the connector version (please follow [semantic versioning for connectors](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#semantic-versioning-for-connectors)): - bump the `dockerImageTag` value in in `metadata.yaml` - - bump the `version` value in `pyproject.toml` -3. Make sure the `metadata.yaml` content is up to date. 4. Make sure the connector documentation and its changelog is up to date (`docs/integrations/sources/salesloft.md`). 5. Create a Pull Request: use [our PR naming conventions](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#pull-request-title-convention). 6. Pat yourself on the back for being an awesome contributor. 7. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master. -8. Once your PR is merged, the new version of the connector will be automatically published to Docker Hub and our connector registry. +8. Once your PR is merged, the new version of the connector will be automatically published to Docker Hub and our connector registry. \ No newline at end of file diff --git a/airbyte-integrations/connectors/source-salesloft/__init__.py b/airbyte-integrations/connectors/source-salesloft/__init__.py deleted file mode 100644 index 66f6de8cb2bb..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -# Copyright (c) 2024 Airbyte, Inc., all rights reserved. -# diff --git a/airbyte-integrations/connectors/source-salesloft/acceptance-test-config.yml b/airbyte-integrations/connectors/source-salesloft/acceptance-test-config.yml index f16683cb483a..af50efd60922 100644 --- a/airbyte-integrations/connectors/source-salesloft/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-salesloft/acceptance-test-config.yml @@ -4,7 +4,7 @@ connector_image: airbyte/source-salesloft:dev acceptance_tests: spec: tests: - - spec_path: "source_salesloft/spec.yaml" + - spec_path: "manifest.yaml" connection: tests: - config_path: "secrets/config.json" diff --git a/airbyte-integrations/connectors/source-salesloft/source_salesloft/custom_authenticators.py b/airbyte-integrations/connectors/source-salesloft/components.py similarity index 100% rename from airbyte-integrations/connectors/source-salesloft/source_salesloft/custom_authenticators.py rename to airbyte-integrations/connectors/source-salesloft/components.py diff --git a/airbyte-integrations/connectors/source-salesloft/main.py b/airbyte-integrations/connectors/source-salesloft/main.py deleted file mode 100644 index 7a6c7f75fe43..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/main.py +++ /dev/null @@ -1,8 +0,0 @@ -# -# Copyright (c) 2024 Airbyte, Inc., all rights reserved. -# - -from source_salesloft.run import run - -if __name__ == "__main__": - run() diff --git a/airbyte-integrations/connectors/source-salesloft/manifest.yaml b/airbyte-integrations/connectors/source-salesloft/manifest.yaml new file mode 100644 index 000000000000..41caeddf6158 --- /dev/null +++ b/airbyte-integrations/connectors/source-salesloft/manifest.yaml @@ -0,0 +1,12602 @@ +version: 4.3.2 +type: DeclarativeSource +check: + type: CheckStream + stream_names: + - users +definitions: + custom_oauth_authenticator: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + bearer_authenticator: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + selective_authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + streams: + users: + type: DeclarativeStream + name: users + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /users + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + guid: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + first_name: + type: + - "null" + - string + last_name: + type: + - "null" + - string + job_role: + type: + - "null" + - string + active: + type: + - "null" + - boolean + time_zone: + type: + - "null" + - string + slack_username: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + email: + type: + - "null" + - string + email_client_email_address: + type: + - "null" + - string + sending_email_address: + type: + - "null" + - string + from_address: + type: + - "null" + - string + full_email_address: + type: + - "null" + - string + bcc_email_address: + type: + - "null" + - string + email_signature: + type: + - "null" + - string + email_signature_type: + type: + - "null" + - string + email_signature_click_tracking_disabled: + type: + - "null" + - boolean + team_admin: + type: + - "null" + - boolean + local_dial_enabled: + type: + - "null" + - boolean + click_to_call_enabled: + type: + - "null" + - boolean + email_client_configured: + type: + - "null" + - boolean + crm_connected: + type: + - "null" + - boolean + external_feature_flags: + type: + - "null" + - object + additionalProperties: true + properties: {} + phone_client: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + phone_number_assignment: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + group: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + team: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + role: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + - string + account_tiers: + type: DeclarativeStream + name: account_tiers + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /account_tiers + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + order: + type: + - "null" + - integer + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + import: + type: DeclarativeStream + name: import + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /imports + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + current_people_count: + type: + - "null" + - integer + imported_people_count: + type: + - "null" + - integer + person_stages: + type: DeclarativeStream + name: person_stages + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /person_stages + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + order: + type: + - "null" + - integer + phone_number_assignments: + type: DeclarativeStream + name: phone_number_assignments + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /phone_number_assignments + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + number: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + steps: + type: DeclarativeStream + name: steps + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /steps + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + disabled: + type: + - "null" + - boolean + type: + type: + - "null" + - string + name: + type: + - "null" + - string + display_name: + type: + - "null" + - string + day: + type: + - "null" + - integer + step_number: + type: + - "null" + - integer + details: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + team_template_attachments: + type: DeclarativeStream + name: team_template_attachments + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /team_template_attachments + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + attachment_id: + type: + - "null" + - integer + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + name: + type: + - "null" + - string + download_url: + type: + - "null" + - string + attachment_file_size: + type: + - "null" + - integer + email_template_attachments: + type: DeclarativeStream + name: email_template_attachments + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: email_template_attachments + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + attachment_id: + type: + - "null" + - integer + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + name: + type: + - "null" + - string + download_url: + type: + - "null" + - string + attachment_file_size: + type: + - "null" + - integer + crm_users: + type: DeclarativeStream + name: crm_users + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: crm_users + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + crm_id: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + groups: + type: DeclarativeStream + name: groups + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /groups + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + parent_id: + type: + - "null" + - integer + custom_fields: + type: DeclarativeStream + name: custom_fields + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /custom_fields + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + name: + type: + - "null" + - string + field_type: + type: + - "null" + - string + value_type: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + call_dispositions: + type: DeclarativeStream + name: call_dispositions + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /call_dispositions + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + call_sentiments: + type: DeclarativeStream + name: call_sentiments + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /call_sentiments + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + meetings: + type: DeclarativeStream + name: meetings + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /meetings + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + title: + type: + - "null" + - string + start_time: + type: + - "null" + - string + format: date-time + end_time: + type: + - "null" + - string + format: date-time + calendar_id: + type: + - "null" + - string + calendar_type: + type: + - "null" + - string + meeting_type: + type: + - "null" + - string + recipient_name: + type: + - "null" + - string + recipient_email: + type: + - "null" + - string + location: + type: + - "null" + - string + description: + type: + - "null" + - string + event_id: + type: + - "null" + - string + account_id: + type: + - "null" + - string + task_id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + guests: + type: + - "null" + - array + items: + type: + - "null" + - string + attendees: + type: + - "null" + - array + items: + type: + - "null" + - object + additionalProperties: true + properties: + email: + type: + - "null" + - string + name: + type: + - "null" + - string + organizer: + type: + - "null" + - boolean + status: + type: + - "null" + - string + status_changed: + type: + - "null" + - boolean + deleted_at: + type: + - "null" + - string + format: date-time + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + booked_by_user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + crm_references: + type: + - "null" + - object + additionalProperties: true + event_source: + type: + - "null" + - string + canceled_at: + type: + - "null" + - string + format: date-time + all_day: + type: + - "null" + - boolean + no_show: + type: + - "null" + - boolean + crm_custom_fields: + type: + - "null" + - object + additionalProperties: true + strict_attribution: + type: + - "null" + - boolean + i_cal_uid: + type: + - "null" + - string + status: + type: + - "null" + - string + reschedule_status: + type: + - "null" + - string + owned_by_meetings_settings: + type: + - "null" + - object + additionalProperties: true + properties: + id: + email_address: + - "null" + - string + booked_by_meetings_settings: + type: + - "null" + - object + additionalProperties: true + properties: + id: + email_address: + - "null" + - string + people: + type: DeclarativeStream + name: people + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /people + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + last_contacted_at: + type: + - "null" + - string + format: date-time + last_replied_at: + type: + - "null" + - string + format: date-time + first_name: + type: + - "null" + - string + last_name: + type: + - "null" + - string + display_name: + type: + - "null" + - string + email_address: + type: + - "null" + - string + full_email_address: + type: + - "null" + - string + secondary_email_address: + type: + - "null" + - string + personal_email_address: + type: + - "null" + - string + phone: + type: + - "null" + - string + phone_extension: + type: + - "null" + - string + home_phone: + type: + - "null" + - string + mobile_phone: + type: + - "null" + - string + linkedin_url: + type: + - "null" + - string + title: + type: + - "null" + - string + city: + type: + - "null" + - string + state: + type: + - "null" + - string + country: + type: + - "null" + - string + work_city: + type: + - "null" + - string + work_state: + type: + - "null" + - string + work_country: + type: + - "null" + - string + crm_url: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + crm_object_type: + type: + - "null" + - string + owner_crm_id: + type: + - "null" + - string + person_company_name: + type: + - "null" + - string + person_company_website: + type: + - "null" + - string + person_company_industry: + type: + - "null" + - string + do_not_contact: + type: + - "null" + - boolean + bouncing: + type: + - "null" + - boolean + locale: + type: + - "null" + - string + personal_website: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + last_contacted_type: + type: + - "null" + - string + job_seniority: + type: + - "null" + - string + custom_fields: + type: + - "null" + - object + additionalProperties: true + properties: {} + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + contact_restrictions: + type: + - "null" + - array + items: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + emails_sent: + type: + - "null" + - integer + emails_viewed: + type: + - "null" + - integer + emails_clicked: + type: + - "null" + - integer + emails_replied_to: + type: + - "null" + - integer + emails_bounced: + type: + - "null" + - integer + calls: + type: + - "null" + - integer + account: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_contacted_by: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + import: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + person_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + most_recent_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_completed_step_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_completed_step: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + cadences: + type: DeclarativeStream + name: cadences + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /cadences + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + team_cadence: + type: + - "null" + - boolean + shared: + type: + - "null" + - boolean + remove_bounces_enabled: + type: + - "null" + - boolean + remove_replies_enabled: + type: + - "null" + - boolean + opt_out_link_included: + type: + - "null" + - boolean + name: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + creator: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + bounced_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + replied_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + added_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + finished_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + counts: + type: + - "null" + - object + additionalProperties: true + properties: + cadence_people: + type: + - "null" + - integer + target_daily_people: + type: + - "null" + - integer + latest_active_date: + type: + - "null" + - string + format: date + cadence_memberships: + type: DeclarativeStream + name: cadence_memberships + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /cadence_memberships + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + added_at: + type: + - "null" + - string + format: date-time + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + person_deleted: + type: + - "null" + - boolean + currently_on_cadence: + type: + - "null" + - boolean + current_state: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + person: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + user: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + latest_action: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + counts: + type: + - "null" + - object + additionalProperties: true + properties: + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + calls: + type: + - "null" + - integer + sent_emails: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer + emails: + type: DeclarativeStream + name: emails + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /activities/emails + http_method: GET + request_parameters: + sent_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + recipient_email_address: + type: + - "null" + - string + status: + type: + - "null" + - string + bounced: + type: + - "null" + - boolean + send_after: + type: + - "null" + - string + format: date-time + sent_at: + type: + - "null" + - string + format: date-time + view_tracking: + type: + - "null" + - boolean + click_tracking: + type: + - "null" + - boolean + personalization: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + clicks: + type: + - "null" + - integer + views: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + unique_devices: + type: + - "null" + - integer + unique_locations: + type: + - "null" + - integer + attachments: + type: + - "null" + - integer + headers: + type: + - "null" + - object + additionalProperties: true + properties: + In-Reply-To: + type: + - "null" + - string + References: + type: + - "null" + - string + to: + type: + - "null" + - string + cc: + type: + - "null" + - string + in_reply_to: + type: + - "null" + - string + bcc: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + recipient: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + mailing: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + crm_activity: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + step: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + email_template: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + calls: + type: DeclarativeStream + name: calls + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /activities/calls + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + to: + type: + - "null" + - string + duration: + type: + - "null" + - integer + sentiment: + type: + - "null" + - string + disposition: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + called_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + crm_activity: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + note: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + accounts: + type: DeclarativeStream + name: accounts + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /accounts + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + domain: + type: + - "null" + - string + conversational_name: + type: + - "null" + - string + description: + type: + - "null" + - string + phone: + type: + - "null" + - string + website: + type: + - "null" + - string + linkedin_url: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + street: + type: + - "null" + - string + city: + type: + - "null" + - string + state: + type: + - "null" + - string + postal_code: + type: + - "null" + - string + country: + type: + - "null" + - string + locale: + type: + - "null" + - string + industry: + type: + - "null" + - string + company_type: + type: + - "null" + - string + founded: + type: + - "null" + - string + revenue_range: + type: + - "null" + - string + size: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + crm_url: + type: + - "null" + - string + crm_object_type: + type: + - "null" + - string + owner_crm_id: + type: + - "null" + - string + last_contacted_at: + type: + - "null" + - string + format: date-time + last_contacted_type: + type: + - "null" + - string + do_not_contact: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + people: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + creator: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + last_contacted_by: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + last_contacted_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + company_stage: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + account_tier: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + account_stages: + type: DeclarativeStream + name: account_stages + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /account_stages + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + order: + type: + - "null" + - integer + actions: + type: DeclarativeStream + name: actions + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /actions + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + due: + type: + - "null" + - boolean + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + type: + type: + - "null" + - string + status: + type: + - "null" + - string + due_on: + type: + - "null" + - string + format: date-time + multitouch_group_id: + type: + - "null" + - integer + action_details: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + email_templates: + type: DeclarativeStream + name: email_templates + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /email_templates + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + title: + type: + - "null" + - string + subject: + type: + - "null" + - string + body: + type: + - "null" + - string + body_preview: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + last_used_at: + type: + - "null" + - string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + shared: + type: + - "null" + - boolean + open_tracking_enabled: + type: + - "null" + - boolean + click_tracking_enabled: + type: + - "null" + - boolean + cadence_template: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + sent_emails: + type: + - "null" + - integer + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer + template_owner: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + _links: + type: + - "null" + - object + additionalProperties: true + properties: + attachments: + type: + - "null" + - string + groups: + type: + - "null" + - array + items: + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + notes: + type: DeclarativeStream + name: notes + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /notes + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + content: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + associated_with: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + team_templates: + type: DeclarativeStream + name: team_templates + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /team_templates + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: string + title: + type: + - "null" + - string + subject: + type: + - "null" + - string + body: + type: + - "null" + - string + body_preview: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + last_used_at: + type: + - "null" + - string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + last_modified_at: + type: + - "null" + - string + format: date-time + open_tracking_enabled: + type: + - "null" + - boolean + click_tracking_enabled: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + sent_emails: + type: + - "null" + - integer + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer + last_modified_user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + _links: + type: + - "null" + - object + additionalProperties: true + properties: + attachments: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + crm_activities: + type: DeclarativeStream + name: crm_activities + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /crm_activities + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + subject: + type: + - "null" + - string + description: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + activity_type: + type: + - "null" + - string + error: + type: + - "null" + - string + custom_crm_fields: + type: + - "null" + - object + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + successes: + type: DeclarativeStream + name: successes + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /successes + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + succeeded_at: + type: + - "null" + - string + format: date-time + success_window_started_at: + type: + - "null" + - string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_email: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + latest_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + total_emails: + type: + - "null" + - integer + total_calls: + type: + - "null" + - integer + total_other_touches: + type: + - "null" + - integer + call_data_records: + type: DeclarativeStream + name: call_data_records + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /call_data_records + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + to: + type: + - "null" + - string + from: + type: + - "null" + - string + duration: + type: + - "null" + - integer + direction: + type: + - "null" + - string + status: + type: + - "null" + - string + call_type: + type: + - "null" + - string + call_uuid: + type: + - "null" + - string + recording: + type: + - "null" + - object + additionalProperties: true + properties: + url: + type: + - "null" + - string + status: + type: + - "null" + - string + recording_status: + type: + - "null" + - string + call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + called_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + searches: + type: DeclarativeStream + name: searches + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /meetings/settings/searches + http_method: POST + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined + else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + user_slug: + type: + - "null" + - string + primary_calendar_id: + type: + - "null" + - string + primary_calendar_name: + type: + - "null" + - string + email_address: + type: + - "null" + - string + user_details: + type: + - "null" + - object + additionalProperties: true + calendar_type: + type: + - "null" + - string + title: + type: + - "null" + - string + description: + type: + - "null" + - string + location: + type: + - "null" + - string + default_meeting_length: + type: + - "null" + - integer + availability_limit_enabled: + type: + - "null" + - boolean + availability_limit: + type: + - "null" + - integer + schedule_delay: + type: + - "null" + - integer + buffer_time_duration: + type: + - "null" + - integer + schedule_buffer_enabled: + type: + - "null" + - boolean + times_available: + type: + - "null" + - object + additionalProperties: true + allow_booking_on_behalf: + type: + - "null" + - boolean + allow_booking_overtime: + type: + - "null" + - boolean + allow_event_overlap: + type: + - "null" + - boolean + allow_event_detail: + type: + - "null" + - boolean + enable_dynamic_location: + type: + - "null" + - boolean + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + time_zone: + type: + - "null" + - string + primary_calendar_connection_failed: + type: + - "null" + - boolean + enable_calendar_sync: + type: + - "null" + - boolean + reschedule_meetings_enabled: + type: + - "null" + - boolean + active_meeting_url: + type: + - "null" + - object + additionalProperties: true + properties: + url: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + base_requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" +streams: +- type: DeclarativeStream + name: users + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /users + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + guid: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + first_name: + type: + - "null" + - string + last_name: + type: + - "null" + - string + job_role: + type: + - "null" + - string + active: + type: + - "null" + - boolean + time_zone: + type: + - "null" + - string + slack_username: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + email: + type: + - "null" + - string + email_client_email_address: + type: + - "null" + - string + sending_email_address: + type: + - "null" + - string + from_address: + type: + - "null" + - string + full_email_address: + type: + - "null" + - string + bcc_email_address: + type: + - "null" + - string + email_signature: + type: + - "null" + - string + email_signature_type: + type: + - "null" + - string + email_signature_click_tracking_disabled: + type: + - "null" + - boolean + team_admin: + type: + - "null" + - boolean + local_dial_enabled: + type: + - "null" + - boolean + click_to_call_enabled: + type: + - "null" + - boolean + email_client_configured: + type: + - "null" + - boolean + crm_connected: + type: + - "null" + - boolean + external_feature_flags: + type: + - "null" + - object + additionalProperties: true + properties: {} + phone_client: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + phone_number_assignment: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + group: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + team: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + role: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + - string +- type: DeclarativeStream + name: account_tiers + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /account_tiers + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + order: + type: + - "null" + - integer + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time +- type: DeclarativeStream + name: import + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /imports + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + current_people_count: + type: + - "null" + - integer + imported_people_count: + type: + - "null" + - integer +- type: DeclarativeStream + name: person_stages + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /person_stages + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + order: + type: + - "null" + - integer +- type: DeclarativeStream + name: phone_number_assignments + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /phone_number_assignments + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + number: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string +- type: DeclarativeStream + name: steps + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /steps + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + disabled: + type: + - "null" + - boolean + type: + type: + - "null" + - string + name: + type: + - "null" + - string + display_name: + type: + - "null" + - string + day: + type: + - "null" + - integer + step_number: + type: + - "null" + - integer + details: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string +- type: DeclarativeStream + name: team_template_attachments + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /team_template_attachments + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + attachment_id: + type: + - "null" + - integer + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + name: + type: + - "null" + - string + download_url: + type: + - "null" + - string + attachment_file_size: + type: + - "null" + - integer +- type: DeclarativeStream + name: email_template_attachments + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: email_template_attachments + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + attachment_id: + type: + - "null" + - integer + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + name: + type: + - "null" + - string + download_url: + type: + - "null" + - string + attachment_file_size: + type: + - "null" + - integer +- type: DeclarativeStream + name: crm_users + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: crm_users + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + crm_id: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string +- type: DeclarativeStream + name: groups + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /groups + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + parent_id: + type: + - "null" + - integer +- type: DeclarativeStream + name: custom_fields + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /custom_fields + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + name: + type: + - "null" + - string + field_type: + type: + - "null" + - string + value_type: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time +- type: DeclarativeStream + name: call_dispositions + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /call_dispositions + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string +- type: DeclarativeStream + name: call_sentiments + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /call_sentiments + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string +- type: DeclarativeStream + name: meetings + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /meetings + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + title: + type: + - "null" + - string + start_time: + type: + - "null" + - string + format: date-time + end_time: + type: + - "null" + - string + format: date-time + calendar_id: + type: + - "null" + - string + calendar_type: + type: + - "null" + - string + meeting_type: + type: + - "null" + - string + recipient_name: + type: + - "null" + - string + recipient_email: + type: + - "null" + - string + location: + type: + - "null" + - string + description: + type: + - "null" + - string + event_id: + type: + - "null" + - string + account_id: + type: + - "null" + - string + task_id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + guests: + type: + - "null" + - array + items: + type: + - "null" + - string + attendees: + type: + - "null" + - array + items: + type: + - "null" + - object + additionalProperties: true + properties: + email: + type: + - "null" + - string + name: + type: + - "null" + - string + organizer: + type: + - "null" + - boolean + status: + type: + - "null" + - string + status_changed: + type: + - "null" + - boolean + deleted_at: + type: + - "null" + - string + format: date-time + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + booked_by_user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + crm_references: + type: + - "null" + - object + additionalProperties: true + event_source: + type: + - "null" + - string + canceled_at: + type: + - "null" + - string + format: date-time + all_day: + type: + - "null" + - boolean + no_show: + type: + - "null" + - boolean + crm_custom_fields: + type: + - "null" + - object + additionalProperties: true + strict_attribution: + type: + - "null" + - boolean + i_cal_uid: + type: + - "null" + - string + status: + type: + - "null" + - string + reschedule_status: + type: + - "null" + - string + owned_by_meetings_settings: + type: + - "null" + - object + additionalProperties: true + properties: + id: + email_address: + - "null" + - string + booked_by_meetings_settings: + type: + - "null" + - object + additionalProperties: true + properties: + id: + email_address: + - "null" + - string +- type: DeclarativeStream + name: people + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /people + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + last_contacted_at: + type: + - "null" + - string + format: date-time + last_replied_at: + type: + - "null" + - string + format: date-time + first_name: + type: + - "null" + - string + last_name: + type: + - "null" + - string + display_name: + type: + - "null" + - string + email_address: + type: + - "null" + - string + full_email_address: + type: + - "null" + - string + secondary_email_address: + type: + - "null" + - string + personal_email_address: + type: + - "null" + - string + phone: + type: + - "null" + - string + phone_extension: + type: + - "null" + - string + home_phone: + type: + - "null" + - string + mobile_phone: + type: + - "null" + - string + linkedin_url: + type: + - "null" + - string + title: + type: + - "null" + - string + city: + type: + - "null" + - string + state: + type: + - "null" + - string + country: + type: + - "null" + - string + work_city: + type: + - "null" + - string + work_state: + type: + - "null" + - string + work_country: + type: + - "null" + - string + crm_url: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + crm_object_type: + type: + - "null" + - string + owner_crm_id: + type: + - "null" + - string + person_company_name: + type: + - "null" + - string + person_company_website: + type: + - "null" + - string + person_company_industry: + type: + - "null" + - string + do_not_contact: + type: + - "null" + - boolean + bouncing: + type: + - "null" + - boolean + locale: + type: + - "null" + - string + personal_website: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + last_contacted_type: + type: + - "null" + - string + job_seniority: + type: + - "null" + - string + custom_fields: + type: + - "null" + - object + additionalProperties: true + properties: {} + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + contact_restrictions: + type: + - "null" + - array + items: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + emails_sent: + type: + - "null" + - integer + emails_viewed: + type: + - "null" + - integer + emails_clicked: + type: + - "null" + - integer + emails_replied_to: + type: + - "null" + - integer + emails_bounced: + type: + - "null" + - integer + calls: + type: + - "null" + - integer + account: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_contacted_by: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + import: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + person_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + most_recent_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_completed_step_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_completed_step: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer +- type: DeclarativeStream + name: cadences + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /cadences + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + team_cadence: + type: + - "null" + - boolean + shared: + type: + - "null" + - boolean + remove_bounces_enabled: + type: + - "null" + - boolean + remove_replies_enabled: + type: + - "null" + - boolean + opt_out_link_included: + type: + - "null" + - boolean + name: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + creator: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + bounced_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + replied_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + added_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + finished_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + counts: + type: + - "null" + - object + additionalProperties: true + properties: + cadence_people: + type: + - "null" + - integer + target_daily_people: + type: + - "null" + - integer + latest_active_date: + type: + - "null" + - string + format: date +- type: DeclarativeStream + name: cadence_memberships + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /cadence_memberships + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + added_at: + type: + - "null" + - string + format: date-time + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + person_deleted: + type: + - "null" + - boolean + currently_on_cadence: + type: + - "null" + - boolean + current_state: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + person: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + user: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + latest_action: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + counts: + type: + - "null" + - object + additionalProperties: true + properties: + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + calls: + type: + - "null" + - integer + sent_emails: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer +- type: DeclarativeStream + name: emails + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /activities/emails + http_method: GET + request_parameters: + sent_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + recipient_email_address: + type: + - "null" + - string + status: + type: + - "null" + - string + bounced: + type: + - "null" + - boolean + send_after: + type: + - "null" + - string + format: date-time + sent_at: + type: + - "null" + - string + format: date-time + view_tracking: + type: + - "null" + - boolean + click_tracking: + type: + - "null" + - boolean + personalization: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + clicks: + type: + - "null" + - integer + views: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + unique_devices: + type: + - "null" + - integer + unique_locations: + type: + - "null" + - integer + attachments: + type: + - "null" + - integer + headers: + type: + - "null" + - object + additionalProperties: true + properties: + In-Reply-To: + type: + - "null" + - string + References: + type: + - "null" + - string + to: + type: + - "null" + - string + cc: + type: + - "null" + - string + in_reply_to: + type: + - "null" + - string + bcc: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + recipient: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + mailing: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + crm_activity: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + step: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + email_template: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer +- type: DeclarativeStream + name: calls + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /activities/calls + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + to: + type: + - "null" + - string + duration: + type: + - "null" + - integer + sentiment: + type: + - "null" + - string + disposition: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + called_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + crm_activity: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + note: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string +- type: DeclarativeStream + name: accounts + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /accounts + http_method: GET + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + domain: + type: + - "null" + - string + conversational_name: + type: + - "null" + - string + description: + type: + - "null" + - string + phone: + type: + - "null" + - string + website: + type: + - "null" + - string + linkedin_url: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + street: + type: + - "null" + - string + city: + type: + - "null" + - string + state: + type: + - "null" + - string + postal_code: + type: + - "null" + - string + country: + type: + - "null" + - string + locale: + type: + - "null" + - string + industry: + type: + - "null" + - string + company_type: + type: + - "null" + - string + founded: + type: + - "null" + - string + revenue_range: + type: + - "null" + - string + size: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + crm_url: + type: + - "null" + - string + crm_object_type: + type: + - "null" + - string + owner_crm_id: + type: + - "null" + - string + last_contacted_at: + type: + - "null" + - string + format: date-time + last_contacted_type: + type: + - "null" + - string + do_not_contact: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + people: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + creator: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + last_contacted_by: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + last_contacted_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + company_stage: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + account_tier: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string +- type: DeclarativeStream + name: account_stages + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /account_stages + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + order: + type: + - "null" + - integer +- type: DeclarativeStream + name: actions + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /actions + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + due: + type: + - "null" + - boolean + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + type: + type: + - "null" + - string + status: + type: + - "null" + - string + due_on: + type: + - "null" + - string + format: date-time + multitouch_group_id: + type: + - "null" + - integer + action_details: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string +- type: DeclarativeStream + name: email_templates + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /email_templates + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + title: + type: + - "null" + - string + subject: + type: + - "null" + - string + body: + type: + - "null" + - string + body_preview: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + last_used_at: + type: + - "null" + - string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + shared: + type: + - "null" + - boolean + open_tracking_enabled: + type: + - "null" + - boolean + click_tracking_enabled: + type: + - "null" + - boolean + cadence_template: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + sent_emails: + type: + - "null" + - integer + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer + template_owner: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + _links: + type: + - "null" + - object + additionalProperties: true + properties: + attachments: + type: + - "null" + - string + groups: + type: + - "null" + - array + items: + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string +- type: DeclarativeStream + name: notes + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /notes + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + content: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + associated_with: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string +- type: DeclarativeStream + name: team_templates + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /team_templates + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: string + title: + type: + - "null" + - string + subject: + type: + - "null" + - string + body: + type: + - "null" + - string + body_preview: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + last_used_at: + type: + - "null" + - string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + last_modified_at: + type: + - "null" + - string + format: date-time + open_tracking_enabled: + type: + - "null" + - boolean + click_tracking_enabled: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + sent_emails: + type: + - "null" + - integer + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer + last_modified_user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + _links: + type: + - "null" + - object + additionalProperties: true + properties: + attachments: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string +- type: DeclarativeStream + name: crm_activities + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /crm_activities + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + subject: + type: + - "null" + - string + description: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + activity_type: + type: + - "null" + - string + error: + type: + - "null" + - string + custom_crm_fields: + type: + - "null" + - object + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string +- type: DeclarativeStream + name: successes + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /successes + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + succeeded_at: + type: + - "null" + - string + format: date-time + success_window_started_at: + type: + - "null" + - string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_email: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + latest_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + total_emails: + type: + - "null" + - integer + total_calls: + type: + - "null" + - integer + total_other_touches: + type: + - "null" + - integer +- type: DeclarativeStream + name: call_data_records + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /call_data_records + http_method: GET + request_parameters: + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + to: + type: + - "null" + - string + from: + type: + - "null" + - string + duration: + type: + - "null" + - integer + direction: + type: + - "null" + - string + status: + type: + - "null" + - string + call_type: + type: + - "null" + - string + call_uuid: + type: + - "null" + - string + recording: + type: + - "null" + - object + additionalProperties: true + properties: + url: + type: + - "null" + - string + status: + type: + - "null" + - string + recording_status: + type: + - "null" + - string + call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + called_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string +- type: DeclarativeStream + name: searches + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + type: HttpRequester + url_base: https://api.salesloft.com/v2 + authenticator: + type: SelectiveAuthenticator + authenticator_selection_path: + - "credentials" + - "auth_type" + authenticators: + oauth2.0: + type: CustomAuthenticator + class_name: source_declarative_manifest.components.SingleUseOauth2Authenticator + client_id: "{{ config['credentials']['client_id'] }}" + client_secret: "{{ config['credentials']['client_secret'] }}" + refresh_token: "{{ config['credentials']['refresh_token'] }}" + refresh_request_body: {} + token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" + grant_type: refresh_token + api_key: + type: BearerAuthenticator + api_token: "{{ config['credentials']['api_key'] }}" + path: /meetings/settings/searches + http_method: POST + request_parameters: + created_at[gt]: "{{ config['start_date'] }}" + updated_at[gt]: >- + {{ + format_datetime( + (config['start_date'] if stream_state['updated_at'] is not defined else + (stream_state.updated_at if stream_state.updated_at < now_utc() else + now_utc())), + '%Y-%m-%dT%H:%M:%S.%fZ' + ) + }} + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: CursorPagination + page_size: 100 + cursor_value: "{{ response['metadata']['paging']['next_page'] }}" + stop_condition: >- + {{ response['metadata']['paging'] is not defined or not + response['metadata']['paging'] or + response['metadata']['paging']['next_page'] is not defined or not + response['metadata']['paging']['next_page'] }} + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%f%z" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: "{{ config['start_date'] }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + user_slug: + type: + - "null" + - string + primary_calendar_id: + type: + - "null" + - string + primary_calendar_name: + type: + - "null" + - string + email_address: + type: + - "null" + - string + user_details: + type: + - "null" + - object + additionalProperties: true + calendar_type: + type: + - "null" + - string + title: + type: + - "null" + - string + description: + type: + - "null" + - string + location: + type: + - "null" + - string + default_meeting_length: + type: + - "null" + - integer + availability_limit_enabled: + type: + - "null" + - boolean + availability_limit: + type: + - "null" + - integer + schedule_delay: + type: + - "null" + - integer + buffer_time_duration: + type: + - "null" + - integer + schedule_buffer_enabled: + type: + - "null" + - boolean + times_available: + type: + - "null" + - object + additionalProperties: true + allow_booking_on_behalf: + type: + - "null" + - boolean + allow_booking_overtime: + type: + - "null" + - boolean + allow_event_overlap: + type: + - "null" + - boolean + allow_event_detail: + type: + - "null" + - boolean + enable_dynamic_location: + type: + - "null" + - boolean + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + time_zone: + type: + - "null" + - string + primary_calendar_connection_failed: + type: + - "null" + - boolean + enable_calendar_sync: + type: + - "null" + - boolean + reschedule_meetings_enabled: + type: + - "null" + - boolean + active_meeting_url: + type: + - "null" + - object + additionalProperties: true + properties: + url: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time +spec: + type: Spec + connection_specification: + type: object + $schema: http://json-schema.org/draft-07/schema# + required: + - credentials + - start_date + properties: + credentials: + type: object + oneOf: + - type: object + title: Authenticate via OAuth + required: + - client_id + - client_secret + - refresh_token + - access_token + - token_expiry_date + - auth_type + properties: + auth_type: + type: string + const: oauth2.0 + client_id: + type: string + title: Client ID + description: The Client ID of your Salesloft developer application. + access_token: + type: string + description: Access Token for making authenticated requests. + airbyte_secret: true + client_secret: + type: string + title: Client Secret + description: The Client Secret of your Salesloft developer application. + airbyte_secret: true + refresh_token: + type: string + title: Refresh Token + description: The token for obtaining a new access token. + airbyte_secret: true + token_expiry_date: + type: string + format: date-time + description: The date-time when the access token should be refreshed. + - type: object + title: Authenticate via API Key + required: + - api_key + - auth_type + properties: + api_key: + type: string + title: API Key + description: >- + API Key for making authenticated requests. More instruction on + how to find this value in our docs + airbyte_secret: true + auth_type: + type: string + const: api_key + order: 0 + title: Credentials + start_date: + type: string + title: Start Date + format: date-time + pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$ + order: 1 + examples: + - "2020-11-16T00:00:00Z" + description: >- + The date from which you'd like to replicate data for Salesloft API, in + the format YYYY-MM-DDT00:00:00Z. All data generated after this date + will be replicated. + additionalProperties: true +metadata: + autoImportSchema: + users: false + account_tiers: false + import: false + person_stages: false + phone_number_assignments: false + steps: false + team_template_attachments: false + email_template_attachments: false + crm_users: false + groups: false + custom_fields: false + call_dispositions: false + call_sentiments: false + meetings: false + people: false + cadences: false + cadence_memberships: false + emails: false + calls: false + accounts: false + account_stages: false + actions: false + email_templates: false + notes: false + team_templates: false + crm_activities: false + successes: false + call_data_records: false + searches: false +schemas: + users: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + guid: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + first_name: + type: + - "null" + - string + last_name: + type: + - "null" + - string + job_role: + type: + - "null" + - string + active: + type: + - "null" + - boolean + time_zone: + type: + - "null" + - string + slack_username: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + email: + type: + - "null" + - string + email_client_email_address: + type: + - "null" + - string + sending_email_address: + type: + - "null" + - string + from_address: + type: + - "null" + - string + full_email_address: + type: + - "null" + - string + bcc_email_address: + type: + - "null" + - string + email_signature: + type: + - "null" + - string + email_signature_type: + type: + - "null" + - string + email_signature_click_tracking_disabled: + type: + - "null" + - boolean + team_admin: + type: + - "null" + - boolean + local_dial_enabled: + type: + - "null" + - boolean + click_to_call_enabled: + type: + - "null" + - boolean + email_client_configured: + type: + - "null" + - boolean + crm_connected: + type: + - "null" + - boolean + external_feature_flags: + type: + - "null" + - object + additionalProperties: true + properties: {} + phone_client: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + phone_number_assignment: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + group: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + team: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + role: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + - string + account_tiers: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + order: + type: + - "null" + - integer + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + import: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + current_people_count: + type: + - "null" + - integer + imported_people_count: + type: + - "null" + - integer + person_stages: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + order: + type: + - "null" + - integer + phone_number_assignments: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + number: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + steps: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + disabled: + type: + - "null" + - boolean + type: + type: + - "null" + - string + name: + type: + - "null" + - string + display_name: + type: + - "null" + - string + day: + type: + - "null" + - integer + step_number: + type: + - "null" + - integer + details: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + team_template_attachments: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + attachment_id: + type: + - "null" + - integer + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + name: + type: + - "null" + - string + download_url: + type: + - "null" + - string + attachment_file_size: + type: + - "null" + - integer + email_template_attachments: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + attachment_id: + type: + - "null" + - integer + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + name: + type: + - "null" + - string + download_url: + type: + - "null" + - string + attachment_file_size: + type: + - "null" + - integer + crm_users: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + crm_id: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + groups: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + parent_id: + type: + - "null" + - integer + custom_fields: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + name: + type: + - "null" + - string + field_type: + type: + - "null" + - string + value_type: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + call_dispositions: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + call_sentiments: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + meetings: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + title: + type: + - "null" + - string + start_time: + type: + - "null" + - string + format: date-time + end_time: + type: + - "null" + - string + format: date-time + calendar_id: + type: + - "null" + - string + calendar_type: + type: + - "null" + - string + meeting_type: + type: + - "null" + - string + recipient_name: + type: + - "null" + - string + recipient_email: + type: + - "null" + - string + location: + type: + - "null" + - string + description: + type: + - "null" + - string + event_id: + type: + - "null" + - string + account_id: + type: + - "null" + - string + task_id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + guests: + type: + - "null" + - array + items: + type: + - "null" + - string + attendees: + type: + - "null" + - array + items: + type: + - "null" + - object + additionalProperties: true + properties: + email: + type: + - "null" + - string + name: + type: + - "null" + - string + organizer: + type: + - "null" + - boolean + status: + type: + - "null" + - string + status_changed: + type: + - "null" + - boolean + deleted_at: + type: + - "null" + - string + format: date-time + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + booked_by_user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + crm_references: + type: + - "null" + - object + additionalProperties: true + event_source: + type: + - "null" + - string + canceled_at: + type: + - "null" + - string + format: date-time + all_day: + type: + - "null" + - boolean + no_show: + type: + - "null" + - boolean + crm_custom_fields: + type: + - "null" + - object + additionalProperties: true + strict_attribution: + type: + - "null" + - boolean + i_cal_uid: + type: + - "null" + - string + status: + type: + - "null" + - string + reschedule_status: + type: + - "null" + - string + owned_by_meetings_settings: + type: + - "null" + - object + additionalProperties: true + properties: + id: + email_address: + - "null" + - string + booked_by_meetings_settings: + type: + - "null" + - object + additionalProperties: true + properties: + id: + email_address: + - "null" + - string + people: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + last_contacted_at: + type: + - "null" + - string + format: date-time + last_replied_at: + type: + - "null" + - string + format: date-time + first_name: + type: + - "null" + - string + last_name: + type: + - "null" + - string + display_name: + type: + - "null" + - string + email_address: + type: + - "null" + - string + full_email_address: + type: + - "null" + - string + secondary_email_address: + type: + - "null" + - string + personal_email_address: + type: + - "null" + - string + phone: + type: + - "null" + - string + phone_extension: + type: + - "null" + - string + home_phone: + type: + - "null" + - string + mobile_phone: + type: + - "null" + - string + linkedin_url: + type: + - "null" + - string + title: + type: + - "null" + - string + city: + type: + - "null" + - string + state: + type: + - "null" + - string + country: + type: + - "null" + - string + work_city: + type: + - "null" + - string + work_state: + type: + - "null" + - string + work_country: + type: + - "null" + - string + crm_url: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + crm_object_type: + type: + - "null" + - string + owner_crm_id: + type: + - "null" + - string + person_company_name: + type: + - "null" + - string + person_company_website: + type: + - "null" + - string + person_company_industry: + type: + - "null" + - string + do_not_contact: + type: + - "null" + - boolean + bouncing: + type: + - "null" + - boolean + locale: + type: + - "null" + - string + personal_website: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + last_contacted_type: + type: + - "null" + - string + job_seniority: + type: + - "null" + - string + custom_fields: + type: + - "null" + - object + additionalProperties: true + properties: {} + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + contact_restrictions: + type: + - "null" + - array + items: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + emails_sent: + type: + - "null" + - integer + emails_viewed: + type: + - "null" + - integer + emails_clicked: + type: + - "null" + - integer + emails_replied_to: + type: + - "null" + - integer + emails_bounced: + type: + - "null" + - integer + calls: + type: + - "null" + - integer + account: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_contacted_by: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + import: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + person_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + most_recent_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_completed_step_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + last_completed_step: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + cadences: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + team_cadence: + type: + - "null" + - boolean + shared: + type: + - "null" + - boolean + remove_bounces_enabled: + type: + - "null" + - boolean + remove_replies_enabled: + type: + - "null" + - boolean + opt_out_link_included: + type: + - "null" + - boolean + name: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + creator: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + bounced_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + replied_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + added_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + finished_stage: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + counts: + type: + - "null" + - object + additionalProperties: true + properties: + cadence_people: + type: + - "null" + - integer + target_daily_people: + type: + - "null" + - integer + latest_active_date: + type: + - "null" + - string + format: date + cadence_memberships: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + added_at: + type: + - "null" + - string + format: date-time + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + person_deleted: + type: + - "null" + - boolean + currently_on_cadence: + type: + - "null" + - boolean + current_state: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + person: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + user: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + latest_action: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + counts: + type: + - "null" + - object + additionalProperties: true + properties: + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + calls: + type: + - "null" + - integer + sent_emails: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer + emails: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + recipient_email_address: + type: + - "null" + - string + status: + type: + - "null" + - string + bounced: + type: + - "null" + - boolean + send_after: + type: + - "null" + - string + format: date-time + sent_at: + type: + - "null" + - string + format: date-time + view_tracking: + type: + - "null" + - boolean + click_tracking: + type: + - "null" + - boolean + personalization: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + clicks: + type: + - "null" + - integer + views: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + unique_devices: + type: + - "null" + - integer + unique_locations: + type: + - "null" + - integer + attachments: + type: + - "null" + - integer + headers: + type: + - "null" + - object + additionalProperties: true + properties: + In-Reply-To: + type: + - "null" + - string + References: + type: + - "null" + - string + to: + type: + - "null" + - string + cc: + type: + - "null" + - string + in_reply_to: + type: + - "null" + - string + bcc: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + recipient: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + mailing: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + crm_activity: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + step: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + email_template: + type: + - "null" + - object + additionalProperties: true + properties: + _href: + type: + - "null" + - string + id: + type: + - "null" + - integer + calls: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + to: + type: + - "null" + - string + duration: + type: + - "null" + - integer + sentiment: + type: + - "null" + - string + disposition: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + called_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + crm_activity: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + note: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + accounts: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + name: + type: + - "null" + - string + domain: + type: + - "null" + - string + conversational_name: + type: + - "null" + - string + description: + type: + - "null" + - string + phone: + type: + - "null" + - string + website: + type: + - "null" + - string + linkedin_url: + type: + - "null" + - string + twitter_handle: + type: + - "null" + - string + street: + type: + - "null" + - string + city: + type: + - "null" + - string + state: + type: + - "null" + - string + postal_code: + type: + - "null" + - string + country: + type: + - "null" + - string + locale: + type: + - "null" + - string + industry: + type: + - "null" + - string + company_type: + type: + - "null" + - string + founded: + type: + - "null" + - string + revenue_range: + type: + - "null" + - string + size: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + crm_url: + type: + - "null" + - string + crm_object_type: + type: + - "null" + - string + owner_crm_id: + type: + - "null" + - string + last_contacted_at: + type: + - "null" + - string + format: date-time + last_contacted_type: + type: + - "null" + - string + do_not_contact: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + people: + type: + - "null" + - integer + owner: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + creator: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + last_contacted_by: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + last_contacted_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + company_stage: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + account_tier: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + account_stages: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + name: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + order: + type: + - "null" + - integer + actions: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + due: + type: + - "null" + - boolean + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + type: + type: + - "null" + - string + status: + type: + - "null" + - string + due_on: + type: + - "null" + - string + format: date-time + multitouch_group_id: + type: + - "null" + - integer + action_details: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + email_templates: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + title: + type: + - "null" + - string + subject: + type: + - "null" + - string + body: + type: + - "null" + - string + body_preview: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + last_used_at: + type: + - "null" + - string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + shared: + type: + - "null" + - boolean + open_tracking_enabled: + type: + - "null" + - boolean + click_tracking_enabled: + type: + - "null" + - boolean + cadence_template: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + sent_emails: + type: + - "null" + - integer + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer + template_owner: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + team_template: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + _links: + type: + - "null" + - object + additionalProperties: true + properties: + attachments: + type: + - "null" + - string + groups: + type: + - "null" + - array + items: + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + notes: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + content: + type: + - "null" + - string + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + associated_with: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + team_templates: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: string + title: + type: + - "null" + - string + subject: + type: + - "null" + - string + body: + type: + - "null" + - string + body_preview: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + last_used_at: + type: + - "null" + - string + format: date-time + archived_at: + type: + - "null" + - string + format: date-time + last_modified_at: + type: + - "null" + - string + format: date-time + open_tracking_enabled: + type: + - "null" + - boolean + click_tracking_enabled: + type: + - "null" + - boolean + counts: + type: + - "null" + - object + additionalProperties: true + properties: + sent_emails: + type: + - "null" + - integer + views: + type: + - "null" + - integer + clicks: + type: + - "null" + - integer + replies: + type: + - "null" + - integer + bounces: + type: + - "null" + - integer + last_modified_user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + _links: + type: + - "null" + - object + additionalProperties: true + properties: + attachments: + type: + - "null" + - string + tags: + type: + - "null" + - array + items: + type: + - "null" + - string + crm_activities: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + subject: + type: + - "null" + - string + description: + type: + - "null" + - string + crm_id: + type: + - "null" + - string + activity_type: + type: + - "null" + - string + error: + type: + - "null" + - string + custom_crm_fields: + type: + - "null" + - object + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + successes: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: integer + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + succeeded_at: + type: + - "null" + - string + format: date-time + success_window_started_at: + type: + - "null" + - string + format: date-time + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_email: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_action: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + latest_cadence: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + latest_step: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + counts: + type: + - "null" + - object + additionalProperties: true + properties: + total_emails: + type: + - "null" + - integer + total_calls: + type: + - "null" + - integer + total_other_touches: + type: + - "null" + - integer + call_data_records: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + to: + type: + - "null" + - string + from: + type: + - "null" + - string + duration: + type: + - "null" + - integer + direction: + type: + - "null" + - string + status: + type: + - "null" + - string + call_type: + type: + - "null" + - string + call_uuid: + type: + - "null" + - string + recording: + type: + - "null" + - object + additionalProperties: true + properties: + url: + type: + - "null" + - string + status: + type: + - "null" + - string + recording_status: + type: + - "null" + - string + call: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + called_person: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + _href: + type: + - "null" + - string + searches: + "$schema": http://json-schema.org/draft-07/schema# + type: object + additionalProperties: true + properties: + id: + type: + - "null" + - integer + user: + type: + - "null" + - object + additionalProperties: true + properties: + id: + type: + - "null" + - string + _href: + type: + - "null" + - string + user_slug: + type: + - "null" + - string + primary_calendar_id: + type: + - "null" + - string + primary_calendar_name: + type: + - "null" + - string + email_address: + type: + - "null" + - string + user_details: + type: + - "null" + - object + additionalProperties: true + calendar_type: + type: + - "null" + - string + title: + type: + - "null" + - string + description: + type: + - "null" + - string + location: + type: + - "null" + - string + default_meeting_length: + type: + - "null" + - integer + availability_limit_enabled: + type: + - "null" + - boolean + availability_limit: + type: + - "null" + - integer + schedule_delay: + type: + - "null" + - integer + buffer_time_duration: + type: + - "null" + - integer + schedule_buffer_enabled: + type: + - "null" + - boolean + times_available: + type: + - "null" + - object + additionalProperties: true + allow_booking_on_behalf: + type: + - "null" + - boolean + allow_booking_overtime: + type: + - "null" + - boolean + allow_event_overlap: + type: + - "null" + - boolean + allow_event_detail: + type: + - "null" + - boolean + enable_dynamic_location: + type: + - "null" + - boolean + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time + time_zone: + type: + - "null" + - string + primary_calendar_connection_failed: + type: + - "null" + - boolean + enable_calendar_sync: + type: + - "null" + - boolean + reschedule_meetings_enabled: + type: + - "null" + - boolean + active_meeting_url: + type: + - "null" + - object + additionalProperties: true + properties: + url: + type: + - "null" + - string + created_at: + type: + - "null" + - string + format: date-time + updated_at: + type: + - "null" + - string + format: date-time diff --git a/airbyte-integrations/connectors/source-salesloft/metadata.yaml b/airbyte-integrations/connectors/source-salesloft/metadata.yaml index fae7c1da1cd7..531c5e36ab6b 100644 --- a/airbyte-integrations/connectors/source-salesloft/metadata.yaml +++ b/airbyte-integrations/connectors/source-salesloft/metadata.yaml @@ -12,17 +12,17 @@ data: enabled: true remoteRegistries: pypi: - enabled: true + enabled: false packageName: airbyte-source-salesloft connectorBuildOptions: # Please update to the latest version of the connector base image. # https://hub.docker.com/r/airbyte/python-connector-base # Please use the full address with sha256 hash to guarantee build reproducibility. - baseImage: docker.io/airbyte/python-connector-base:2.0.0@sha256:c44839ba84406116e8ba68722a0f30e8f6e7056c726f447681bb9e9ece8bd916 + baseImage: docker.io/airbyte/source-declarative-manifest:5.15.0@sha256:09a84e0622f36393077332faf11cc239e77083fae5fa500592c049dca25888a7 connectorSubtype: api connectorType: source definitionId: 41991d12-d4b5-439e-afd0-260a31d4c53f - dockerImageTag: 1.2.24 + dockerImageTag: 1.3.0 dockerRepository: airbyte/source-salesloft githubIssueLabel: source-salesloft icon: icon.svg @@ -33,8 +33,8 @@ data: supportLevel: community documentationUrl: https://docs.airbyte.com/integrations/sources/salesloft tags: - - language:python - cdk:low-code + - language:manifest-only connectorTestSuitesOptions: - suite: liveTests testConnections: diff --git a/airbyte-integrations/connectors/source-salesloft/poetry.lock b/airbyte-integrations/connectors/source-salesloft/poetry.lock deleted file mode 100644 index 732d61e9625f..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/poetry.lock +++ /dev/null @@ -1,1480 +0,0 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. - -[[package]] -name = "airbyte-cdk" -version = "0.83.0" -description = "A framework for writing Airbyte Connectors." -optional = false -python-versions = "<4.0,>=3.9" -files = [ - {file = "airbyte_cdk-0.83.0-py3-none-any.whl", hash = "sha256:03c5b3dec45bbf9726d69239d992a0a411726727cc9ba405e30cfa86321b3a0f"}, - {file = "airbyte_cdk-0.83.0.tar.gz", hash = "sha256:131f6f0f50c3ddc36d1772ac897cf3e9a6be8d15a52b338e70d3a747f44f9d39"}, -] - -[package.dependencies] -airbyte-protocol-models = "*" -backoff = "*" -cachetools = "*" -cryptography = ">=42.0.5,<43.0.0" -Deprecated = ">=1.2,<1.3" -dpath = ">=2.0.1,<2.1.0" -genson = "1.2.2" -isodate = ">=0.6.1,<0.7.0" -Jinja2 = ">=3.1.2,<3.2.0" -jsonref = ">=0.2,<0.3" -jsonschema = ">=3.2.0,<3.3.0" -langchain_core = "0.1.42" -pendulum = "<3.0.0" -pydantic = ">=1.10.8,<2.0.0" -pyjwt = ">=2.8.0,<3.0.0" -pyrate-limiter = ">=3.1.0,<3.2.0" -python-dateutil = "*" -PyYAML = ">=6.0.1,<7.0.0" -requests = "*" -requests_cache = "*" -wcmatch = "8.4" - -[package.extras] -file-based = ["avro (>=1.11.2,<1.12.0)", "fastavro (>=1.8.0,<1.9.0)", "markdown", "pdf2image (==1.16.3)", "pdfminer.six (==20221105)", "pyarrow (>=15.0.0,<15.1.0)", "pytesseract (==0.3.10)", "unstructured.pytesseract (>=0.3.12)", "unstructured[docx,pptx] (==0.10.27)"] -sphinx-docs = ["Sphinx (>=4.2,<4.3)", "sphinx-rtd-theme (>=1.0,<1.1)"] -vector-db-based = ["cohere (==4.21)", "langchain (==0.1.16)", "openai[embeddings] (==0.27.9)", "tiktoken (==0.4.0)"] - -[[package]] -name = "airbyte-protocol-models" -version = "0.13.0" -description = "Declares the Airbyte Protocol." -optional = false -python-versions = ">=3.8" -files = [ - {file = "airbyte_protocol_models-0.13.0-py3-none-any.whl", hash = "sha256:fa8b7e1a85f9ae171c50b30d23b317da1740d051994fd3ed648f9dfba00250e2"}, - {file = "airbyte_protocol_models-0.13.0.tar.gz", hash = "sha256:09d8900ba8674a9315fa1799d17026f6b38d2187c08160449540ee93331ed2e7"}, -] - -[package.dependencies] -pydantic = ">=1.9.2,<2.0.0" - -[[package]] -name = "anyio" -version = "4.6.2.post1" -description = "High level compatibility layer for multiple asynchronous event loop implementations" -optional = false -python-versions = ">=3.9" -files = [ - {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"}, - {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"}, -] - -[package.dependencies] -exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} -idna = ">=2.8" -sniffio = ">=1.1" -typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} - -[package.extras] -doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] -trio = ["trio (>=0.26.1)"] - -[[package]] -name = "atomicwrites" -version = "1.4.1" -description = "Atomic file writes." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] - -[[package]] -name = "attrs" -version = "24.2.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.7" -files = [ - {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, - {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, -] - -[package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] - -[[package]] -name = "backoff" -version = "2.2.1" -description = "Function decoration for backoff and retry" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8"}, - {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, -] - -[[package]] -name = "bracex" -version = "2.5.post1" -description = "Bash style brace expander." -optional = false -python-versions = ">=3.8" -files = [ - {file = "bracex-2.5.post1-py3-none-any.whl", hash = "sha256:13e5732fec27828d6af308628285ad358047cec36801598368cb28bc631dbaf6"}, - {file = "bracex-2.5.post1.tar.gz", hash = "sha256:12c50952415bfa773d2d9ccb8e79651b8cdb1f31a42f6091b804f6ba2b4a66b6"}, -] - -[[package]] -name = "cachetools" -version = "5.5.0" -description = "Extensible memoizing collections and decorators" -optional = false -python-versions = ">=3.7" -files = [ - {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, - {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, -] - -[[package]] -name = "cattrs" -version = "24.1.2" -description = "Composable complex class support for attrs and dataclasses." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cattrs-24.1.2-py3-none-any.whl", hash = "sha256:67c7495b760168d931a10233f979b28dc04daf853b30752246f4f8471c6d68d0"}, - {file = "cattrs-24.1.2.tar.gz", hash = "sha256:8028cfe1ff5382df59dd36474a86e02d817b06eaf8af84555441bac915d2ef85"}, -] - -[package.dependencies] -attrs = ">=23.1.0" -exceptiongroup = {version = ">=1.1.1", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.1.0,<4.6.3 || >4.6.3", markers = "python_version < \"3.11\""} - -[package.extras] -bson = ["pymongo (>=4.4.0)"] -cbor2 = ["cbor2 (>=5.4.6)"] -msgpack = ["msgpack (>=1.0.5)"] -msgspec = ["msgspec (>=0.18.5)"] -orjson = ["orjson (>=3.9.2)"] -pyyaml = ["pyyaml (>=6.0)"] -tomlkit = ["tomlkit (>=0.11.8)"] -ujson = ["ujson (>=5.7.0)"] - -[[package]] -name = "certifi" -version = "2024.8.30" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, -] - -[[package]] -name = "cffi" -version = "1.17.1" -description = "Foreign Function Interface for Python calling C code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, - {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, - {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, - {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, - {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, - {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, - {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, - {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, - {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, - {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, - {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, - {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, - {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, - {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, - {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, - {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, - {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, - {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, - {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, - {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, - {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, - {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, - {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, - {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, - {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, - {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, - {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, - {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, - {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, - {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, - {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, - {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, - {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, - {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, - {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, - {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, - {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, -] - -[package.dependencies] -pycparser = "*" - -[[package]] -name = "charset-normalizer" -version = "3.4.0" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, - {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, - {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, - {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, - {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, - {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, - {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, - {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, - {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, - {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "cryptography" -version = "42.0.8" -description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e"}, - {file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d"}, - {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902"}, - {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801"}, - {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949"}, - {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9"}, - {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583"}, - {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7"}, - {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b"}, - {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7"}, - {file = "cryptography-42.0.8-cp37-abi3-win32.whl", hash = "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2"}, - {file = "cryptography-42.0.8-cp37-abi3-win_amd64.whl", hash = "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba"}, - {file = "cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28"}, - {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e"}, - {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70"}, - {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c"}, - {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7"}, - {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e"}, - {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961"}, - {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1"}, - {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14"}, - {file = "cryptography-42.0.8-cp39-abi3-win32.whl", hash = "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c"}, - {file = "cryptography-42.0.8-cp39-abi3-win_amd64.whl", hash = "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a"}, - {file = "cryptography-42.0.8-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe"}, - {file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c"}, - {file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71"}, - {file = "cryptography-42.0.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d"}, - {file = "cryptography-42.0.8-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c"}, - {file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842"}, - {file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648"}, - {file = "cryptography-42.0.8-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad"}, - {file = "cryptography-42.0.8.tar.gz", hash = "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2"}, -] - -[package.dependencies] -cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} - -[package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -nox = ["nox"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] -sdist = ["build"] -ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] -test-randomorder = ["pytest-randomly"] - -[[package]] -name = "deprecated" -version = "1.2.14" -description = "Python @deprecated decorator to deprecate old python classes, functions or methods." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"}, - {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"}, -] - -[package.dependencies] -wrapt = ">=1.10,<2" - -[package.extras] -dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] - -[[package]] -name = "dpath" -version = "2.0.8" -description = "Filesystem-like pathing and searching for dictionaries" -optional = false -python-versions = ">=3.7" -files = [ - {file = "dpath-2.0.8-py3-none-any.whl", hash = "sha256:f92f595214dd93a00558d75d4b858beee519f4cffca87f02616ad6cd013f3436"}, - {file = "dpath-2.0.8.tar.gz", hash = "sha256:a3440157ebe80d0a3ad794f1b61c571bef125214800ffdb9afc9424e8250fe9b"}, -] - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "genson" -version = "1.2.2" -description = "GenSON is a powerful, user-friendly JSON Schema generator." -optional = false -python-versions = "*" -files = [ - {file = "genson-1.2.2.tar.gz", hash = "sha256:8caf69aa10af7aee0e1a1351d1d06801f4696e005f06cedef438635384346a16"}, -] - -[[package]] -name = "h11" -version = "0.14.0" -description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -optional = false -python-versions = ">=3.7" -files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, -] - -[[package]] -name = "httpcore" -version = "1.0.6" -description = "A minimal low-level HTTP client." -optional = false -python-versions = ">=3.8" -files = [ - {file = "httpcore-1.0.6-py3-none-any.whl", hash = "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f"}, - {file = "httpcore-1.0.6.tar.gz", hash = "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f"}, -] - -[package.dependencies] -certifi = "*" -h11 = ">=0.13,<0.15" - -[package.extras] -asyncio = ["anyio (>=4.0,<5.0)"] -http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] -trio = ["trio (>=0.22.0,<1.0)"] - -[[package]] -name = "httpx" -version = "0.27.2" -description = "The next generation HTTP client." -optional = false -python-versions = ">=3.8" -files = [ - {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, - {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, -] - -[package.dependencies] -anyio = "*" -certifi = "*" -httpcore = "==1.*" -idna = "*" -sniffio = "*" - -[package.extras] -brotli = ["brotli", "brotlicffi"] -cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] -http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "idna" -version = "3.10" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.6" -files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, -] - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "isodate" -version = "0.6.1" -description = "An ISO 8601 date/time/duration parser and formatter" -optional = false -python-versions = "*" -files = [ - {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, - {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, -] - -[package.dependencies] -six = "*" - -[[package]] -name = "jinja2" -version = "3.1.4" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jsonpatch" -version = "1.33" -description = "Apply JSON-Patches (RFC 6902)" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" -files = [ - {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"}, - {file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"}, -] - -[package.dependencies] -jsonpointer = ">=1.9" - -[[package]] -name = "jsonpointer" -version = "3.0.0" -description = "Identify specific nodes in a JSON document (RFC 6901)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, - {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, -] - -[[package]] -name = "jsonref" -version = "0.2" -description = "An implementation of JSON Reference for Python" -optional = false -python-versions = "*" -files = [ - {file = "jsonref-0.2-py3-none-any.whl", hash = "sha256:b1e82fa0b62e2c2796a13e5401fe51790b248f6d9bf9d7212a3e31a3501b291f"}, - {file = "jsonref-0.2.tar.gz", hash = "sha256:f3c45b121cf6257eafabdc3a8008763aed1cd7da06dbabc59a9e4d2a5e4e6697"}, -] - -[[package]] -name = "jsonschema" -version = "3.2.0" -description = "An implementation of JSON Schema validation for Python" -optional = false -python-versions = "*" -files = [ - {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, - {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, -] - -[package.dependencies] -attrs = ">=17.4.0" -pyrsistent = ">=0.14.0" -setuptools = "*" -six = ">=1.11.0" - -[package.extras] -format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] -format-nongpl = ["idna", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "webcolors"] - -[[package]] -name = "langchain-core" -version = "0.1.42" -description = "Building applications with LLMs through composability" -optional = false -python-versions = "<4.0,>=3.8.1" -files = [ - {file = "langchain_core-0.1.42-py3-none-any.whl", hash = "sha256:c5653ffa08a44f740295c157a24c0def4a753333f6a2c41f76bf431cd00be8b5"}, - {file = "langchain_core-0.1.42.tar.gz", hash = "sha256:40751bf60ea5d8e2b2efe65290db434717ee3834870c002e40e2811f09d814e6"}, -] - -[package.dependencies] -jsonpatch = ">=1.33,<2.0" -langsmith = ">=0.1.0,<0.2.0" -packaging = ">=23.2,<24.0" -pydantic = ">=1,<3" -PyYAML = ">=5.3" -tenacity = ">=8.1.0,<9.0.0" - -[package.extras] -extended-testing = ["jinja2 (>=3,<4)"] - -[[package]] -name = "langsmith" -version = "0.1.137" -description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." -optional = false -python-versions = "<4.0,>=3.8.1" -files = [ - {file = "langsmith-0.1.137-py3-none-any.whl", hash = "sha256:4256d5c61133749890f7b5c88321dbb133ce0f440c621ea28e76513285859b81"}, - {file = "langsmith-0.1.137.tar.gz", hash = "sha256:56cdfcc6c74cb20a3f437d5bd144feb5bf93f54c5a2918d1e568cbd084a372d4"}, -] - -[package.dependencies] -httpx = ">=0.23.0,<1" -orjson = ">=3.9.14,<4.0.0" -pydantic = {version = ">=1,<3", markers = "python_full_version < \"3.12.4\""} -requests = ">=2,<3" -requests-toolbelt = ">=1.0.0,<2.0.0" - -[[package]] -name = "markupsafe" -version = "3.0.2" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, -] - -[[package]] -name = "orjson" -version = "3.10.10" -description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" -optional = false -python-versions = ">=3.8" -files = [ - {file = "orjson-3.10.10-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b788a579b113acf1c57e0a68e558be71d5d09aa67f62ca1f68e01117e550a998"}, - {file = "orjson-3.10.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:804b18e2b88022c8905bb79bd2cbe59c0cd014b9328f43da8d3b28441995cda4"}, - {file = "orjson-3.10.10-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9972572a1d042ec9ee421b6da69f7cc823da5962237563fa548ab17f152f0b9b"}, - {file = "orjson-3.10.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc6993ab1c2ae7dd0711161e303f1db69062955ac2668181bfdf2dd410e65258"}, - {file = "orjson-3.10.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d78e4cacced5781b01d9bc0f0cd8b70b906a0e109825cb41c1b03f9c41e4ce86"}, - {file = "orjson-3.10.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6eb2598df518281ba0cbc30d24c5b06124ccf7e19169e883c14e0831217a0bc"}, - {file = "orjson-3.10.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23776265c5215ec532de6238a52707048401a568f0fa0d938008e92a147fe2c7"}, - {file = "orjson-3.10.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8cc2a654c08755cef90b468ff17c102e2def0edd62898b2486767204a7f5cc9c"}, - {file = "orjson-3.10.10-cp310-none-win32.whl", hash = "sha256:081b3fc6a86d72efeb67c13d0ea7c030017bd95f9868b1e329a376edc456153b"}, - {file = "orjson-3.10.10-cp310-none-win_amd64.whl", hash = "sha256:ff38c5fb749347768a603be1fb8a31856458af839f31f064c5aa74aca5be9efe"}, - {file = "orjson-3.10.10-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:879e99486c0fbb256266c7c6a67ff84f46035e4f8749ac6317cc83dacd7f993a"}, - {file = "orjson-3.10.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:019481fa9ea5ff13b5d5d95e6fd5ab25ded0810c80b150c2c7b1cc8660b662a7"}, - {file = "orjson-3.10.10-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0dd57eff09894938b4c86d4b871a479260f9e156fa7f12f8cad4b39ea8028bb5"}, - {file = "orjson-3.10.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dbde6d70cd95ab4d11ea8ac5e738e30764e510fc54d777336eec09bb93b8576c"}, - {file = "orjson-3.10.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2625cb37b8fb42e2147404e5ff7ef08712099197a9cd38895006d7053e69d6"}, - {file = "orjson-3.10.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbf3c20c6a7db69df58672a0d5815647ecf78c8e62a4d9bd284e8621c1fe5ccb"}, - {file = "orjson-3.10.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:75c38f5647e02d423807d252ce4528bf6a95bd776af999cb1fb48867ed01d1f6"}, - {file = "orjson-3.10.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:23458d31fa50ec18e0ec4b0b4343730928296b11111df5f547c75913714116b2"}, - {file = "orjson-3.10.10-cp311-none-win32.whl", hash = "sha256:2787cd9dedc591c989f3facd7e3e86508eafdc9536a26ec277699c0aa63c685b"}, - {file = "orjson-3.10.10-cp311-none-win_amd64.whl", hash = "sha256:6514449d2c202a75183f807bc755167713297c69f1db57a89a1ef4a0170ee269"}, - {file = "orjson-3.10.10-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8564f48f3620861f5ef1e080ce7cd122ee89d7d6dacf25fcae675ff63b4d6e05"}, - {file = "orjson-3.10.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5bf161a32b479034098c5b81f2608f09167ad2fa1c06abd4e527ea6bf4837a9"}, - {file = "orjson-3.10.10-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:68b65c93617bcafa7f04b74ae8bc2cc214bd5cb45168a953256ff83015c6747d"}, - {file = "orjson-3.10.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8e28406f97fc2ea0c6150f4c1b6e8261453318930b334abc419214c82314f85"}, - {file = "orjson-3.10.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4d0d9fe174cc7a5bdce2e6c378bcdb4c49b2bf522a8f996aa586020e1b96cee"}, - {file = "orjson-3.10.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3be81c42f1242cbed03cbb3973501fcaa2675a0af638f8be494eaf37143d999"}, - {file = "orjson-3.10.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:65f9886d3bae65be026219c0a5f32dbbe91a9e6272f56d092ab22561ad0ea33b"}, - {file = "orjson-3.10.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:730ed5350147db7beb23ddaf072f490329e90a1d059711d364b49fe352ec987b"}, - {file = "orjson-3.10.10-cp312-none-win32.whl", hash = "sha256:a8f4bf5f1c85bea2170800020d53a8877812892697f9c2de73d576c9307a8a5f"}, - {file = "orjson-3.10.10-cp312-none-win_amd64.whl", hash = "sha256:384cd13579a1b4cd689d218e329f459eb9ddc504fa48c5a83ef4889db7fd7a4f"}, - {file = "orjson-3.10.10-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:44bffae68c291f94ff5a9b4149fe9d1bdd4cd0ff0fb575bcea8351d48db629a1"}, - {file = "orjson-3.10.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e27b4c6437315df3024f0835887127dac2a0a3ff643500ec27088d2588fa5ae1"}, - {file = "orjson-3.10.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca84df16d6b49325a4084fd8b2fe2229cb415e15c46c529f868c3387bb1339d"}, - {file = "orjson-3.10.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c14ce70e8f39bd71f9f80423801b5d10bf93d1dceffdecd04df0f64d2c69bc01"}, - {file = "orjson-3.10.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:24ac62336da9bda1bd93c0491eff0613003b48d3cb5d01470842e7b52a40d5b4"}, - {file = "orjson-3.10.10-cp313-none-win32.whl", hash = "sha256:eb0a42831372ec2b05acc9ee45af77bcaccbd91257345f93780a8e654efc75db"}, - {file = "orjson-3.10.10-cp313-none-win_amd64.whl", hash = "sha256:f0c4f37f8bf3f1075c6cc8dd8a9f843689a4b618628f8812d0a71e6968b95ffd"}, - {file = "orjson-3.10.10-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:829700cc18503efc0cf502d630f612884258020d98a317679cd2054af0259568"}, - {file = "orjson-3.10.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0ceb5e0e8c4f010ac787d29ae6299846935044686509e2f0f06ed441c1ca949"}, - {file = "orjson-3.10.10-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0c25908eb86968613216f3db4d3003f1c45d78eb9046b71056ca327ff92bdbd4"}, - {file = "orjson-3.10.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:218cb0bc03340144b6328a9ff78f0932e642199ac184dd74b01ad691f42f93ff"}, - {file = "orjson-3.10.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2277ec2cea3775640dc81ab5195bb5b2ada2fe0ea6eee4677474edc75ea6785"}, - {file = "orjson-3.10.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:848ea3b55ab5ccc9d7bbd420d69432628b691fba3ca8ae3148c35156cbd282aa"}, - {file = "orjson-3.10.10-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e3e67b537ac0c835b25b5f7d40d83816abd2d3f4c0b0866ee981a045287a54f3"}, - {file = "orjson-3.10.10-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:7948cfb909353fce2135dcdbe4521a5e7e1159484e0bb024c1722f272488f2b8"}, - {file = "orjson-3.10.10-cp38-none-win32.whl", hash = "sha256:78bee66a988f1a333dc0b6257503d63553b1957889c17b2c4ed72385cd1b96ae"}, - {file = "orjson-3.10.10-cp38-none-win_amd64.whl", hash = "sha256:f1d647ca8d62afeb774340a343c7fc023efacfd3a39f70c798991063f0c681dd"}, - {file = "orjson-3.10.10-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5a059afddbaa6dd733b5a2d76a90dbc8af790b993b1b5cb97a1176ca713b5df8"}, - {file = "orjson-3.10.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f9b5c59f7e2a1a410f971c5ebc68f1995822837cd10905ee255f96074537ee6"}, - {file = "orjson-3.10.10-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d5ef198bafdef4aa9d49a4165ba53ffdc0a9e1c7b6f76178572ab33118afea25"}, - {file = "orjson-3.10.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aaf29ce0bb5d3320824ec3d1508652421000ba466abd63bdd52c64bcce9eb1fa"}, - {file = "orjson-3.10.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dddd5516bcc93e723d029c1633ae79c4417477b4f57dad9bfeeb6bc0315e654a"}, - {file = "orjson-3.10.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12f2003695b10817f0fa8b8fca982ed7f5761dcb0d93cff4f2f9f6709903fd7"}, - {file = "orjson-3.10.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:672f9874a8a8fb9bb1b771331d31ba27f57702c8106cdbadad8bda5d10bc1019"}, - {file = "orjson-3.10.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dcbb0ca5fafb2b378b2c74419480ab2486326974826bbf6588f4dc62137570a"}, - {file = "orjson-3.10.10-cp39-none-win32.whl", hash = "sha256:d9bbd3a4b92256875cb058c3381b782649b9a3c68a4aa9a2fff020c2f9cfc1be"}, - {file = "orjson-3.10.10-cp39-none-win_amd64.whl", hash = "sha256:766f21487a53aee8524b97ca9582d5c6541b03ab6210fbaf10142ae2f3ced2aa"}, - {file = "orjson-3.10.10.tar.gz", hash = "sha256:37949383c4df7b4337ce82ee35b6d7471e55195efa7dcb45ab8226ceadb0fe3b"}, -] - -[[package]] -name = "packaging" -version = "23.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.7" -files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, -] - -[[package]] -name = "pendulum" -version = "2.1.2" -description = "Python datetimes made easy" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "pendulum-2.1.2-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:b6c352f4bd32dff1ea7066bd31ad0f71f8d8100b9ff709fb343f3b86cee43efe"}, - {file = "pendulum-2.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:318f72f62e8e23cd6660dbafe1e346950281a9aed144b5c596b2ddabc1d19739"}, - {file = "pendulum-2.1.2-cp35-cp35m-macosx_10_15_x86_64.whl", hash = "sha256:0731f0c661a3cb779d398803655494893c9f581f6488048b3fb629c2342b5394"}, - {file = "pendulum-2.1.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:3481fad1dc3f6f6738bd575a951d3c15d4b4ce7c82dce37cf8ac1483fde6e8b0"}, - {file = "pendulum-2.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9702069c694306297ed362ce7e3c1ef8404ac8ede39f9b28b7c1a7ad8c3959e3"}, - {file = "pendulum-2.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:fb53ffa0085002ddd43b6ca61a7b34f2d4d7c3ed66f931fe599e1a531b42af9b"}, - {file = "pendulum-2.1.2-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:c501749fdd3d6f9e726086bf0cd4437281ed47e7bca132ddb522f86a1645d360"}, - {file = "pendulum-2.1.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c807a578a532eeb226150d5006f156632df2cc8c5693d778324b43ff8c515dd0"}, - {file = "pendulum-2.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2d1619a721df661e506eff8db8614016f0720ac171fe80dda1333ee44e684087"}, - {file = "pendulum-2.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f888f2d2909a414680a29ae74d0592758f2b9fcdee3549887779cd4055e975db"}, - {file = "pendulum-2.1.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:e95d329384717c7bf627bf27e204bc3b15c8238fa8d9d9781d93712776c14002"}, - {file = "pendulum-2.1.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:4c9c689747f39d0d02a9f94fcee737b34a5773803a64a5fdb046ee9cac7442c5"}, - {file = "pendulum-2.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:1245cd0075a3c6d889f581f6325dd8404aca5884dea7223a5566c38aab94642b"}, - {file = "pendulum-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:db0a40d8bcd27b4fb46676e8eb3c732c67a5a5e6bfab8927028224fbced0b40b"}, - {file = "pendulum-2.1.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f5e236e7730cab1644e1b87aca3d2ff3e375a608542e90fe25685dae46310116"}, - {file = "pendulum-2.1.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:de42ea3e2943171a9e95141f2eecf972480636e8e484ccffaf1e833929e9e052"}, - {file = "pendulum-2.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7c5ec650cb4bec4c63a89a0242cc8c3cebcec92fcfe937c417ba18277d8560be"}, - {file = "pendulum-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:33fb61601083f3eb1d15edeb45274f73c63b3c44a8524703dc143f4212bf3269"}, - {file = "pendulum-2.1.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:29c40a6f2942376185728c9a0347d7c0f07905638c83007e1d262781f1e6953a"}, - {file = "pendulum-2.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:94b1fc947bfe38579b28e1cccb36f7e28a15e841f30384b5ad6c5e31055c85d7"}, - {file = "pendulum-2.1.2.tar.gz", hash = "sha256:b06a0ca1bfe41c990bbf0c029f0b6501a7f2ec4e38bfec730712015e8860f207"}, -] - -[package.dependencies] -python-dateutil = ">=2.6,<3.0" -pytzdata = ">=2020.1" - -[[package]] -name = "platformdirs" -version = "4.3.6" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.8" -files = [ - {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] - -[[package]] -name = "pycparser" -version = "2.22" -description = "C parser in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, - {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, -] - -[[package]] -name = "pydantic" -version = "1.10.18" -description = "Data validation and settings management using python type hints" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pydantic-1.10.18-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e405ffcc1254d76bb0e760db101ee8916b620893e6edfbfee563b3c6f7a67c02"}, - {file = "pydantic-1.10.18-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e306e280ebebc65040034bff1a0a81fd86b2f4f05daac0131f29541cafd80b80"}, - {file = "pydantic-1.10.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11d9d9b87b50338b1b7de4ebf34fd29fdb0d219dc07ade29effc74d3d2609c62"}, - {file = "pydantic-1.10.18-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b661ce52c7b5e5f600c0c3c5839e71918346af2ef20062705ae76b5c16914cab"}, - {file = "pydantic-1.10.18-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c20f682defc9ef81cd7eaa485879ab29a86a0ba58acf669a78ed868e72bb89e0"}, - {file = "pydantic-1.10.18-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c5ae6b7c8483b1e0bf59e5f1843e4fd8fd405e11df7de217ee65b98eb5462861"}, - {file = "pydantic-1.10.18-cp310-cp310-win_amd64.whl", hash = "sha256:74fe19dda960b193b0eb82c1f4d2c8e5e26918d9cda858cbf3f41dd28549cb70"}, - {file = "pydantic-1.10.18-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72fa46abace0a7743cc697dbb830a41ee84c9db8456e8d77a46d79b537efd7ec"}, - {file = "pydantic-1.10.18-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef0fe7ad7cbdb5f372463d42e6ed4ca9c443a52ce544472d8842a0576d830da5"}, - {file = "pydantic-1.10.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a00e63104346145389b8e8f500bc6a241e729feaf0559b88b8aa513dd2065481"}, - {file = "pydantic-1.10.18-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae6fa2008e1443c46b7b3a5eb03800121868d5ab6bc7cda20b5df3e133cde8b3"}, - {file = "pydantic-1.10.18-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9f463abafdc92635da4b38807f5b9972276be7c8c5121989768549fceb8d2588"}, - {file = "pydantic-1.10.18-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3445426da503c7e40baccefb2b2989a0c5ce6b163679dd75f55493b460f05a8f"}, - {file = "pydantic-1.10.18-cp311-cp311-win_amd64.whl", hash = "sha256:467a14ee2183bc9c902579bb2f04c3d3dac00eff52e252850509a562255b2a33"}, - {file = "pydantic-1.10.18-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:efbc8a7f9cb5fe26122acba1852d8dcd1e125e723727c59dcd244da7bdaa54f2"}, - {file = "pydantic-1.10.18-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:24a4a159d0f7a8e26bf6463b0d3d60871d6a52eac5bb6a07a7df85c806f4c048"}, - {file = "pydantic-1.10.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b74be007703547dc52e3c37344d130a7bfacca7df112a9e5ceeb840a9ce195c7"}, - {file = "pydantic-1.10.18-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fcb20d4cb355195c75000a49bb4a31d75e4295200df620f454bbc6bdf60ca890"}, - {file = "pydantic-1.10.18-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:46f379b8cb8a3585e3f61bf9ae7d606c70d133943f339d38b76e041ec234953f"}, - {file = "pydantic-1.10.18-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cbfbca662ed3729204090c4d09ee4beeecc1a7ecba5a159a94b5a4eb24e3759a"}, - {file = "pydantic-1.10.18-cp312-cp312-win_amd64.whl", hash = "sha256:c6d0a9f9eccaf7f438671a64acf654ef0d045466e63f9f68a579e2383b63f357"}, - {file = "pydantic-1.10.18-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d5492dbf953d7d849751917e3b2433fb26010d977aa7a0765c37425a4026ff1"}, - {file = "pydantic-1.10.18-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe734914977eed33033b70bfc097e1baaffb589517863955430bf2e0846ac30f"}, - {file = "pydantic-1.10.18-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15fdbe568beaca9aacfccd5ceadfb5f1a235087a127e8af5e48df9d8a45ae85c"}, - {file = "pydantic-1.10.18-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c3e742f62198c9eb9201781fbebe64533a3bbf6a76a91b8d438d62b813079dbc"}, - {file = "pydantic-1.10.18-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:19a3bd00b9dafc2cd7250d94d5b578edf7a0bd7daf102617153ff9a8fa37871c"}, - {file = "pydantic-1.10.18-cp37-cp37m-win_amd64.whl", hash = "sha256:2ce3fcf75b2bae99aa31bd4968de0474ebe8c8258a0110903478bd83dfee4e3b"}, - {file = "pydantic-1.10.18-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:335a32d72c51a313b33fa3a9b0fe283503272ef6467910338e123f90925f0f03"}, - {file = "pydantic-1.10.18-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:34a3613c7edb8c6fa578e58e9abe3c0f5e7430e0fc34a65a415a1683b9c32d9a"}, - {file = "pydantic-1.10.18-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9ee4e6ca1d9616797fa2e9c0bfb8815912c7d67aca96f77428e316741082a1b"}, - {file = "pydantic-1.10.18-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:23e8ec1ce4e57b4f441fc91e3c12adba023fedd06868445a5b5f1d48f0ab3682"}, - {file = "pydantic-1.10.18-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:44ae8a3e35a54d2e8fa88ed65e1b08967a9ef8c320819a969bfa09ce5528fafe"}, - {file = "pydantic-1.10.18-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5389eb3b48a72da28c6e061a247ab224381435256eb541e175798483368fdd3"}, - {file = "pydantic-1.10.18-cp38-cp38-win_amd64.whl", hash = "sha256:069b9c9fc645474d5ea3653788b544a9e0ccd3dca3ad8c900c4c6eac844b4620"}, - {file = "pydantic-1.10.18-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:80b982d42515632eb51f60fa1d217dfe0729f008e81a82d1544cc392e0a50ddf"}, - {file = "pydantic-1.10.18-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:aad8771ec8dbf9139b01b56f66386537c6fe4e76c8f7a47c10261b69ad25c2c9"}, - {file = "pydantic-1.10.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941a2eb0a1509bd7f31e355912eb33b698eb0051730b2eaf9e70e2e1589cae1d"}, - {file = "pydantic-1.10.18-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65f7361a09b07915a98efd17fdec23103307a54db2000bb92095457ca758d485"}, - {file = "pydantic-1.10.18-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6951f3f47cb5ca4da536ab161ac0163cab31417d20c54c6de5ddcab8bc813c3f"}, - {file = "pydantic-1.10.18-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7a4c5eec138a9b52c67f664c7d51d4c7234c5ad65dd8aacd919fb47445a62c86"}, - {file = "pydantic-1.10.18-cp39-cp39-win_amd64.whl", hash = "sha256:49e26c51ca854286bffc22b69787a8d4063a62bf7d83dc21d44d2ff426108518"}, - {file = "pydantic-1.10.18-py3-none-any.whl", hash = "sha256:06a189b81ffc52746ec9c8c007f16e5167c8b0a696e1a726369327e3db7b2a82"}, - {file = "pydantic-1.10.18.tar.gz", hash = "sha256:baebdff1907d1d96a139c25136a9bb7d17e118f133a76a2ef3b845e831e3403a"}, -] - -[package.dependencies] -typing-extensions = ">=4.2.0" - -[package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] - -[[package]] -name = "pyjwt" -version = "2.9.0" -description = "JSON Web Token implementation in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyJWT-2.9.0-py3-none-any.whl", hash = "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850"}, - {file = "pyjwt-2.9.0.tar.gz", hash = "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c"}, -] - -[package.extras] -crypto = ["cryptography (>=3.4.0)"] -dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] -docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] -tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] - -[[package]] -name = "pyrate-limiter" -version = "3.1.1" -description = "Python Rate-Limiter using Leaky-Bucket Algorithm" -optional = false -python-versions = ">=3.8,<4.0" -files = [ - {file = "pyrate_limiter-3.1.1-py3-none-any.whl", hash = "sha256:c51906f1d51d56dc992ff6c26e8300e32151bc6cfa3e6559792e31971dfd4e2b"}, - {file = "pyrate_limiter-3.1.1.tar.gz", hash = "sha256:2f57eda712687e6eccddf6afe8f8a15b409b97ed675fe64a626058f12863b7b7"}, -] - -[package.extras] -all = ["filelock (>=3.0)", "redis (>=5.0.0,<6.0.0)"] -docs = ["furo (>=2022.3.4,<2023.0.0)", "myst-parser (>=0.17)", "sphinx (>=4.3.0,<5.0.0)", "sphinx-autodoc-typehints (>=1.17,<2.0)", "sphinx-copybutton (>=0.5)", "sphinxcontrib-apidoc (>=0.3,<0.4)"] - -[[package]] -name = "pyrsistent" -version = "0.20.0" -description = "Persistent/Functional/Immutable data structures" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pyrsistent-0.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c3aba3e01235221e5b229a6c05f585f344734bd1ad42a8ac51493d74722bbce"}, - {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1beb78af5423b879edaf23c5591ff292cf7c33979734c99aa66d5914ead880f"}, - {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21cc459636983764e692b9eba7144cdd54fdec23ccdb1e8ba392a63666c60c34"}, - {file = "pyrsistent-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5ac696f02b3fc01a710427585c855f65cd9c640e14f52abe52020722bb4906b"}, - {file = "pyrsistent-0.20.0-cp310-cp310-win32.whl", hash = "sha256:0724c506cd8b63c69c7f883cc233aac948c1ea946ea95996ad8b1380c25e1d3f"}, - {file = "pyrsistent-0.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:8441cf9616d642c475684d6cf2520dd24812e996ba9af15e606df5f6fd9d04a7"}, - {file = "pyrsistent-0.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0f3b1bcaa1f0629c978b355a7c37acd58907390149b7311b5db1b37648eb6958"}, - {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdd7ef1ea7a491ae70d826b6cc64868de09a1d5ff9ef8d574250d0940e275b8"}, - {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cae40a9e3ce178415040a0383f00e8d68b569e97f31928a3a8ad37e3fde6df6a"}, - {file = "pyrsistent-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6288b3fa6622ad8a91e6eb759cfc48ff3089e7c17fb1d4c59a919769314af224"}, - {file = "pyrsistent-0.20.0-cp311-cp311-win32.whl", hash = "sha256:7d29c23bdf6e5438c755b941cef867ec2a4a172ceb9f50553b6ed70d50dfd656"}, - {file = "pyrsistent-0.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:59a89bccd615551391f3237e00006a26bcf98a4d18623a19909a2c48b8e986ee"}, - {file = "pyrsistent-0.20.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:09848306523a3aba463c4b49493a760e7a6ca52e4826aa100ee99d8d39b7ad1e"}, - {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a14798c3005ec892bbada26485c2eea3b54109cb2533713e355c806891f63c5e"}, - {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b14decb628fac50db5e02ee5a35a9c0772d20277824cfe845c8a8b717c15daa3"}, - {file = "pyrsistent-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e2c116cc804d9b09ce9814d17df5edf1df0c624aba3b43bc1ad90411487036d"}, - {file = "pyrsistent-0.20.0-cp312-cp312-win32.whl", hash = "sha256:e78d0c7c1e99a4a45c99143900ea0546025e41bb59ebc10182e947cf1ece9174"}, - {file = "pyrsistent-0.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:4021a7f963d88ccd15b523787d18ed5e5269ce57aa4037146a2377ff607ae87d"}, - {file = "pyrsistent-0.20.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:79ed12ba79935adaac1664fd7e0e585a22caa539dfc9b7c7c6d5ebf91fb89054"}, - {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f920385a11207dc372a028b3f1e1038bb244b3ec38d448e6d8e43c6b3ba20e98"}, - {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f5c2d012671b7391803263419e31b5c7c21e7c95c8760d7fc35602353dee714"}, - {file = "pyrsistent-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef3992833fbd686ee783590639f4b8343a57f1f75de8633749d984dc0eb16c86"}, - {file = "pyrsistent-0.20.0-cp38-cp38-win32.whl", hash = "sha256:881bbea27bbd32d37eb24dd320a5e745a2a5b092a17f6debc1349252fac85423"}, - {file = "pyrsistent-0.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:6d270ec9dd33cdb13f4d62c95c1a5a50e6b7cdd86302b494217137f760495b9d"}, - {file = "pyrsistent-0.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca52d1ceae015859d16aded12584c59eb3825f7b50c6cfd621d4231a6cc624ce"}, - {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b318ca24db0f0518630e8b6f3831e9cba78f099ed5c1d65ffe3e023003043ba0"}, - {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed2c3216a605dc9a6ea50c7e84c82906e3684c4e80d2908208f662a6cbf9022"}, - {file = "pyrsistent-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e14c95c16211d166f59c6611533d0dacce2e25de0f76e4c140fde250997b3ca"}, - {file = "pyrsistent-0.20.0-cp39-cp39-win32.whl", hash = "sha256:f058a615031eea4ef94ead6456f5ec2026c19fb5bd6bfe86e9665c4158cf802f"}, - {file = "pyrsistent-0.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:58b8f6366e152092194ae68fefe18b9f0b4f89227dfd86a07770c3d86097aebf"}, - {file = "pyrsistent-0.20.0-py3-none-any.whl", hash = "sha256:c55acc4733aad6560a7f5f818466631f07efc001fd023f34a6c203f8b6df0f0b"}, - {file = "pyrsistent-0.20.0.tar.gz", hash = "sha256:4c48f78f62ab596c679086084d0dd13254ae4f3d6c72a83ffdf5ebdef8f265a4"}, -] - -[[package]] -name = "pytest" -version = "6.2.5" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] - -[package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -toml = "*" - -[package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] - -[[package]] -name = "pytest-mock" -version = "3.14.0" -description = "Thin-wrapper around the mock package for easier use with pytest" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, - {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, -] - -[package.dependencies] -pytest = ">=6.2.5" - -[package.extras] -dev = ["pre-commit", "pytest-asyncio", "tox"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytzdata" -version = "2020.1" -description = "The Olson timezone database for Python." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pytzdata-2020.1-py2.py3-none-any.whl", hash = "sha256:e1e14750bcf95016381e4d472bad004eef710f2d6417240904070b3d6654485f"}, - {file = "pytzdata-2020.1.tar.gz", hash = "sha256:3efa13b335a00a8de1d345ae41ec78dd11c9f8807f522d39850f2dd828681540"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "requests" -version = "2.32.3" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.8" -files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "requests-cache" -version = "1.2.1" -description = "A persistent cache for python requests" -optional = false -python-versions = ">=3.8" -files = [ - {file = "requests_cache-1.2.1-py3-none-any.whl", hash = "sha256:1285151cddf5331067baa82598afe2d47c7495a1334bfe7a7d329b43e9fd3603"}, - {file = "requests_cache-1.2.1.tar.gz", hash = "sha256:68abc986fdc5b8d0911318fbb5f7c80eebcd4d01bfacc6685ecf8876052511d1"}, -] - -[package.dependencies] -attrs = ">=21.2" -cattrs = ">=22.2" -platformdirs = ">=2.5" -requests = ">=2.22" -url-normalize = ">=1.4" -urllib3 = ">=1.25.5" - -[package.extras] -all = ["boto3 (>=1.15)", "botocore (>=1.18)", "itsdangerous (>=2.0)", "pymongo (>=3)", "pyyaml (>=6.0.1)", "redis (>=3)", "ujson (>=5.4)"] -bson = ["bson (>=0.5)"] -docs = ["furo (>=2023.3,<2024.0)", "linkify-it-py (>=2.0,<3.0)", "myst-parser (>=1.0,<2.0)", "sphinx (>=5.0.2,<6.0.0)", "sphinx-autodoc-typehints (>=1.19)", "sphinx-automodapi (>=0.14)", "sphinx-copybutton (>=0.5)", "sphinx-design (>=0.2)", "sphinx-notfound-page (>=0.8)", "sphinxcontrib-apidoc (>=0.3)", "sphinxext-opengraph (>=0.9)"] -dynamodb = ["boto3 (>=1.15)", "botocore (>=1.18)"] -json = ["ujson (>=5.4)"] -mongodb = ["pymongo (>=3)"] -redis = ["redis (>=3)"] -security = ["itsdangerous (>=2.0)"] -yaml = ["pyyaml (>=6.0.1)"] - -[[package]] -name = "requests-mock" -version = "1.12.1" -description = "Mock out responses from the requests package" -optional = false -python-versions = ">=3.5" -files = [ - {file = "requests-mock-1.12.1.tar.gz", hash = "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"}, - {file = "requests_mock-1.12.1-py2.py3-none-any.whl", hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563"}, -] - -[package.dependencies] -requests = ">=2.22,<3" - -[package.extras] -fixture = ["fixtures"] - -[[package]] -name = "requests-toolbelt" -version = "1.0.0" -description = "A utility belt for advanced users of python-requests" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - -[[package]] -name = "setuptools" -version = "75.3.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-75.3.0-py3-none-any.whl", hash = "sha256:f2504966861356aa38616760c0f66568e535562374995367b4e69c7143cf6bcd"}, - {file = "setuptools-75.3.0.tar.gz", hash = "sha256:fba5dd4d766e97be1b1681d98712680ae8f2f26d7881245f2ce9e40714f1a686"}, -] - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12.*)", "pytest-mypy"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "sniffio" -version = "1.3.1" -description = "Sniff out which async library your code is running under" -optional = false -python-versions = ">=3.7" -files = [ - {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, - {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, -] - -[[package]] -name = "tenacity" -version = "8.5.0" -description = "Retry code until it succeeds" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687"}, - {file = "tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78"}, -] - -[package.extras] -doc = ["reno", "sphinx"] -test = ["pytest", "tornado (>=4.5)", "typeguard"] - -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, -] - -[[package]] -name = "url-normalize" -version = "1.4.3" -description = "URL normalization for Python" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -files = [ - {file = "url-normalize-1.4.3.tar.gz", hash = "sha256:d23d3a070ac52a67b83a1c59a0e68f8608d1cd538783b401bc9de2c0fac999b2"}, - {file = "url_normalize-1.4.3-py2.py3-none-any.whl", hash = "sha256:ec3c301f04e5bb676d333a7fa162fa977ad2ca04b7e652bfc9fac4e405728eed"}, -] - -[package.dependencies] -six = "*" - -[[package]] -name = "urllib3" -version = "2.2.3" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.8" -files = [ - {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, - {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "wcmatch" -version = "8.4" -description = "Wildcard/glob file name matcher." -optional = false -python-versions = ">=3.7" -files = [ - {file = "wcmatch-8.4-py3-none-any.whl", hash = "sha256:dc7351e5a7f8bbf4c6828d51ad20c1770113f5f3fd3dfe2a03cfde2a63f03f98"}, - {file = "wcmatch-8.4.tar.gz", hash = "sha256:ba4fc5558f8946bf1ffc7034b05b814d825d694112499c86035e0e4d398b6a67"}, -] - -[package.dependencies] -bracex = ">=2.1.1" - -[[package]] -name = "wrapt" -version = "1.16.0" -description = "Module for decorators, wrappers and monkey patching." -optional = false -python-versions = ">=3.6" -files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, -] - -[metadata] -lock-version = "2.0" -python-versions = "^3.9,<3.12" -content-hash = "2716d2a16b00d9d809aeb2c60b080c75cd8b652a853860e7cabffd9de85ba3ac" diff --git a/airbyte-integrations/connectors/source-salesloft/pyproject.toml b/airbyte-integrations/connectors/source-salesloft/pyproject.toml deleted file mode 100644 index 34ea141a90fa..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/pyproject.toml +++ /dev/null @@ -1,29 +0,0 @@ -[build-system] -requires = [ "poetry-core>=1.0.0",] -build-backend = "poetry.core.masonry.api" - -[tool.poetry] -version = "1.2.24" -name = "source-salesloft" -description = "Source implementation for Salesloft." -authors = [ "Airbyte ",] -license = "MIT" -readme = "README.md" -documentation = "https://docs.airbyte.com/integrations/sources/salesloft" -homepage = "https://airbyte.com" -repository = "https://github.com/airbytehq/airbyte" -[[tool.poetry.packages]] -include = "source_salesloft" - -[tool.poetry.dependencies] -python = "^3.9,<3.12" -pendulum = "==2.1.2" -airbyte-cdk = "0.83.0" - -[tool.poetry.scripts] -source-salesloft = "source_salesloft.run:run" - -[tool.poetry.group.dev.dependencies] -requests-mock = "^1.12.1" -pytest-mock = "^3.6.1" -pytest = "^6.1" diff --git a/airbyte-integrations/connectors/source-salesloft/source_salesloft/__init__.py b/airbyte-integrations/connectors/source-salesloft/source_salesloft/__init__.py deleted file mode 100644 index aea360546b43..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/source_salesloft/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# -# Copyright (c) 2024 Airbyte, Inc., all rights reserved. -# - - -from .source import SourceSalesloft - -__all__ = ["SourceSalesloft", "custom_authenticators"] diff --git a/airbyte-integrations/connectors/source-salesloft/source_salesloft/manifest.yaml b/airbyte-integrations/connectors/source-salesloft/source_salesloft/manifest.yaml deleted file mode 100644 index a98faca2decd..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/source_salesloft/manifest.yaml +++ /dev/null @@ -1,4476 +0,0 @@ -version: 0.78.1 - -type: DeclarativeSource - -check: - type: CheckStream - stream_names: - - users - -definitions: - custom_oauth_authenticator: - type: CustomAuthenticator - class_name: source_salesloft.custom_authenticators.SingleUseOauth2Authenticator - client_id: "{{ config['credentials']['client_id'] }}" - client_secret: "{{ config['credentials']['client_secret'] }}" - refresh_token: "{{ config['credentials']['refresh_token'] }}" - refresh_request_body: {} - token_refresh_endpoint: "https://accounts.salesloft.com/oauth/token" - grant_type: refresh_token - - bearer_authenticator: - type: BearerAuthenticator - api_token: "{{ config['credentials']['api_key'] }}" - - selective_authenticator: - type: SelectiveAuthenticator - authenticator_selection_path: ["credentials", "auth_type"] - authenticators: - oauth2.0: "#/definitions/custom_oauth_authenticator" - api_key: "#/definitions/bearer_authenticator" - - streams: - users: - type: DeclarativeStream - name: users - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /users - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/users" - account_tiers: - type: DeclarativeStream - name: account_tiers - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /account_tiers - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/account_tiers" - import: - type: DeclarativeStream - name: import - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /imports - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/import" - person_stages: - type: DeclarativeStream - name: person_stages - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /person_stages - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/person_stages" - phone_number_assignments: - type: DeclarativeStream - name: phone_number_assignments - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /phone_number_assignments - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/phone_number_assignments" - steps: - type: DeclarativeStream - name: steps - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /steps - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/steps" - team_template_attachments: - type: DeclarativeStream - name: team_template_attachments - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /team_template_attachments - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/team_template_attachments" - email_template_attachments: - type: DeclarativeStream - name: email_template_attachments - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: email_template_attachments - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/email_template_attachments" - crm_users: - type: DeclarativeStream - name: crm_users - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: crm_users - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/crm_users" - groups: - type: DeclarativeStream - name: groups - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /groups - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/groups" - custom_fields: - type: DeclarativeStream - name: custom_fields - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /custom_fields - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/custom_fields" - call_dispositions: - type: DeclarativeStream - name: call_dispositions - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /call_dispositions - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/call_dispositions" - call_sentiments: - type: DeclarativeStream - name: call_sentiments - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /call_sentiments - http_method: GET - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/call_sentiments" - meetings: - type: DeclarativeStream - name: meetings - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /meetings - http_method: GET - request_parameters: - created_at[gt]: "{{ config['start_date'] }}" - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/meetings" - people: - type: DeclarativeStream - name: people - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /people - http_method: GET - request_parameters: - created_at[gt]: "{{ config['start_date'] }}" - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/people" - cadences: - type: DeclarativeStream - name: cadences - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /cadences - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/cadences" - cadence_memberships: - type: DeclarativeStream - name: cadence_memberships - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /cadence_memberships - http_method: GET - request_parameters: - created_at[gt]: "{{ config['start_date'] }}" - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/cadence_memberships" - emails: - type: DeclarativeStream - name: emails - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /activities/emails - http_method: GET - request_parameters: - sent_at[gt]: "{{ config['start_date'] }}" - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/emails" - calls: - type: DeclarativeStream - name: calls - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /activities/calls - http_method: GET - request_parameters: - created_at[gt]: "{{ config['start_date'] }}" - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/calls" - accounts: - type: DeclarativeStream - name: accounts - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /accounts - http_method: GET - request_parameters: - created_at[gt]: "{{ config['start_date'] }}" - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/accounts" - account_stages: - type: DeclarativeStream - name: account_stages - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /account_stages - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/account_stages" - actions: - type: DeclarativeStream - name: actions - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /actions - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/actions" - email_templates: - type: DeclarativeStream - name: email_templates - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /email_templates - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/email_templates" - notes: - type: DeclarativeStream - name: notes - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /notes - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/notes" - team_templates: - type: DeclarativeStream - name: team_templates - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /team_templates - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/team_templates" - crm_activities: - type: DeclarativeStream - name: crm_activities - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /crm_activities - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/crm_activities" - successes: - type: DeclarativeStream - name: successes - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /successes - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/successes" - call_data_records: - type: DeclarativeStream - name: call_data_records - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /call_data_records - http_method: GET - request_parameters: - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/call_data_records" - searches: - type: DeclarativeStream - name: searches - primary_key: - - id - retriever: - type: SimpleRetriever - requester: - $ref: "#/definitions/base_requester" - path: /meetings/settings/searches - http_method: POST - request_parameters: - created_at[gt]: "{{ config['start_date'] }}" - updated_at[gt]: >- - {{ - format_datetime( - (config['start_date'] if stream_state['updated_at'] is not defined else - (stream_state.updated_at if stream_state.updated_at < now_utc() else now_utc())), - '%Y-%m-%dT%H:%M:%S.%fZ' - ) - }} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - data - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: CursorPagination - page_size: 100 - cursor_value: "{{ response['metadata']['paging']['next_page'] }}" - stop_condition: >- - {{ response['metadata']['paging'] is not defined or not - response['metadata']['paging'] or - response['metadata']['paging']['next_page'] is not defined or not - response['metadata']['paging']['next_page'] }} - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%f%z" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_date'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - schema_loader: - type: InlineSchemaLoader - schema: - $ref: "#/schemas/searches" - base_requester: - type: HttpRequester - url_base: https://api.salesloft.com/v2 - authenticator: - $ref: "#/definitions/selective_authenticator" - -streams: - - $ref: "#/definitions/streams/users" - - $ref: "#/definitions/streams/account_tiers" - - $ref: "#/definitions/streams/import" - - $ref: "#/definitions/streams/person_stages" - - $ref: "#/definitions/streams/phone_number_assignments" - - $ref: "#/definitions/streams/steps" - - $ref: "#/definitions/streams/team_template_attachments" - - $ref: "#/definitions/streams/email_template_attachments" - - $ref: "#/definitions/streams/crm_users" - - $ref: "#/definitions/streams/groups" - - $ref: "#/definitions/streams/custom_fields" - - $ref: "#/definitions/streams/call_dispositions" - - $ref: "#/definitions/streams/call_sentiments" - - $ref: "#/definitions/streams/meetings" - - $ref: "#/definitions/streams/people" - - $ref: "#/definitions/streams/cadences" - - $ref: "#/definitions/streams/cadence_memberships" - - $ref: "#/definitions/streams/emails" - - $ref: "#/definitions/streams/calls" - - $ref: "#/definitions/streams/accounts" - - $ref: "#/definitions/streams/account_stages" - - $ref: "#/definitions/streams/actions" - - $ref: "#/definitions/streams/email_templates" - - $ref: "#/definitions/streams/notes" - - $ref: "#/definitions/streams/team_templates" - - $ref: "#/definitions/streams/crm_activities" - - $ref: "#/definitions/streams/successes" - - $ref: "#/definitions/streams/call_data_records" - - $ref: "#/definitions/streams/searches" - -spec: - type: Spec - connection_specification: - type: object - $schema: http://json-schema.org/draft-07/schema# - required: - - credentials - - start_date - properties: - credentials: - type: object - oneOf: - - type: object - title: Authenticate via OAuth - required: - - client_id - - client_secret - - refresh_token - - access_token - - token_expiry_date - - auth_type - properties: - auth_type: - type: string - const: oauth2.0 - client_id: - type: string - title: Client ID - description: The Client ID of your Salesloft developer application. - access_token: - type: string - description: Access Token for making authenticated requests. - airbyte_secret: true - client_secret: - type: string - title: Client Secret - description: The Client Secret of your Salesloft developer application. - airbyte_secret: true - refresh_token: - type: string - title: Refresh Token - description: The token for obtaining a new access token. - airbyte_secret: true - token_expiry_date: - type: string - format: date-time - description: The date-time when the access token should be refreshed. - - type: object - title: Authenticate via API Key - required: - - api_key - - auth_type - properties: - api_key: - type: string - title: API Key - description: >- - API Key for making authenticated requests. More instruction on - how to find this value in our docs - airbyte_secret: true - auth_type: - type: string - const: api_key - order: 0 - title: Credentials - start_date: - type: string - title: Start Date - format: date-time - pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$ - order: 1 - examples: - - "2020-11-16T00:00:00Z" - description: >- - The date from which you'd like to replicate data for Salesloft API, in - the format YYYY-MM-DDT00:00:00Z. All data generated after this date - will be replicated. - additionalProperties: true - -metadata: - autoImportSchema: - users: false - account_tiers: false - import: false - person_stages: false - phone_number_assignments: false - steps: false - team_template_attachments: false - email_template_attachments: false - crm_users: false - groups: false - custom_fields: false - call_dispositions: false - call_sentiments: false - meetings: false - people: false - cadences: false - cadence_memberships: false - emails: false - calls: false - accounts: false - account_stages: false - actions: false - email_templates: false - notes: false - team_templates: false - crm_activities: false - successes: false - call_data_records: false - searches: false - -schemas: - users: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - guid: - type: - - "null" - - string - created_at: - type: string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - name: - type: - - "null" - - string - first_name: - type: - - "null" - - string - last_name: - type: - - "null" - - string - job_role: - type: - - "null" - - string - active: - type: - - "null" - - boolean - time_zone: - type: - - "null" - - string - slack_username: - type: - - "null" - - string - twitter_handle: - type: - - "null" - - string - email: - type: - - "null" - - string - email_client_email_address: - type: - - "null" - - string - sending_email_address: - type: - - "null" - - string - from_address: - type: - - "null" - - string - full_email_address: - type: - - "null" - - string - bcc_email_address: - type: - - "null" - - string - email_signature: - type: - - "null" - - string - email_signature_type: - type: - - "null" - - string - email_signature_click_tracking_disabled: - type: - - "null" - - boolean - team_admin: - type: - - "null" - - boolean - local_dial_enabled: - type: - - "null" - - boolean - click_to_call_enabled: - type: - - "null" - - boolean - email_client_configured: - type: - - "null" - - boolean - crm_connected: - type: - - "null" - - boolean - external_feature_flags: - type: - - "null" - - object - additionalProperties: true - properties: {} - phone_client: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - phone_number_assignment: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - group: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - team: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - role: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - - string - account_tiers: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - name: - type: - - "null" - - string - order: - type: - - "null" - - integer - created_at: - type: string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - import: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - created_at: - type: string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - name: - type: - - "null" - - string - current_people_count: - type: - - "null" - - integer - imported_people_count: - type: - - "null" - - integer - person_stages: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - name: - type: - - "null" - - string - created_at: - type: string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - order: - type: - - "null" - - integer - phone_number_assignments: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - number: - type: - - "null" - - string - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - steps: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - disabled: - type: - - "null" - - boolean - type: - type: - - "null" - - string - name: - type: - - "null" - - string - display_name: - type: - - "null" - - string - day: - type: - - "null" - - integer - step_number: - type: - - "null" - - integer - details: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - cadence: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - team_template_attachments: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - attachment_id: - type: - - "null" - - integer - team_template: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - string - _href: - type: - - "null" - - string - name: - type: - - "null" - - string - download_url: - type: - - "null" - - string - attachment_file_size: - type: - - "null" - - integer - email_template_attachments: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - attachment_id: - type: - - "null" - - integer - team_template: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - name: - type: - - "null" - - string - download_url: - type: - - "null" - - string - attachment_file_size: - type: - - "null" - - integer - crm_users: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - crm_id: - type: - - "null" - - string - created_at: - type: string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - groups: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - name: - type: - - "null" - - string - parent_id: - type: - - "null" - - integer - custom_fields: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - name: - type: - - "null" - - string - field_type: - type: - - "null" - - string - value_type: - type: - - "null" - - string - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - call_dispositions: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - name: - type: - - "null" - - string - call_sentiments: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - name: - type: - - "null" - - string - meetings: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - title: - type: - - "null" - - string - start_time: - type: - - "null" - - string - format: date-time - end_time: - type: - - "null" - - string - format: date-time - calendar_id: - type: - - "null" - - string - calendar_type: - type: - - "null" - - string - meeting_type: - type: - - "null" - - string - recipient_name: - type: - - "null" - - string - recipient_email: - type: - - "null" - - string - location: - type: - - "null" - - string - description: - type: - - "null" - - string - event_id: - type: - - "null" - - string - account_id: - type: - - "null" - - string - task_id: - type: - - "null" - - integer - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - guests: - type: - - "null" - - array - items: - type: - - "null" - - string - attendees: - type: - - "null" - - array - items: - type: - - "null" - - object - additionalProperties: true - properties: - email: - type: - - "null" - - string - name: - type: - - "null" - - string - organizer: - type: - - "null" - - boolean - status: - type: - - "null" - - string - status_changed: - type: - - "null" - - boolean - deleted_at: - type: - - "null" - - string - format: date-time - person: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - cadence: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - step: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - booked_by_user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - string - _href: - type: - - "null" - - string - crm_references: - type: - - "null" - - object - additionalProperties: true - event_source: - type: - - "null" - - string - canceled_at: - type: - - "null" - - string - format: date-time - all_day: - type: - - "null" - - boolean - no_show: - type: - - "null" - - boolean - crm_custom_fields: - type: - - "null" - - object - additionalProperties: true - strict_attribution: - type: - - "null" - - boolean - i_cal_uid: - type: - - "null" - - string - status: - type: - - "null" - - string - reschedule_status: - type: - - "null" - - string - owned_by_meetings_settings: - type: - - "null" - - object - additionalProperties: true - properties: - id: - email_address: - - "null" - - string - booked_by_meetings_settings: - type: - - "null" - - object - additionalProperties: true - properties: - id: - email_address: - - "null" - - string - people: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - last_contacted_at: - type: - - "null" - - string - format: date-time - last_replied_at: - type: - - "null" - - string - format: date-time - first_name: - type: - - "null" - - string - last_name: - type: - - "null" - - string - display_name: - type: - - "null" - - string - email_address: - type: - - "null" - - string - full_email_address: - type: - - "null" - - string - secondary_email_address: - type: - - "null" - - string - personal_email_address: - type: - - "null" - - string - phone: - type: - - "null" - - string - phone_extension: - type: - - "null" - - string - home_phone: - type: - - "null" - - string - mobile_phone: - type: - - "null" - - string - linkedin_url: - type: - - "null" - - string - title: - type: - - "null" - - string - city: - type: - - "null" - - string - state: - type: - - "null" - - string - country: - type: - - "null" - - string - work_city: - type: - - "null" - - string - work_state: - type: - - "null" - - string - work_country: - type: - - "null" - - string - crm_url: - type: - - "null" - - string - crm_id: - type: - - "null" - - string - crm_object_type: - type: - - "null" - - string - owner_crm_id: - type: - - "null" - - string - person_company_name: - type: - - "null" - - string - person_company_website: - type: - - "null" - - string - person_company_industry: - type: - - "null" - - string - do_not_contact: - type: - - "null" - - boolean - bouncing: - type: - - "null" - - boolean - locale: - type: - - "null" - - string - personal_website: - type: - - "null" - - string - twitter_handle: - type: - - "null" - - string - last_contacted_type: - type: - - "null" - - string - job_seniority: - type: - - "null" - - string - custom_fields: - type: - - "null" - - object - additionalProperties: true - properties: {} - tags: - type: - - "null" - - array - items: - type: - - "null" - - string - contact_restrictions: - type: - - "null" - - array - items: - type: - - "null" - - string - counts: - type: - - "null" - - object - additionalProperties: true - properties: - emails_sent: - type: - - "null" - - integer - emails_viewed: - type: - - "null" - - integer - emails_clicked: - type: - - "null" - - integer - emails_replied_to: - type: - - "null" - - integer - emails_bounced: - type: - - "null" - - integer - calls: - type: - - "null" - - integer - account: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - owner: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - last_contacted_by: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - import: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - person_stage: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - most_recent_cadence: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - last_completed_step_cadence: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - last_completed_step: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - cadences: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - archived_at: - type: - - "null" - - string - format: date-time - team_cadence: - type: - - "null" - - boolean - shared: - type: - - "null" - - boolean - remove_bounces_enabled: - type: - - "null" - - boolean - remove_replies_enabled: - type: - - "null" - - boolean - opt_out_link_included: - type: - - "null" - - boolean - name: - type: - - "null" - - string - tags: - type: - - "null" - - array - items: - type: - - "null" - - string - creator: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - owner: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - bounced_stage: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - replied_stage: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - added_stage: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - finished_stage: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - counts: - type: - - "null" - - object - additionalProperties: true - properties: - cadence_people: - type: - - "null" - - integer - target_daily_people: - type: - - "null" - - integer - latest_active_date: - type: - - "null" - - string - format: date - cadence_memberships: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - added_at: - type: - - "null" - - string - format: date-time - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - person_deleted: - type: - - "null" - - boolean - currently_on_cadence: - type: - - "null" - - boolean - current_state: - type: - - "null" - - string - cadence: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - person: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - user: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - latest_action: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - counts: - type: - - "null" - - object - additionalProperties: true - properties: - views: - type: - - "null" - - integer - clicks: - type: - - "null" - - integer - replies: - type: - - "null" - - integer - calls: - type: - - "null" - - integer - sent_emails: - type: - - "null" - - integer - bounces: - type: - - "null" - - integer - emails: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - recipient_email_address: - type: - - "null" - - string - status: - type: - - "null" - - string - bounced: - type: - - "null" - - boolean - send_after: - type: - - "null" - - string - format: date-time - sent_at: - type: - - "null" - - string - format: date-time - view_tracking: - type: - - "null" - - boolean - click_tracking: - type: - - "null" - - boolean - personalization: - type: - - "null" - - string - counts: - type: - - "null" - - object - additionalProperties: true - properties: - clicks: - type: - - "null" - - integer - views: - type: - - "null" - - integer - replies: - type: - - "null" - - integer - unique_devices: - type: - - "null" - - integer - unique_locations: - type: - - "null" - - integer - attachments: - type: - - "null" - - integer - headers: - type: - - "null" - - object - additionalProperties: true - properties: - In-Reply-To: - type: - - "null" - - string - References: - type: - - "null" - - string - to: - type: - - "null" - - string - cc: - type: - - "null" - - string - in_reply_to: - type: - - "null" - - string - bcc: - type: - - "null" - - string - user: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - recipient: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - mailing: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - action: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - crm_activity: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - cadence: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - step: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - email_template: - type: - - "null" - - object - additionalProperties: true - properties: - _href: - type: - - "null" - - string - id: - type: - - "null" - - integer - calls: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - to: - type: - - "null" - - string - duration: - type: - - "null" - - integer - sentiment: - type: - - "null" - - string - disposition: - type: - - "null" - - string - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - action: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - called_person: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - crm_activity: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - note: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - cadence: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - step: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - accounts: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - archived_at: - type: - - "null" - - string - format: date-time - name: - type: - - "null" - - string - domain: - type: - - "null" - - string - conversational_name: - type: - - "null" - - string - description: - type: - - "null" - - string - phone: - type: - - "null" - - string - website: - type: - - "null" - - string - linkedin_url: - type: - - "null" - - string - twitter_handle: - type: - - "null" - - string - street: - type: - - "null" - - string - city: - type: - - "null" - - string - state: - type: - - "null" - - string - postal_code: - type: - - "null" - - string - country: - type: - - "null" - - string - locale: - type: - - "null" - - string - industry: - type: - - "null" - - string - company_type: - type: - - "null" - - string - founded: - type: - - "null" - - string - revenue_range: - type: - - "null" - - string - size: - type: - - "null" - - string - crm_id: - type: - - "null" - - string - crm_url: - type: - - "null" - - string - crm_object_type: - type: - - "null" - - string - owner_crm_id: - type: - - "null" - - string - last_contacted_at: - type: - - "null" - - string - format: date-time - last_contacted_type: - type: - - "null" - - string - do_not_contact: - type: - - "null" - - boolean - counts: - type: - - "null" - - object - additionalProperties: true - properties: - people: - type: - - "null" - - integer - owner: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - creator: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - last_contacted_by: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - last_contacted_person: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - company_stage: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - account_tier: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - tags: - type: - - "null" - - array - items: - type: - - "null" - - string - account_stages: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - name: - type: - - "null" - - string - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - order: - type: - - "null" - - integer - actions: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - due: - type: - - "null" - - boolean - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - type: - type: - - "null" - - string - status: - type: - - "null" - - string - due_on: - type: - - "null" - - string - format: date-time - multitouch_group_id: - type: - - "null" - - integer - action_details: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - person: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - cadence: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - step: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - email_templates: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - title: - type: - - "null" - - string - subject: - type: - - "null" - - string - body: - type: - - "null" - - string - body_preview: - type: - - "null" - - string - created_at: - type: string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - last_used_at: - type: - - "null" - - string - format: date-time - archived_at: - type: - - "null" - - string - format: date-time - shared: - type: - - "null" - - boolean - open_tracking_enabled: - type: - - "null" - - boolean - click_tracking_enabled: - type: - - "null" - - boolean - cadence_template: - type: - - "null" - - boolean - counts: - type: - - "null" - - object - additionalProperties: true - properties: - sent_emails: - type: - - "null" - - integer - views: - type: - - "null" - - integer - clicks: - type: - - "null" - - integer - replies: - type: - - "null" - - integer - bounces: - type: - - "null" - - integer - template_owner: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - team_template: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - string - _href: - type: - - "null" - - string - _links: - type: - - "null" - - object - additionalProperties: true - properties: - attachments: - type: - - "null" - - string - groups: - type: - - "null" - - array - items: - type: object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - tags: - type: - - "null" - - array - items: - type: - - "null" - - string - notes: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - content: - type: - - "null" - - string - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - associated_with: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - call: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - team_templates: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: string - title: - type: - - "null" - - string - subject: - type: - - "null" - - string - body: - type: - - "null" - - string - body_preview: - type: - - "null" - - string - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - last_used_at: - type: - - "null" - - string - format: date-time - archived_at: - type: - - "null" - - string - format: date-time - last_modified_at: - type: - - "null" - - string - format: date-time - open_tracking_enabled: - type: - - "null" - - boolean - click_tracking_enabled: - type: - - "null" - - boolean - counts: - type: - - "null" - - object - additionalProperties: true - properties: - sent_emails: - type: - - "null" - - integer - views: - type: - - "null" - - integer - clicks: - type: - - "null" - - integer - replies: - type: - - "null" - - integer - bounces: - type: - - "null" - - integer - last_modified_user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - _links: - type: - - "null" - - object - additionalProperties: true - properties: - attachments: - type: - - "null" - - string - tags: - type: - - "null" - - array - items: - type: - - "null" - - string - crm_activities: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - subject: - type: - - "null" - - string - description: - type: - - "null" - - string - crm_id: - type: - - "null" - - string - activity_type: - type: - - "null" - - string - error: - type: - - "null" - - string - custom_crm_fields: - type: - - "null" - - object - person: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - successes: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: integer - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - succeeded_at: - type: - - "null" - - string - format: date-time - success_window_started_at: - type: - - "null" - - string - format: date-time - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - person: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - latest_email: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - latest_call: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - latest_action: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - latest_cadence: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - latest_step: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - counts: - type: - - "null" - - object - additionalProperties: true - properties: - total_emails: - type: - - "null" - - integer - total_calls: - type: - - "null" - - integer - total_other_touches: - type: - - "null" - - integer - call_data_records: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - to: - type: - - "null" - - string - from: - type: - - "null" - - string - duration: - type: - - "null" - - integer - direction: - type: - - "null" - - string - status: - type: - - "null" - - string - call_type: - type: - - "null" - - string - call_uuid: - type: - - "null" - - string - recording: - type: - - "null" - - object - additionalProperties: true - properties: - url: - type: - - "null" - - string - status: - type: - - "null" - - string - recording_status: - type: - - "null" - - string - call: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - called_person: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - _href: - type: - - "null" - - string - searches: - "$schema": http://json-schema.org/draft-07/schema# - type: object - additionalProperties: true - properties: - id: - type: - - "null" - - integer - user: - type: - - "null" - - object - additionalProperties: true - properties: - id: - type: - - "null" - - string - _href: - type: - - "null" - - string - user_slug: - type: - - "null" - - string - primary_calendar_id: - type: - - "null" - - string - primary_calendar_name: - type: - - "null" - - string - email_address: - type: - - "null" - - string - user_details: - type: - - "null" - - object - additionalProperties: true - calendar_type: - type: - - "null" - - string - title: - type: - - "null" - - string - description: - type: - - "null" - - string - location: - type: - - "null" - - string - default_meeting_length: - type: - - "null" - - integer - availability_limit_enabled: - type: - - "null" - - boolean - availability_limit: - type: - - "null" - - integer - schedule_delay: - type: - - "null" - - integer - buffer_time_duration: - type: - - "null" - - integer - schedule_buffer_enabled: - type: - - "null" - - boolean - times_available: - type: - - "null" - - object - additionalProperties: true - allow_booking_on_behalf: - type: - - "null" - - boolean - allow_booking_overtime: - type: - - "null" - - boolean - allow_event_overlap: - type: - - "null" - - boolean - allow_event_detail: - type: - - "null" - - boolean - enable_dynamic_location: - type: - - "null" - - boolean - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time - time_zone: - type: - - "null" - - string - primary_calendar_connection_failed: - type: - - "null" - - boolean - enable_calendar_sync: - type: - - "null" - - boolean - reschedule_meetings_enabled: - type: - - "null" - - boolean - active_meeting_url: - type: - - "null" - - object - additionalProperties: true - properties: - url: - type: - - "null" - - string - created_at: - type: - - "null" - - string - format: date-time - updated_at: - type: - - "null" - - string - format: date-time diff --git a/airbyte-integrations/connectors/source-salesloft/source_salesloft/run.py b/airbyte-integrations/connectors/source-salesloft/source_salesloft/run.py deleted file mode 100644 index aa9f841fa8df..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/source_salesloft/run.py +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (c) 2024 Airbyte, Inc., all rights reserved. -# - - -import sys - -from airbyte_cdk.entrypoint import launch - -from .source import SourceSalesloft - - -def run(): - source = SourceSalesloft() - launch(source, sys.argv[1:]) diff --git a/airbyte-integrations/connectors/source-salesloft/source_salesloft/source.py b/airbyte-integrations/connectors/source-salesloft/source_salesloft/source.py deleted file mode 100644 index ed97803a6c6c..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/source_salesloft/source.py +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (c) 2024 Airbyte, Inc., all rights reserved. -# - -from airbyte_cdk.sources.declarative.yaml_declarative_source import YamlDeclarativeSource - -""" -This file provides the necessary constructs to interpret a provided declarative YAML configuration file into -source connector. - -WARNING: Do not modify this file. -""" - - -# Declarative Source -class SourceSalesloft(YamlDeclarativeSource): - def __init__(self): - super().__init__(**{"path_to_yaml": "manifest.yaml"}) diff --git a/airbyte-integrations/connectors/source-salesloft/unit_tests/conftest.py b/airbyte-integrations/connectors/source-salesloft/unit_tests/conftest.py deleted file mode 100644 index 5f7390d53f95..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/unit_tests/conftest.py +++ /dev/null @@ -1,20 +0,0 @@ -# -# Copyright (c) 2024 Airbyte, Inc., all rights reserved. -# - -from pytest import fixture - - -@fixture -def config(): - return { - "credentials": { - "auth_type": "oauth2.0", - "client_id": "client_id", - "client_secret": "client_secret", - "refresh_token": "refresh_token", - "access_token": "access_token", - "token_expiry_date": "2222-02-02T00:00:00Z", - }, - "start_date": "2020-01-01T00:00:00.000Z", - } diff --git a/airbyte-integrations/connectors/source-salesloft/unit_tests/test_source.py b/airbyte-integrations/connectors/source-salesloft/unit_tests/test_source.py deleted file mode 100644 index 1f5966263483..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/unit_tests/test_source.py +++ /dev/null @@ -1,29 +0,0 @@ -# -# Copyright (c) 2024 Airbyte, Inc., all rights reserved. -# - -import logging - -import pytest -from source_salesloft.source import SourceSalesloft - - -def mock_response(): - return {"data": [{"id": "mock1"}, {"id": "mock2"}]} - - -def test_streams(config): - source = SourceSalesloft() - streams = source.streams(config) - expected_streams_number = 29 - assert len(streams) == expected_streams_number - - -@pytest.mark.parametrize("status_code, check_successful", ((403, False), (200, True))) -def test_check_connection(requests_mock, config, status_code, check_successful): - requests_mock.post("https://accounts.salesloft.com/oauth/token", json={"access_token": "token", "expires_in": 7200}) - requests_mock.get("https://api.salesloft.com/v2/users", status_code=status_code, json=mock_response()) - source = SourceSalesloft() - ok, error = source.check_connection(logging.getLogger(), config) - assert ok is check_successful - assert bool(error) is not check_successful diff --git a/airbyte-integrations/connectors/source-salesloft/unit_tests/test_streams.py b/airbyte-integrations/connectors/source-salesloft/unit_tests/test_streams.py deleted file mode 100644 index 29effbdbc95d..000000000000 --- a/airbyte-integrations/connectors/source-salesloft/unit_tests/test_streams.py +++ /dev/null @@ -1,88 +0,0 @@ -# -# Copyright (c) 2024 Airbyte, Inc., all rights reserved. -# - -from typing import Any, Mapping - -import pytest -from airbyte_cdk.sources.streams import Stream -from airbyte_protocol.models import SyncMode -from jsonref import requests -from source_salesloft.source import SourceSalesloft - - -def mock_response(): - return {"data": [{"id": "mock1"}, {"id": "mock2"}]} - - -def get_stream_by_name(stream_name: str, config: Mapping[str, Any]) -> Stream: - source = SourceSalesloft() - matches_by_name = [stream_config for stream_config in source.streams(config) if stream_config.name == stream_name] - if not matches_by_name: - raise ValueError("Please provide a valid stream name.") - return matches_by_name[0] - - -def test_request_params(config): - stream = get_stream_by_name("users", config) - inputs = {"stream_slice": None, "stream_state": None, "next_page_token": None} - expected_params = {} - assert stream.retriever.requester.get_request_params(**inputs) == expected_params - - -def test_incremental_request_params(config): - stream = get_stream_by_name("accounts", config) - inputs = {"stream_slice": None, "stream_state": None, "next_page_token": None} - expected_params = { - "created_at[gt]": "2020-01-01T00:00:00.000Z", - "updated_at[gt]": "2020-01-01T00:00:00.000000Z", - } - assert stream.retriever.requester.get_request_params(**inputs) == expected_params - - -def test_next_page_token(requests_mock, config): - stream = get_stream_by_name("users", config) - response = {"metadata": {"paging": {"next_page": 2}}} - requests_mock.post("https://accounts.salesloft.com/oauth/token", json={"access_token": "token", "expires_in": 7200}) - requests_mock.get("https://api.salesloft.com/v2/users", status_code=200, json=response) - inputs = {"response": requests.get("https://api.salesloft.com/v2/users")} - expected_token = {"next_page_token": 2} - assert stream.retriever._next_page_token(**inputs) == expected_token - - -def test_next_page_token_invalid(requests_mock, config): - stream = get_stream_by_name("users", config) - response = {"metadata": {"paginfffg": {"next_pagaae": 2}}} - requests_mock.post("https://accounts.salesloft.com/oauth/token", json={"access_token": "token", "expires_in": 7200}) - requests_mock.get("https://api.salesloft.com/v2/users", status_code=200, json=response) - inputs = {"response": requests.get("https://api.salesloft.com/v2/users")} - with pytest.raises(AttributeError) as ex: - stream.retriever._next_page_token(**inputs).get("next_page_token") - assert isinstance(ex.value, AttributeError) - - -def test_get_updated_state(config): - stream = get_stream_by_name("accounts", config) - inputs = {"current_stream_state": {}, "latest_record": {}} - expected_state = {} - assert stream.get_updated_state(**inputs) == expected_state - - -@pytest.mark.parametrize( - "return_value, expected_records", (({"metadata": {}}, []), ({"data": [{"id": 1}, {"id": 2}], "metadata": {}}, [{"id": 1}, {"id": 2}])) -) -def test_parse_response(requests_mock, config, return_value, expected_records): - stream = get_stream_by_name("users", config) - requests_mock.post("https://accounts.salesloft.com/oauth/token", json={"access_token": "token", "expires_in": 7200}) - requests_mock.get("https://api.salesloft.com/v2/users", status_code=200, json=return_value) - records = [] - for stream_slice in stream.stream_slices(sync_mode=SyncMode.full_refresh): - records.extend(list(stream.read_records(sync_mode=SyncMode.full_refresh, stream_slice=stream_slice))) - assert len(records) == len(expected_records) - for i in range(len(records)): - assert records[i].keys() == expected_records[i].keys() - - -def test_stream_has_path(config): - for stream in SourceSalesloft().streams(config): - assert stream.retriever.requester.path diff --git a/docs/integrations/sources/salesloft.md b/docs/integrations/sources/salesloft.md index dbecf965ffde..dc271154a287 100644 --- a/docs/integrations/sources/salesloft.md +++ b/docs/integrations/sources/salesloft.md @@ -105,6 +105,7 @@ Salesloft has the [rate limits](hhttps://developers.salesloft.com/api.html#!/Top | Version | Date | Pull Request | Subject | | :------ | :--------- | :------------------------------------------------------- | :---------------------------------------------------------------- | +| 1.3.0 | 2024-11-04 | [47298](https://github.com/airbytehq/airbyte/pull/47298) | Migrate to manifest only format | | 1.2.24 | 2024-10-29 | [47048](https://github.com/airbytehq/airbyte/pull/47048) | Update dependencies | | 1.2.23 | 2024-10-12 | [46833](https://github.com/airbytehq/airbyte/pull/46833) | Update dependencies | | 1.2.22 | 2024-10-05 | [46491](https://github.com/airbytehq/airbyte/pull/46491) | Update dependencies |