1
0
mirror of synced 2025-12-23 03:47:05 -05:00
Files
airbyte/airbyte-integrations/connectors/source-split-io/manifest.yaml
btkcodedev 382bcc28eb source-split-io contribution from btkcodedev (#45654)
Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>
Co-authored-by: Natik Gadzhi <natik@respawn.io>
2024-09-24 09:49:33 -07:00

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