OpenAPI Specification
openapi: 3.2.0
info:
contact: {}
description: Config API supports CRUD operations on config objects.
title: Config REST Application Agent Credentials Event Sinks API
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
version: '1'
servers:
- url: https://eu.api.indykite.com/configs/v1
- url: https://us.api.indykite.com/configs/v1
security:
- BearerToken: []
tags:
- name: Event Sinks
description: Event Sink configuration
x-displayName: Event Sinks
paths:
/event-sinks:
get:
tags:
- Event Sinks
operationId: listEventSinks
summary: List Event Sinks
description: List Event Sinks in provided Project with optional filtering.
parameters:
- description: Project ID where to search for Event Sinks.
in: query
name: project_id
required: true
style: form
explode: true
schema:
type: string
- description: Full fetch of all data. If not provided, only metadata is returned.
in: query
name: full_fetch
required: false
style: form
explode: true
schema:
type: boolean
- description: List only objects, that contains given search query in name, display name or description
in: query
name: search
required: false
style: form
explode: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/httpproxy.listConfigResponse-httpproxy_readEventSinkResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
'401':
description: Invalid ServiceAccount JWT in Authorization header
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
security:
- BearerToken: []
post:
tags:
- Event Sinks
operationId: createEventSink
summary: Create Event Sink
description: Create Event Sink in provided Project.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/httpproxy.createEventSinkRequest'
description: Create Event Sink request
required: true
responses:
'201':
description: Created
headers:
etag:
description: Multiversion concurrency control version - etag
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/httpproxy.createConfigResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
'401':
description: Invalid ServiceAccount JWT in Authorization header
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
x-codegen-request-body-name: request
security:
- BearerToken: []
/event-sinks/{id}:
delete:
tags:
- Event Sinks
operationId: deleteEventSink
summary: Delete EventSink
description: Delete EventSink by provided ID. You can optionally can specify etag in If-Match header.
parameters:
- description: EventSink ID
in: path
name: id
required: true
style: simple
explode: false
schema:
type: string
- description: Multiversion concurrency control version - etag
in: header
name: If-Match
required: false
style: simple
explode: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/httpproxy.deleteConfigResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
'401':
description: Invalid ServiceAccount JWT in Authorization header
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
security:
- BearerToken: []
get:
tags:
- Event Sinks
operationId: getEventSink
summary: Read EventSink
description: Read EventSink identified by provided ID.
parameters:
- description: EventSink ID or name
in: path
name: id
required: true
style: simple
explode: false
schema:
type: string
- description: Version of configuration to read. If not provided, latest version is returned.
in: query
name: version
required: false
style: form
explode: true
schema:
type: integer
- description: Parent project ID. Required when querying by name
in: query
name: location
required: false
style: form
explode: true
schema:
type: string
responses:
'200':
description: OK
headers:
etag:
description: Multiversion concurrency control version - etag
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/httpproxy.readEventSinkResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
'401':
description: Invalid ServiceAccount JWT in Authorization header
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
security:
- BearerToken: []
put:
tags:
- Event Sinks
operationId: updateEventSink
summary: Update EventSink
description: Update EventSink identified by provided ID and optionally etag in If-Match header.
parameters:
- description: EventSink ID
in: path
name: id
required: true
style: simple
explode: false
schema:
type: string
- description: Multiversion concurrency control version - etag.
in: header
name: If-Match
required: false
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/httpproxy.updateEventSinkRequest'
description: Update EventSink request.
required: true
responses:
'200':
description: OK
headers:
etag:
description: Multiversion concurrency control version - etag
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/httpproxy.updateConfigResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
'401':
description: Invalid ServiceAccount JWT in Authorization header
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.DetailedError'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/restapi.ErrorResponse'
x-codegen-request-body-name: request
security:
- BearerToken: []
components:
schemas:
httpproxy.pubSubSinkConfig:
properties:
credentials_json:
examples:
- '{"type":"service_account",...}'
maxLength: 10240
minLength: 1
type: string
display_name:
type: string
last_error:
type: string
project_id:
examples:
- my-gcp-project
maxLength: 30
minLength: 6
type: string
topic_name:
examples:
- my-pubsub-topic
maxLength: 255
minLength: 3
type: string
required:
- credentials_json
- project_id
- topic_name
type: object
httpproxy.azureEventGridSinkConfig:
properties:
access_key:
maxLength: 1024
minLength: 1
type: string
examples:
- key123
display_name:
type: string
last_error:
type: string
topic_endpoint:
maxLength: 1024
minLength: 1
type: string
examples:
- https://example.azure.com
required:
- access_key
- topic_endpoint
type: object
httpproxy.createEventSinkRequest:
properties:
description:
description: Description is optional description of configuration.
maxLength: 65000
minLength: 2
type: string
display_name:
description: DisplayName is optional human readable name of configuration.
maxLength: 254
minLength: 2
type: string
include_cdc_events:
description: IncludeCDCEvents when true, CDC events will be emitted to this event sink.
type: boolean
name:
description: 'Name is URL friendly identifier of configuration, must be unique in scope of parent entity.
Also is immutable and cannot be changed later.'
type: string
project_id:
description: 'ProjectID is identifier of Project, formerly known as Application space,
where to place this new configuration object. Must be in GID format.'
type: string
providers:
additionalProperties:
$ref: '#/components/schemas/httpproxy.eventSinkProvider'
description: Providers contains the list of supported providers, that are referenced by the Routes.
type: object
routes:
description: Routes contains the list of routes to properly route the events to the providers by sequential evaluation model.
items:
$ref: '#/components/schemas/httpproxy.eventSinkRoute'
minItems: 1
type: array
required:
- name
- project_id
- providers
- routes
type: object
httpproxy.eventSinkProvider:
properties:
azure_event_grid:
$ref: '#/components/schemas/httpproxy.azureEventGridSinkConfig'
azure_service_bus:
$ref: '#/components/schemas/httpproxy.azureServiceBusSinkConfig'
kafka:
$ref: '#/components/schemas/httpproxy.kafkaSinkConfig'
pubsub:
$ref: '#/components/schemas/httpproxy.pubSubSinkConfig'
type: object
httpproxy.kafkaSinkConfig:
properties:
brokers:
items:
type: string
minItems: 1
type: array
disable_tls:
description: 'Brokers specify Kafka destinations to connect to.
DisableTLS can force using non-secure connection.'
type: boolean
display_name:
type: string
last_error:
type: string
password:
type: string
examples:
- password123
tls_skip_verify:
description: TLSSkipVerify defines whenever not to verify TLS certificate. Ignored if TLS is disabled.
type: boolean
topic:
example: my-topic
maxLength: 249
minLength: 1
type: string
examples:
- my-topic
username:
examples:
- user1
type: string
required:
- brokers
- topic
type: object
httpproxy.updateEventSinkRequest:
properties:
description:
description: 'Description is optional description of configuration. When kept null, it is not changed.
But when set to empty string, it will be removed.'
maxLength: 65000
type: string
display_name:
description: 'DisplayName is optional human readable name of configuration. When kept null, it is not changed.
But when set to empty string, it will be removed.'
maxLength: 254
type: string
include_cdc_events:
description: IncludeCDCEvents when true, CDC events will be emitted to this event sink.
type: boolean
providers:
additionalProperties:
$ref: '#/components/schemas/httpproxy.eventSinkProvider'
description: Providers contains the list of supported providers, that are referenced by the Routes.
type: object
routes:
description: Routes contains the list of routes to properly route the events to the providers by sequential evaluation model.
items:
$ref: '#/components/schemas/httpproxy.eventSinkRoute'
minItems: 1
type: array
required:
- providers
- routes
type: object
httpproxy.listConfigResponse-httpproxy_readEventSinkResponse:
properties:
data:
items:
$ref: '#/components/schemas/httpproxy.readEventSinkResponse'
type: array
type: object
httpproxy.eventSinkRouteEventKeyValuesFilter:
properties:
context_key_value:
items:
$ref: '#/components/schemas/httpproxy.eventSinkFilterKeyValue'
type: array
event_type:
examples:
- indykite.audit.config.create
minLength: 1
type: string
required:
- event_type
type: object
httpproxy.updateConfigResponse:
properties:
create_time:
description: CreateTime specify when configuration was created.
type: string
created_by:
description: CreatedBy specify who created configuration.
type: string
id:
description: ID of configuration to update.
type: string
update_time:
description: UpdateTime specify when configuration was last time updated.
type: string
updated_by:
description: UpdatedBy specify who last time updated configuration.
type: string
type: object
httpproxy.deleteConfigResponse:
properties:
id:
description: ID of deleted configuration.
type: string
type: object
httpproxy.eventSinkRoute:
properties:
display_name:
type: string
event_type_key_values_filter:
$ref: '#/components/schemas/httpproxy.eventSinkRouteEventKeyValuesFilter'
provider_id:
type: string
stop_processing:
type: boolean
required:
- event_type_key_values_filter
- provider_id
type: object
restapi.DetailedError:
properties:
errors:
items:
type: string
type: array
message:
type: string
type: object
httpproxy.readEventSinkResponse:
properties:
create_time:
description: CreateTime specify when configuration was created.
type: string
created_by:
description: CreatedBy specify who created configuration.
type: string
description:
description: Description is optional description of configuration.
type: string
display_name:
description: DisplayName is optional human readable name of configuration. Is equal to Name if not set.
type: string
id:
description: ID is globally unique identifier of configuration.
type: string
include_cdc_events:
type: boolean
name:
description: Name is URL friendly identifier of configuration.
type: string
organization_id:
description: 'OrganizationID is globally unique identifier of organization, formerly known as customer,
under which configuration was created.'
type: string
project_id:
description: 'ProjectID is globally unique identifier of project, formerly known as application space,
under which configuration was created.
Might be empty, if configuration is created directly under organization.'
type: string
providers:
additionalProperties:
$ref: '#/components/schemas/httpproxy.eventSinkProvider'
type: object
routes:
items:
$ref: '#/components/schemas/httpproxy.eventSinkRoute'
type: array
update_time:
description: UpdateTime specify when configuration was last time updated.
type: string
updated_by:
description: UpdatedBy specify who last time updated configuration.
type: string
type: object
restapi.ErrorResponse:
properties:
message:
example: Internal Server Error
type: string
type: object
httpproxy.createConfigResponse:
properties:
create_time:
description: CreateTime specify when configuration was created.
type: string
created_by:
description: CreatedBy specify who created configuration.
type: string
id:
description: ID is globally unique identifier of created configuration.
type: string
update_time:
description: UpdateTime specify when configuration was last time updated.
type: string
updated_by:
description: UpdatedBy specify who last time updated configuration.
type: string
type: object
httpproxy.azureServiceBusSinkConfig:
properties:
connection_string:
maxLength: 1024
minLength: 1
type: string
examples:
- sb://my-test-service-bus.service
display_name:
type: string
last_error:
type: string
queue_or_topic_name:
maxLength: 1024
minLength: 1
type: string
examples:
- my-test-service-bus-queue
required:
- connection_string
- queue_or_topic_name
type: object
httpproxy.eventSinkFilterKeyValue:
properties:
key:
minLength: 1
type: string
examples:
- key1
value:
minLength: 1
type: string
examples:
- value1
required:
- key
- value
type: object
securitySchemes:
BearerToken:
type: http
scheme: bearer
bearerFormat: JWT
description: Bearer token generated from Service Account credentials.
x-original-swagger-version: '2.0'