1
0
mirror of synced 2025-12-22 03:21:25 -05:00
Files
airbyte/airbyte-integrations/connectors/source-zoho-analytics-metadata-api/manifest.yaml

655 lines
15 KiB
YAML

version: 6.1.0
type: DeclarativeSource
description: >-
Zoho Analytics Metadata api connector enables seamless data syncing from Zoho
Analytics metadata into data warehouses or BI tools. This connector automates
OAuth authentication and ensures reliable data transfer, empowering businesses
to streamline analytics workflows and gain deeper insights efficiently.
check:
type: CheckStream
stream_names:
- users
definitions:
streams:
users:
type: DeclarativeStream
name: users
primary_key:
- emailId
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /restapi/v2/users
http_method: GET
request_headers:
ZANALYTICS-ORGID: "{{ config['org_id'] }}"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- users
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/users"
workspaces:
type: DeclarativeStream
name: workspaces
primary_key:
- workspaceId
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /restapi/v2/workspaces
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- ownedWorkspaces
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/workspaces"
organizations:
type: DeclarativeStream
name: organizations
primary_key:
- orgId
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /restapi/v2/orgs
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- orgs
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/organizations"
views:
type: DeclarativeStream
name: views
primary_key:
- viewId
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /restapi/v2/workspaces/{{ stream_partition.workspace }}/views
http_method: GET
request_headers:
ZANALYTICS-ORGID: "{{ config[\"org_id\"] }}"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- views
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: workspaceId
partition_field: workspace
stream:
$ref: "#/definitions/streams/workspaces"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/views"
dashboards:
type: DeclarativeStream
name: dashboards
primary_key:
- viewId
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /restapi/v2/dashboards
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- ownedViews
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/dashboards"
trash:
type: DeclarativeStream
name: trash
primary_key:
- viewId
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /restapi/v2/workspaces/{{ stream_partition.workspace }}/trash
http_method: GET
request_headers:
ZANALYTICS-ORGID: "{{ config[\"org_id\"] }}"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- views
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: workspaceId
partition_field: workspace
stream:
$ref: "#/definitions/streams/workspaces"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/trash"
workspace_users:
type: DeclarativeStream
name: workspace_users
primary_key:
- emailId
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /restapi/v2/workspaces/{{ stream_partition.workspace }}/users
http_method: GET
request_headers:
ZANALYTICS-ORGID: "{{ config[\"org_id\"] }}"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- users
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: workspaceId
partition_field: workspace
stream:
$ref: "#/definitions/streams/workspaces"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/workspace_users"
folders:
type: DeclarativeStream
name: folders
primary_key:
- folderId
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /restapi/v2/workspaces/{{ stream_partition.workspace }}/folders
http_method: GET
request_headers:
ZANALYTICS-ORGID: "{{ config[\"org_id\"] }}"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- folders
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: workspaceId
partition_field: workspace
stream:
$ref: "#/definitions/streams/workspaces"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/folders"
base_requester:
type: HttpRequester
url_base: https://analyticsapi.zoho.{{ config["data_center"] }}
authenticator:
type: OAuthAuthenticator
client_id: "{{ config[\"client_id\"] }}"
grant_type: refresh_token
client_secret: "{{ config[\"client_secret\"] }}"
refresh_token: "{{ config[\"refresh_token\"] }}"
expires_in_name: expires_in
access_token_name: access_token
refresh_request_body: {}
token_refresh_endpoint: https://accounts.zoho.{{ config["data_center"] }}/oauth/v2/token
streams:
- $ref: "#/definitions/streams/users"
- $ref: "#/definitions/streams/workspaces"
- $ref: "#/definitions/streams/organizations"
- $ref: "#/definitions/streams/views"
- $ref: "#/definitions/streams/dashboards"
- $ref: "#/definitions/streams/trash"
- $ref: "#/definitions/streams/workspace_users"
- $ref: "#/definitions/streams/folders"
spec:
type: Spec
connection_specification:
type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- client_id
- client_secret
- refresh_token
- data_center
- org_id
properties:
client_id:
type: string
name: client_id
order: 0
title: OAuth Client ID
airbyte_secret: true
client_secret:
type: string
name: client_secret
order: 1
title: OAuth Client Secret
airbyte_secret: true
refresh_token:
type: string
name: refresh_token
order: 2
title: OAuth Refresh Token
airbyte_secret: true
data_center:
type: string
enum:
- com
- eu
- in
- com.au
- com.cn
- jp
order: 3
title: Data Center
default: com
org_id:
type: number
order: 4
title: Org Id
additionalProperties: true
metadata:
autoImportSchema:
users: true
workspaces: true
organizations: true
views: true
dashboards: true
trash: true
workspace_users: true
folders: true
testedStreams:
users:
hasRecords: true
streamHash: 30b9674113495c708b88b03206126e121d54637b
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
workspaces:
hasRecords: true
streamHash: 412f2d3ff4d56ea7401a905def908c42a0ee450a
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
organizations:
hasRecords: true
streamHash: fe29c6780e8b266bbe44d9feb13a6f0d486b425c
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
views:
hasRecords: true
streamHash: 32af56a385b314e6e5c9238a605b9d0c2ad7f8b0
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
dashboards:
hasRecords: true
streamHash: e13cb711a5f8a91eb42ac3f163d5a9c39f164346
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
trash:
hasRecords: true
streamHash: 0d8d1ecf9c0edad58d67d0a255234ee38278eb6c
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
workspace_users:
hasRecords: true
streamHash: dc51d9f2fc5b699cf7dad3a46a5396d85cca9d5c
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
folders:
hasRecords: true
streamHash: 2c74239bed086e4cd23916c4f5f450df3215db18
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
assist:
docsUrl: https://www.zoho.com/analytics/api/v2/introduction.html
schemas:
users:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
emailId:
type: string
role:
type:
- string
- "null"
status:
type:
- boolean
- "null"
required:
- emailId
workspaces:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
createdBy:
type:
- string
- "null"
createdTime:
type:
- string
- "null"
isDefault:
type:
- boolean
- "null"
orgId:
type:
- string
- "null"
workspaceDesc:
type:
- string
- "null"
workspaceId:
type: string
workspaceName:
type:
- string
- "null"
required:
- workspaceId
organizations:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
createdBy:
type:
- string
- "null"
createdByZuId:
type:
- string
- "null"
isDefault:
type:
- boolean
- "null"
numberOfWorkspaces:
type:
- number
- "null"
orgDesc:
type:
- string
- "null"
orgId:
type: string
orgName:
type:
- string
- "null"
planName:
type:
- string
- "null"
role:
type:
- string
- "null"
required:
- orgId
views:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
createdBy:
type:
- string
- "null"
createdTime:
type:
- string
- "null"
folderId:
type:
- string
- "null"
isFavorite:
type:
- boolean
- "null"
lastModifiedBy:
type:
- string
- "null"
lastModifiedTime:
type:
- string
- "null"
parentViewId:
type:
- string
- "null"
sharedBy:
type:
- string
- "null"
viewDesc:
type:
- string
- "null"
viewId:
type: string
viewName:
type:
- string
- "null"
viewType:
type:
- string
- "null"
required:
- viewId
dashboards:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
createdBy:
type:
- string
- "null"
createdTime:
type:
- string
- "null"
folderId:
type:
- string
- "null"
isFavorite:
type:
- boolean
- "null"
lastModifiedBy:
type:
- string
- "null"
lastModifiedTime:
type:
- string
- "null"
orgId:
type:
- string
- "null"
parentViewId:
type:
- string
- "null"
sharedBy:
type:
- string
- "null"
viewDesc:
type:
- string
- "null"
viewId:
type: string
viewName:
type:
- string
- "null"
viewType:
type:
- string
- "null"
workspaceId:
type:
- string
- "null"
required:
- viewId
trash:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
deletedBy:
type:
- string
- "null"
deletedTime:
type:
- string
- "null"
viewId:
type: string
viewName:
type:
- string
- "null"
viewType:
type:
- string
- "null"
required:
- viewId
workspace_users:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
emailId:
type: string
role:
type:
- string
- "null"
status:
type:
- boolean
- "null"
required:
- emailId
folders:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
folderDesc:
type:
- string
- "null"
folderId:
type: string
folderIndex:
type:
- number
- "null"
folderName:
type:
- string
- "null"
isDefault:
type:
- boolean
- "null"
parentFolderId:
type:
- string
- "null"
required:
- folderId