@@ -618,9 +618,7 @@ class OAuthAuthenticator(BaseModel):
618
618
scopes : Optional [List [str ]] = Field (
619
619
None ,
620
620
description = "List of scopes that should be granted to the access token." ,
621
- examples = [
622
- ["crm.list.read" , "crm.objects.contacts.read" , "crm.schema.contacts.read" ]
623
- ],
621
+ examples = [["crm.list.read" , "crm.objects.contacts.read" , "crm.schema.contacts.read" ]],
624
622
title = "Scopes" ,
625
623
)
626
624
token_expiry_date : Optional [str ] = Field (
@@ -1126,28 +1124,24 @@ class OAuthConfigSpecification(BaseModel):
1126
1124
class Config :
1127
1125
extra = Extra .allow
1128
1126
1129
- oauth_user_input_from_connector_config_specification : Optional [Dict [str , Any ]] = (
1130
- Field (
1131
- None ,
1132
- description = "OAuth specific blob. This is a Json Schema used to validate Json configurations used as input to OAuth.\n Must be a valid non-nested JSON that refers to properties from ConnectorSpecification.connectionSpecification\n using special annotation 'path_in_connector_config'.\n These are input values the user is entering through the UI to authenticate to the connector, that might also shared\n as inputs for syncing data via the connector.\n Examples:\n if no connector values is shared during oauth flow, oauth_user_input_from_connector_config_specification=[]\n if connector values such as 'app_id' inside the top level are used to generate the API url for the oauth flow,\n oauth_user_input_from_connector_config_specification={\n app_id: {\n type: string\n path_in_connector_config: ['app_id']\n }\n }\n if connector values such as 'info.app_id' nested inside another object are used to generate the API url for the oauth flow,\n oauth_user_input_from_connector_config_specification={\n app_id: {\n type: string\n path_in_connector_config: ['info', 'app_id']\n }\n }" ,
1133
- examples = [
1134
- {"app_id" : {"type" : "string" , "path_in_connector_config" : ["app_id" ]}},
1135
- {
1136
- "app_id" : {
1137
- "type" : "string" ,
1138
- "path_in_connector_config" : ["info" , "app_id" ],
1139
- }
1140
- },
1141
- ],
1142
- title = "OAuth user input" ,
1143
- )
1127
+ oauth_user_input_from_connector_config_specification : Optional [Dict [str , Any ]] = Field (
1128
+ None ,
1129
+ description = "OAuth specific blob. This is a Json Schema used to validate Json configurations used as input to OAuth.\n Must be a valid non-nested JSON that refers to properties from ConnectorSpecification.connectionSpecification\n using special annotation 'path_in_connector_config'.\n These are input values the user is entering through the UI to authenticate to the connector, that might also shared\n as inputs for syncing data via the connector.\n Examples:\n if no connector values is shared during oauth flow, oauth_user_input_from_connector_config_specification=[]\n if connector values such as 'app_id' inside the top level are used to generate the API url for the oauth flow,\n oauth_user_input_from_connector_config_specification={\n app_id: {\n type: string\n path_in_connector_config: ['app_id']\n }\n }\n if connector values such as 'info.app_id' nested inside another object are used to generate the API url for the oauth flow,\n oauth_user_input_from_connector_config_specification={\n app_id: {\n type: string\n path_in_connector_config: ['info', 'app_id']\n }\n }" ,
1130
+ examples = [
1131
+ {"app_id" : {"type" : "string" , "path_in_connector_config" : ["app_id" ]}},
1132
+ {
1133
+ "app_id" : {
1134
+ "type" : "string" ,
1135
+ "path_in_connector_config" : ["info" , "app_id" ],
1136
+ }
1137
+ },
1138
+ ],
1139
+ title = "OAuth user input" ,
1144
1140
)
1145
- oauth_connector_input_specification : Optional [OauthConnectorInputSpecification ] = (
1146
- Field (
1147
- None ,
1148
- description = 'The DeclarativeOAuth specific blob.\n Pertains to the fields defined by the connector relating to the OAuth flow.\n \n Interpolation capabilities:\n - The variables placeholders are declared as `{{my_var}}`.\n - The nested resolution variables like `{{ {{my_nested_var}} }}` is allowed as well.\n \n - The allowed interpolation context is:\n + base64Encoder - encode to `base64`, {{ {{my_var_a}}:{{my_var_b}} | base64Encoder }}\n + base64Decorer - decode from `base64` encoded string, {{ {{my_string_variable_or_string_value}} | base64Decoder }}\n + urlEncoder - encode the input string to URL-like format, {{ https://test.host.com/endpoint | urlEncoder}}\n + urlDecorer - decode the input url-encoded string into text format, {{ urlDecoder:https%3A%2F%2Fairbyte.io | urlDecoder}}\n + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {{ {{state_value}} | codeChallengeS256 }}\n \n Examples:\n - The TikTok Marketing DeclarativeOAuth spec:\n {\n "oauth_connector_input_specification": {\n "type": "object",\n "additionalProperties": false,\n "properties": {\n "consent_url": "https://ads.tiktok.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{ {{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}",\n "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",\n "access_token_params": {\n "{{ auth_code_key }}": "{{ auth_code_value }}",\n "{{ client_id_key }}": "{{ client_id_value }}",\n "{{ client_secret_key }}": "{{ client_secret_value }}"\n },\n "access_token_headers": {\n "Content-Type": "application/json",\n "Accept": "application/json"\n },\n "extract_output": ["data.access_token"],\n "client_id_key": "app_id",\n "client_secret_key": "secret",\n "auth_code_key": "auth_code"\n }\n }\n }' ,
1149
- title = "DeclarativeOAuth Connector Specification" ,
1150
- )
1141
+ oauth_connector_input_specification : Optional [OauthConnectorInputSpecification ] = Field (
1142
+ None ,
1143
+ description = 'The DeclarativeOAuth specific blob.\n Pertains to the fields defined by the connector relating to the OAuth flow.\n \n Interpolation capabilities:\n - The variables placeholders are declared as `{{my_var}}`.\n - The nested resolution variables like `{{ {{my_nested_var}} }}` is allowed as well.\n \n - The allowed interpolation context is:\n + base64Encoder - encode to `base64`, {{ {{my_var_a}}:{{my_var_b}} | base64Encoder }}\n + base64Decorer - decode from `base64` encoded string, {{ {{my_string_variable_or_string_value}} | base64Decoder }}\n + urlEncoder - encode the input string to URL-like format, {{ https://test.host.com/endpoint | urlEncoder}}\n + urlDecorer - decode the input url-encoded string into text format, {{ urlDecoder:https%3A%2F%2Fairbyte.io | urlDecoder}}\n + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {{ {{state_value}} | codeChallengeS256 }}\n \n Examples:\n - The TikTok Marketing DeclarativeOAuth spec:\n {\n "oauth_connector_input_specification": {\n "type": "object",\n "additionalProperties": false,\n "properties": {\n "consent_url": "https://ads.tiktok.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{ {{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}",\n "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",\n "access_token_params": {\n "{{ auth_code_key }}": "{{ auth_code_value }}",\n "{{ client_id_key }}": "{{ client_id_value }}",\n "{{ client_secret_key }}": "{{ client_secret_value }}"\n },\n "access_token_headers": {\n "Content-Type": "application/json",\n "Accept": "application/json"\n },\n "extract_output": ["data.access_token"],\n "client_id_key": "app_id",\n "client_secret_key": "secret",\n "auth_code_key": "auth_code"\n }\n }\n }' ,
1144
+ title = "DeclarativeOAuth Connector Specification" ,
1151
1145
)
1152
1146
complete_oauth_output_specification : Optional [Dict [str , Any ]] = Field (
1153
1147
None ,
@@ -1165,9 +1159,7 @@ class Config:
1165
1159
complete_oauth_server_input_specification : Optional [Dict [str , Any ]] = Field (
1166
1160
None ,
1167
1161
description = "OAuth specific blob. This is a Json Schema used to validate Json configurations persisted as Airbyte Server configurations.\n Must be a valid non-nested JSON describing additional fields configured by the Airbyte Instance or Workspace Admins to be used by the\n server when completing an OAuth flow (typically exchanging an auth code for refresh token).\n Examples:\n complete_oauth_server_input_specification={\n client_id: {\n type: string\n },\n client_secret: {\n type: string\n }\n }" ,
1168
- examples = [
1169
- {"client_id" : {"type" : "string" }, "client_secret" : {"type" : "string" }}
1170
- ],
1162
+ examples = [{"client_id" : {"type" : "string" }, "client_secret" : {"type" : "string" }}],
1171
1163
title = "OAuth input specification" ,
1172
1164
)
1173
1165
complete_oauth_server_output_specification : Optional [Dict [str , Any ]] = Field (
@@ -1498,9 +1490,7 @@ class StreamConfig(BaseModel):
1498
1490
examples = [["data" ], ["data" , "streams" ], ["data" , "{{ parameters.name }}" ]],
1499
1491
title = "Configs Pointer" ,
1500
1492
)
1501
- default_values : Optional [List ] = Field (
1502
- None , description = "placeholder" , title = "Default Values"
1503
- )
1493
+ default_values : Optional [List ] = Field (None , description = "placeholder" , title = "Default Values" )
1504
1494
parameters : Optional [Dict [str , Any ]] = Field (None , alias = "$parameters" )
1505
1495
1506
1496
@@ -1868,9 +1858,7 @@ class KeyValueExtractor(BaseModel):
1868
1858
class CombinedExtractor (BaseModel ):
1869
1859
type : Literal ["CombinedExtractor" ]
1870
1860
extractors : List [
1871
- Union [
1872
- DpathExtractor , CombinedExtractor , KeyValueExtractor , CustomRecordExtractor
1873
- ]
1861
+ Union [DpathExtractor , CombinedExtractor , KeyValueExtractor , CustomRecordExtractor ]
1874
1862
] = Field (..., description = "placeholder" )
1875
1863
parameters : Optional [Dict [str , Any ]] = Field (None , alias = "$parameters" )
1876
1864
@@ -1912,17 +1900,13 @@ class ListPartitionRouter(BaseModel):
1912
1900
1913
1901
class RecordSelector (BaseModel ):
1914
1902
type : Literal ["RecordSelector" ]
1915
- extractor : Union [
1916
- DpathExtractor , CombinedExtractor , KeyValueExtractor , CustomRecordExtractor
1917
- ]
1903
+ extractor : Union [DpathExtractor , CombinedExtractor , KeyValueExtractor , CustomRecordExtractor ]
1918
1904
record_filter : Optional [Union [RecordFilter , CustomRecordFilter ]] = Field (
1919
1905
None ,
1920
1906
description = "Responsible for filtering records to be emitted by the Source." ,
1921
1907
title = "Record Filter" ,
1922
1908
)
1923
- schema_normalization : Optional [
1924
- Union [SchemaNormalization , CustomSchemaNormalization ]
1925
- ] = Field (
1909
+ schema_normalization : Optional [Union [SchemaNormalization , CustomSchemaNormalization ]] = Field (
1926
1910
None ,
1927
1911
description = "Responsible for normalization according to the schema." ,
1928
1912
title = "Schema Normalization" ,
@@ -2168,9 +2152,7 @@ class Config:
2168
2152
extra = Extra .allow
2169
2153
2170
2154
type : Literal ["DeclarativeStream" ]
2171
- name : Optional [str ] = Field (
2172
- "" , description = "The stream name." , example = ["Users" ], title = "Name"
2173
- )
2155
+ name : Optional [str ] = Field ("" , description = "The stream name." , example = ["Users" ], title = "Name" )
2174
2156
retriever : Union [SimpleRetriever , AsyncRetriever , CustomRetriever ] = Field (
2175
2157
...,
2176
2158
description = "Component used to coordinate how records are extracted across stream slices and request pages." ,
@@ -2348,20 +2330,18 @@ class HttpRequester(BaseModelWithDeprecations):
2348
2330
description = "Allows for retrieving a dynamic set of properties from an API endpoint which can be injected into outbound request using the stream_partition.extra_fields." ,
2349
2331
title = "Fetch Properties from Endpoint" ,
2350
2332
)
2351
- request_parameters : Optional [Union [Dict [str , Union [str , QueryProperties ]], str ]] = (
2352
- Field (
2353
- None ,
2354
- description = "Specifies the query parameters that should be set on an outgoing HTTP request given the inputs." ,
2355
- examples = [
2356
- {"unit" : "day" },
2357
- {
2358
- "query" : 'last_event_time BETWEEN TIMESTAMP "{{ stream_interval.start_time }}" AND TIMESTAMP "{{ stream_interval.end_time }}"'
2359
- },
2360
- {"searchIn" : "{{ ','.join(config.get('search_in', [])) }}" },
2361
- {"sort_by[asc]" : "updated_at" },
2362
- ],
2363
- title = "Query Parameters" ,
2364
- )
2333
+ request_parameters : Optional [Union [Dict [str , Union [str , QueryProperties ]], str ]] = Field (
2334
+ None ,
2335
+ description = "Specifies the query parameters that should be set on an outgoing HTTP request given the inputs." ,
2336
+ examples = [
2337
+ {"unit" : "day" },
2338
+ {
2339
+ "query" : 'last_event_time BETWEEN TIMESTAMP "{{ stream_interval.start_time }}" AND TIMESTAMP "{{ stream_interval.end_time }}"'
2340
+ },
2341
+ {"searchIn" : "{{ ','.join(config.get('search_in', [])) }}" },
2342
+ {"sort_by[asc]" : "updated_at" },
2343
+ ],
2344
+ title = "Query Parameters" ,
2365
2345
)
2366
2346
request_headers : Optional [Union [Dict [str , str ], str ]] = Field (
2367
2347
None ,
@@ -2554,9 +2534,7 @@ class QueryProperties(BaseModel):
2554
2534
2555
2535
class StateDelegatingStream (BaseModel ):
2556
2536
type : Literal ["StateDelegatingStream" ]
2557
- name : str = Field (
2558
- ..., description = "The stream name." , example = ["Users" ], title = "Name"
2559
- )
2537
+ name : str = Field (..., description = "The stream name." , example = ["Users" ], title = "Name" )
2560
2538
full_refresh_stream : DeclarativeStream = Field (
2561
2539
...,
2562
2540
description = "Component used to coordinate how records are extracted across stream slices and request pages when the state is empty or not provided." ,
@@ -2645,9 +2623,7 @@ class AsyncRetriever(BaseModel):
2645
2623
)
2646
2624
download_extractor : Optional [
2647
2625
Union [DpathExtractor , CustomRecordExtractor , ResponseToFileExtractor ]
2648
- ] = Field (
2649
- None , description = "Responsible for fetching the records from provided urls."
2650
- )
2626
+ ] = Field (None , description = "Responsible for fetching the records from provided urls." )
2651
2627
creation_requester : Union [HttpRequester , CustomRequester ] = Field (
2652
2628
...,
2653
2629
description = "Requester component that describes how to prepare HTTP requests to send to the source API to create the async server-side job." ,
@@ -2787,12 +2763,10 @@ class DynamicDeclarativeStream(BaseModel):
2787
2763
stream_template : DeclarativeStream = Field (
2788
2764
..., description = "Reference to the stream template." , title = "Stream Template"
2789
2765
)
2790
- components_resolver : Union [HttpComponentsResolver , ConfigComponentsResolver ] = (
2791
- Field (
2792
- ...,
2793
- description = "Component resolve and populates stream templates with components values." ,
2794
- title = "Components Resolver" ,
2795
- )
2766
+ components_resolver : Union [HttpComponentsResolver , ConfigComponentsResolver ] = Field (
2767
+ ...,
2768
+ description = "Component resolve and populates stream templates with components values." ,
2769
+ title = "Components Resolver" ,
2796
2770
)
2797
2771
2798
2772
0 commit comments