1
0
mirror of synced 2025-12-22 19:38:29 -05:00
Files
airbyte/airbyte-integrations/connectors/source-microsoft-lists/manifest.yaml

1046 lines
24 KiB
YAML

version: 5.12.0
type: DeclarativeSource
description: >-
Microsoft Lists connector enables seamless data integration and
synchronization between Microsoft Lists and other destination. The connector
leverages Microsoft Graph API to retrieve list items efficiently, ensuring
smooth workflows and real-time data accessibility
check:
type: CheckStream
stream_names:
- lists
definitions:
streams:
lists:
type: DeclarativeStream
name: lists
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /sites/{{ config['site_id'] }}/lists
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- value
paginator:
type: DefaultPaginator
page_token_option:
type: RequestPath
pagination_strategy:
type: CursorPagination
cursor_value: "{{ response.get('@odata.nextLink') }}"
stop_condition: "{{ response.get('@odata.nextLink') is not defined }}"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/lists"
listcontenttypes:
type: DeclarativeStream
name: listcontenttypes
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: >-
/sites/{{ config['site_id'] }}/lists/{{ stream_partition.list
}}/contentTypes
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- value
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: $skiptoken
pagination_strategy:
type: CursorPagination
cursor_value: >-
{{ response.get("@odata.nextLink") |
regex_search('\$skiptoken=([^&]+)') }}
stop_condition: "{{ response.get(\"@odata.nextLink\") is none }}"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: id
partition_field: list
stream:
$ref: "#/definitions/streams/lists"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/listcontenttypes"
listitems:
type: DeclarativeStream
name: listitems
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: >-
/sites/{{ config['site_id'] }}/lists/{{
stream_partition.item_info.list_id }}/items/{{
stream_partition.item_info.item_id }}
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: $skiptoken
pagination_strategy:
type: CursorPagination
cursor_value: >-
{{ response.get("@odata.nextLink") |
regex_search('\$skiptoken=([^&]+)') }}
stop_condition: "{{ response.get(\"@odata.nextLink\") is none }}"
partition_router:
- type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: item_info
partition_field: item_info
stream:
$ref: "#/definitions/streams/items"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/listitems"
items:
type: DeclarativeStream
name: items
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: >-
/sites/{{ config['site_id'] }}/lists/{{ stream_partition.list
}}/items
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- value
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: $skiptoken
pagination_strategy:
type: CursorPagination
cursor_value: >-
{{ response.get("@odata.nextLink") |
regex_search('\$skiptoken=([^&]+)') }}
stop_condition: "{{ response.get(\"@odata.nextLink\") is none }}"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: id
partition_field: list
stream:
$ref: "#/definitions/streams/lists"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/items"
transformations:
- type: AddFields
fields:
- type: AddedFieldDefinition
path:
- item_info
value: >-
{{ { "list_id": stream_partition.list, "item_id": record.id }
}}
columnvalues:
type: DeclarativeStream
name: columnvalues
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: >-
/sites/{{ config['site_id'] }}/lists/{{
stream_partition.item_info.list_id }}/items/{{
stream_partition.item_info.item_id }}
http_method: GET
request_parameters:
expand: fields
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: $skiptoken
pagination_strategy:
type: CursorPagination
cursor_value: >-
{{ response.get("@odata.nextLink") |
regex_search('\$skiptoken=([^&]+)') }}
stop_condition: "{{ response.get(\"@odata.nextLink\") is none }}"
partition_router:
- type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: item_info
partition_field: item_info
stream:
$ref: "#/definitions/streams/items"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/columnvalues"
base_requester:
type: HttpRequester
url_base: https://graph.microsoft.com/v1.0
authenticator:
type: OAuthAuthenticator
client_id: "{{ config[\"client_id\"] }}"
grant_type: client_credentials
client_secret: "{{ config[\"client_secret\"] }}"
refresh_request_body:
scope: "{{ config['application_id_uri'] }}"
token_refresh_endpoint: >-
https://login.microsoftonline.com/{{ config['tenant_id']
}}/oauth2/v2.0/token
streams:
- $ref: "#/definitions/streams/lists"
- $ref: "#/definitions/streams/listcontenttypes"
- $ref: "#/definitions/streams/listitems"
- $ref: "#/definitions/streams/items"
- $ref: "#/definitions/streams/columnvalues"
spec:
type: Spec
connection_specification:
type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- site_id
- client_id
- client_secret
- application_id_uri
- tenant_id
- domain
properties:
site_id:
type: string
order: 0
title: Site Id
client_id:
type: string
order: 1
title: Client ID
airbyte_secret: true
client_secret:
type: string
order: 2
title: Client secret
airbyte_secret: true
application_id_uri:
type: string
order: 3
title: Application Id URI
tenant_id:
type: string
order: 4
title: Tenant Id
airbyte_secret: true
domain:
type: string
order: 5
title: Domain
airbyte_secret: true
additionalProperties: true
metadata:
autoImportSchema:
lists: true
listcontenttypes: true
listitems: true
items: true
columnvalues: true
testedStreams:
lists:
streamHash: 134c9f6cd61d3e9b745c4f3b61c07db4f0db7952
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
listcontenttypes:
streamHash: 40a3e26736f822ae7bab9630143aa831feeb77ce
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
listitems:
streamHash: 2595107efd40587c343aa70ab1f1d073283ede01
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
items:
streamHash: f277d63c7f7491e1f17a61f31d9ee6729b7f9df6
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
columnvalues:
streamHash: 71f6aaefe8282ed392cafa9d32cf1764833744a9
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
assist:
docsUrl: >-
https://learn.microsoft.com/en-us/graph/api/resources/list?view=graph-rest-1.0
schemas:
lists:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
description:
type:
- string
- "null"
"@odata.etag":
type:
- string
- "null"
createdBy:
type:
- object
- "null"
properties:
user:
type:
- object
- "null"
properties:
displayName:
type:
- string
- "null"
email:
type:
- string
- "null"
id:
type:
- string
- "null"
createdDateTime:
type:
- string
- "null"
displayName:
type:
- string
- "null"
eTag:
type:
- string
- "null"
id:
type: string
lastModifiedBy:
type:
- object
- "null"
properties:
user:
type:
- object
- "null"
properties:
displayName:
type:
- string
- "null"
email:
type:
- string
- "null"
id:
type:
- string
- "null"
lastModifiedDateTime:
type:
- string
- "null"
list:
type:
- object
- "null"
properties:
contentTypesEnabled:
type:
- boolean
- "null"
hidden:
type:
- boolean
- "null"
template:
type:
- string
- "null"
name:
type:
- string
- "null"
parentReference:
type:
- object
- "null"
properties:
siteId:
type:
- string
- "null"
webUrl:
type:
- string
- "null"
required:
- id
listcontenttypes:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
description:
type:
- string
- "null"
"@odata.etag":
type:
- string
- "null"
base:
type:
- object
- "null"
properties:
description:
type:
- string
- "null"
group:
type:
- string
- "null"
hidden:
type:
- boolean
- "null"
id:
type:
- string
- "null"
name:
type:
- string
- "null"
readOnly:
type:
- boolean
- "null"
sealed:
type:
- boolean
- "null"
group:
type:
- string
- "null"
hidden:
type:
- boolean
- "null"
id:
type: string
name:
type:
- string
- "null"
parentId:
type:
- string
- "null"
readOnly:
type:
- boolean
- "null"
sealed:
type:
- boolean
- "null"
required:
- id
listitems:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
"@odata.context":
type:
- string
- "null"
"@odata.etag":
type:
- string
- "null"
contentType:
type:
- object
- "null"
properties:
id:
type:
- string
- "null"
name:
type:
- string
- "null"
createdBy:
type:
- object
- "null"
properties:
user:
type:
- object
- "null"
properties:
displayName:
type:
- string
- "null"
email:
type:
- string
- "null"
id:
type:
- string
- "null"
createdDateTime:
type:
- string
- "null"
eTag:
type:
- string
- "null"
fields:
type:
- object
- "null"
properties:
"@odata.etag":
type:
- string
- "null"
ActionIndex:
type:
- number
- "null"
Attachments:
type:
- boolean
- "null"
AuthorLookupId:
type:
- string
- "null"
ContentType:
type:
- string
- "null"
Created:
type:
- string
- "null"
Edit:
type:
- string
- "null"
EditorLookupId:
type:
- string
- "null"
FolderChildCount:
type:
- string
- "null"
ItemChildCount:
type:
- string
- "null"
Modified:
type:
- string
- "null"
OrdinalStageIndex:
type:
- number
- "null"
OutcomeCode:
type:
- number
- "null"
OutcomeText:
type:
- string
- "null"
RecipeGuid:
type:
- string
- "null"
RecipeIndex:
type:
- number
- "null"
RecipeTitle:
type:
- string
- "null"
StageIndex:
type:
- number
- "null"
StageTitle:
type:
- string
- "null"
_ComplianceFlags:
type:
- string
- "null"
_ComplianceTag:
type:
- string
- "null"
_ComplianceTagUserId:
type:
- string
- "null"
_ComplianceTagWrittenTime:
type:
- string
- "null"
_UIVersionString:
type:
- string
- "null"
id:
type:
- string
- "null"
fields@odata.context:
type:
- string
- "null"
id:
type:
- string
- "null"
lastModifiedBy:
type:
- object
- "null"
properties:
user:
type:
- object
- "null"
properties:
displayName:
type:
- string
- "null"
email:
type:
- string
- "null"
id:
type:
- string
- "null"
lastModifiedDateTime:
type:
- string
- "null"
parentReference:
type:
- object
- "null"
properties:
id:
type:
- string
- "null"
siteId:
type:
- string
- "null"
webUrl:
type:
- string
- "null"
items:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
"@odata.etag":
type:
- string
- "null"
contentType:
type:
- object
- "null"
properties:
id:
type:
- string
- "null"
name:
type:
- string
- "null"
createdBy:
type:
- object
- "null"
properties:
user:
type:
- object
- "null"
properties:
displayName:
type:
- string
- "null"
email:
type:
- string
- "null"
id:
type:
- string
- "null"
createdDateTime:
type:
- string
- "null"
eTag:
type:
- string
- "null"
id:
type:
- string
- "null"
lastModifiedBy:
type:
- object
- "null"
properties:
user:
type:
- object
- "null"
properties:
displayName:
type:
- string
- "null"
email:
type:
- string
- "null"
id:
type:
- string
- "null"
lastModifiedDateTime:
type:
- string
- "null"
parentReference:
type:
- object
- "null"
properties:
id:
type:
- string
- "null"
siteId:
type:
- string
- "null"
webUrl:
type:
- string
- "null"
columnvalues:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
"@odata.context":
type:
- string
- "null"
"@odata.etag":
type:
- string
- "null"
contentType:
type:
- object
- "null"
properties:
id:
type:
- string
- "null"
name:
type:
- string
- "null"
createdBy:
type:
- object
- "null"
properties:
user:
type:
- object
- "null"
properties:
displayName:
type:
- string
- "null"
email:
type:
- string
- "null"
id:
type:
- string
- "null"
createdDateTime:
type:
- string
- "null"
eTag:
type:
- string
- "null"
fields:
type:
- object
- "null"
properties:
"@odata.etag":
type:
- string
- "null"
ActionIndex:
type:
- number
- "null"
Attachments:
type:
- boolean
- "null"
AuthorLookupId:
type:
- string
- "null"
ContentType:
type:
- string
- "null"
Created:
type:
- string
- "null"
Edit:
type:
- string
- "null"
EditorLookupId:
type:
- string
- "null"
FolderChildCount:
type:
- string
- "null"
ItemChildCount:
type:
- string
- "null"
Modified:
type:
- string
- "null"
OrdinalStageIndex:
type:
- number
- "null"
OutcomeCode:
type:
- number
- "null"
OutcomeText:
type:
- string
- "null"
RecipeGuid:
type:
- string
- "null"
RecipeIndex:
type:
- number
- "null"
RecipeTitle:
type:
- string
- "null"
StageIndex:
type:
- number
- "null"
StageTitle:
type:
- string
- "null"
_ComplianceFlags:
type:
- string
- "null"
_ComplianceTag:
type:
- string
- "null"
_ComplianceTagUserId:
type:
- string
- "null"
_ComplianceTagWrittenTime:
type:
- string
- "null"
_UIVersionString:
type:
- string
- "null"
id:
type:
- string
- "null"
fields@odata.context:
type:
- string
- "null"
id:
type: string
lastModifiedBy:
type:
- object
- "null"
properties:
user:
type:
- object
- "null"
properties:
displayName:
type:
- string
- "null"
email:
type:
- string
- "null"
id:
type:
- string
- "null"
lastModifiedDateTime:
type:
- string
- "null"
parentReference:
type:
- object
- "null"
properties:
id:
type:
- string
- "null"
siteId:
type:
- string
- "null"
webUrl:
type:
- string
- "null"
required:
- id