Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com> Co-authored-by: Natik Gadzhi <natik@respawn.io>
1395 lines
36 KiB
YAML
1395 lines
36 KiB
YAML
version: 4.6.2
|
|
|
|
type: DeclarativeSource
|
|
|
|
description: |-
|
|
Website: https://app.split.io/
|
|
API Docs: https://docs.split.io/reference/introduction
|
|
Authentication docs: https://docs.split.io/reference/authentication
|
|
|
|
check:
|
|
type: CheckStream
|
|
stream_names:
|
|
- changeRequests
|
|
|
|
definitions:
|
|
streams:
|
|
changeRequests:
|
|
type: DeclarativeStream
|
|
name: changeRequests
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/changeRequests
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- data
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/changeRequests"
|
|
workspaces:
|
|
type: DeclarativeStream
|
|
name: workspaces
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/workspaces
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- objects
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/workspaces"
|
|
flagSets:
|
|
type: DeclarativeStream
|
|
name: flagSets
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v3/flag-sets
|
|
http_method: GET
|
|
request_parameters:
|
|
workspace_id: "{{ stream_partition.workspace_id }}"
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- data
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: id
|
|
partition_field: workspace_id
|
|
stream:
|
|
$ref: "#/definitions/streams/workspaces"
|
|
incremental_sync:
|
|
type: DatetimeBasedCursor
|
|
cursor_field: createdAt
|
|
cursor_datetime_formats:
|
|
- "%Y-%m-%dT%H:%M:%S.%fZ"
|
|
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"
|
|
end_datetime:
|
|
type: MinMaxDatetime
|
|
datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}"
|
|
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/flagSets"
|
|
users:
|
|
type: DeclarativeStream
|
|
name: users
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/users
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- data
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/users"
|
|
segments:
|
|
type: DeclarativeStream
|
|
name: segments
|
|
primary_key:
|
|
- name
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/segments/ws/{{ stream_partition.workspaceId }}
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- objects
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: id
|
|
partition_field: workspaceId
|
|
stream:
|
|
$ref: "#/definitions/streams/workspaces"
|
|
incremental_sync:
|
|
type: DatetimeBasedCursor
|
|
cursor_field: creationTime
|
|
cursor_datetime_formats:
|
|
- "%ms"
|
|
datetime_format: "%ms"
|
|
start_datetime:
|
|
type: MinMaxDatetime
|
|
datetime: '{{ config["start_date"] }}'
|
|
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
|
|
end_datetime:
|
|
type: MinMaxDatetime
|
|
datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}"
|
|
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/segments"
|
|
segments_keys:
|
|
type: DeclarativeStream
|
|
name: segments_keys
|
|
primary_key:
|
|
- uid
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: >-
|
|
v2/segments/{{ stream_partition.environment_id }}/{{
|
|
stream_partition.segment_name }}/keys
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: IGNORE
|
|
http_codes:
|
|
- 404
|
|
error_message: Segment not defined for the partition
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path: []
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
partition_router:
|
|
- type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: id
|
|
partition_field: environment_id
|
|
stream:
|
|
$ref: "#/definitions/streams/environments"
|
|
- type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: name
|
|
partition_field: segment_name
|
|
stream:
|
|
$ref: "#/definitions/streams/segments"
|
|
transformations:
|
|
- type: AddFields
|
|
fields:
|
|
- path:
|
|
- uid
|
|
value: "{{ now_utc() }}"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/segments_keys"
|
|
rolloutStatuses:
|
|
type: DeclarativeStream
|
|
name: rolloutStatuses
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/rolloutStatuses
|
|
http_method: GET
|
|
request_parameters:
|
|
wsId: "{{ stream_partition.workspaceId }}"
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path: []
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: id
|
|
partition_field: workspaceId
|
|
stream:
|
|
$ref: "#/definitions/streams/workspaces"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/rolloutStatuses"
|
|
environments:
|
|
type: DeclarativeStream
|
|
name: environments
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/environments/ws/{{ stream_partition.wsId }}
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path: []
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: id
|
|
partition_field: wsId
|
|
stream:
|
|
$ref: "#/definitions/streams/workspaces"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/environments"
|
|
trafficTypes:
|
|
type: DeclarativeStream
|
|
name: trafficTypes
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/trafficTypes/ws/{{ stream_partition.wsId }}
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path: []
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: id
|
|
partition_field: wsId
|
|
stream:
|
|
$ref: "#/definitions/streams/workspaces"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/trafficTypes"
|
|
groups:
|
|
type: DeclarativeStream
|
|
name: groups
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/groups
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- objects
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/groups"
|
|
feature_flags:
|
|
type: DeclarativeStream
|
|
name: feature_flags
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: v2/splits/ws/{{ stream_partition.wsId }}
|
|
http_method: GET
|
|
error_handler:
|
|
type: CompositeErrorHandler
|
|
error_handlers:
|
|
- type: DefaultErrorHandler
|
|
max_retries: 3
|
|
backoff_strategies:
|
|
- type: ExponentialBackoffStrategy
|
|
factor: 2
|
|
response_filters:
|
|
- type: HttpResponseFilter
|
|
action: RATE_LIMITED
|
|
http_codes:
|
|
- 429
|
|
error_message: Rate limit hit
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- objects
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 50
|
|
inject_on_first_request: true
|
|
partition_router:
|
|
type: SubstreamPartitionRouter
|
|
parent_stream_configs:
|
|
- type: ParentStreamConfig
|
|
parent_key: id
|
|
partition_field: wsId
|
|
stream:
|
|
$ref: "#/definitions/streams/workspaces"
|
|
incremental_sync:
|
|
type: DatetimeBasedCursor
|
|
cursor_field: creationTime
|
|
cursor_datetime_formats:
|
|
- "%ms"
|
|
datetime_format: "%ms"
|
|
start_datetime:
|
|
type: MinMaxDatetime
|
|
datetime: '{{ config["start_date"] }}'
|
|
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
|
|
end_datetime:
|
|
type: MinMaxDatetime
|
|
datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}"
|
|
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/feature_flags"
|
|
base_requester:
|
|
type: HttpRequester
|
|
url_base: https://api.split.io/internal/api/
|
|
authenticator:
|
|
type: BearerAuthenticator
|
|
api_token: '{{ config["api_key"] }}'
|
|
|
|
streams:
|
|
- $ref: "#/definitions/streams/changeRequests"
|
|
- $ref: "#/definitions/streams/workspaces"
|
|
- $ref: "#/definitions/streams/flagSets"
|
|
- $ref: "#/definitions/streams/users"
|
|
- $ref: "#/definitions/streams/segments"
|
|
- $ref: "#/definitions/streams/segments_keys"
|
|
- $ref: "#/definitions/streams/rolloutStatuses"
|
|
- $ref: "#/definitions/streams/environments"
|
|
- $ref: "#/definitions/streams/trafficTypes"
|
|
- $ref: "#/definitions/streams/groups"
|
|
- $ref: "#/definitions/streams/feature_flags"
|
|
|
|
spec:
|
|
type: Spec
|
|
connection_specification:
|
|
type: object
|
|
$schema: http://json-schema.org/draft-07/schema#
|
|
required:
|
|
- api_key
|
|
- start_date
|
|
properties:
|
|
api_key:
|
|
type: string
|
|
order: 0
|
|
title: API Key
|
|
airbyte_secret: true
|
|
start_date:
|
|
type: string
|
|
order: 1
|
|
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$
|
|
additionalProperties: true
|
|
|
|
metadata:
|
|
autoImportSchema:
|
|
changeRequests: true
|
|
workspaces: true
|
|
flagSets: true
|
|
users: true
|
|
segments: true
|
|
segments_keys: true
|
|
rolloutStatuses: true
|
|
environments: true
|
|
trafficTypes: true
|
|
groups: true
|
|
feature_flags: true
|
|
testedStreams:
|
|
changeRequests:
|
|
streamHash: 6efe06fcb1de03b6d474aaeac222cd2f3af1790e
|
|
hasResponse: true
|
|
responsesAreSuccessful: true
|
|
hasRecords: true
|
|
primaryKeysArePresent: true
|
|
primaryKeysAreUnique: true
|
|
workspaces:
|
|
hasRecords: true
|
|
streamHash: 5bebdd6779808f7100867efd8eb8ea8399a2cd39
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
flagSets:
|
|
hasRecords: true
|
|
streamHash: 8a148cffc4442c689c0138238db01fbbd6d9298f
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
users:
|
|
hasRecords: true
|
|
streamHash: f67e8ed0905def8e7a8dd5057c03320e7129fe60
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
segments:
|
|
hasRecords: true
|
|
streamHash: 043310359a4391878ede12ca3014cf7e185af9d5
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
segments_keys:
|
|
hasRecords: true
|
|
streamHash: ce373f7506d8ceb318827d44dd81610d37ab88f0
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
rolloutStatuses:
|
|
hasRecords: true
|
|
streamHash: de5c4c90cc98dfd9a2eb17612f48829715dd5d5f
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
environments:
|
|
hasRecords: true
|
|
streamHash: e60fda6015f2305bd59a3699fb69a3924dbbf0ad
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
trafficTypes:
|
|
hasRecords: true
|
|
streamHash: e2634db7b331c5ad0c568a0fcb3d7e1e4cf4756f
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
groups:
|
|
hasRecords: true
|
|
streamHash: a0ec71fa4298488fc5f0cd384b7c0870020244be
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
feature_flags:
|
|
hasRecords: true
|
|
streamHash: 4dc7fca3410c1227682e17b60fc26ec069b3e00e
|
|
hasResponse: true
|
|
primaryKeysAreUnique: true
|
|
primaryKeysArePresent: true
|
|
responsesAreSuccessful: true
|
|
assist: {}
|
|
|
|
schemas:
|
|
changeRequests:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
approvers:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- string
|
|
- "null"
|
|
comments:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
comment:
|
|
type:
|
|
- string
|
|
- "null"
|
|
role:
|
|
type:
|
|
- string
|
|
- "null"
|
|
timestamp:
|
|
type:
|
|
- number
|
|
- "null"
|
|
user:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
operationType:
|
|
type:
|
|
- string
|
|
- "null"
|
|
rolloutStatus:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
segment:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
environment:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
keys:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
split:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
baselineTreatment:
|
|
type:
|
|
- string
|
|
- "null"
|
|
defaultRule:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
size:
|
|
type:
|
|
- number
|
|
- "null"
|
|
treatment:
|
|
type:
|
|
- string
|
|
- "null"
|
|
defaultTreatment:
|
|
type:
|
|
- string
|
|
- "null"
|
|
environment:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
killed:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
openChangeRequestId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
rules:
|
|
type:
|
|
- array
|
|
- "null"
|
|
trafficAllocation:
|
|
type:
|
|
- number
|
|
- "null"
|
|
trafficType:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
treatments:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
keys:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
segments:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
type:
|
|
- string
|
|
- "null"
|
|
title:
|
|
type:
|
|
- string
|
|
- "null"
|
|
workspace:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
workspaces:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
requiresTitleAndComments:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
required:
|
|
- id
|
|
flagSets:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
workspace:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
- createdAt
|
|
users:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
2fa:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
email:
|
|
type:
|
|
- string
|
|
- "null"
|
|
groups:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
segments:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
creationTime:
|
|
type: number
|
|
name:
|
|
type: string
|
|
tags:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
trafficType:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- name
|
|
- creationTime
|
|
segments_keys:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
count:
|
|
type:
|
|
- number
|
|
- "null"
|
|
keys:
|
|
type:
|
|
- array
|
|
- "null"
|
|
limit:
|
|
type:
|
|
- number
|
|
- "null"
|
|
offset:
|
|
type:
|
|
- number
|
|
- "null"
|
|
openChangeRequestId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
uid:
|
|
type: string
|
|
required:
|
|
- uid
|
|
rolloutStatuses:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
environments:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
production:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
required:
|
|
- id
|
|
trafficTypes:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
displayAttributeId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
workspace:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
groups:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
feature_flags:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
creationTime:
|
|
type: number
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
owners:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
rolloutStatus:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
rolloutStatusTimestamp:
|
|
type:
|
|
- number
|
|
- "null"
|
|
tags:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
trafficType:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
- creationTime
|