diff --git a/v3/generator/source.yaml b/v3/generator/source.yaml index 829a7e88d..c5380960d 100644 --- a/v3/generator/source.yaml +++ b/v3/generator/source.yaml @@ -143,17 +143,46 @@ components: - name - state description: Automatic maintenance settings - dbaas-endpoint-datadog-secrets: + dbaas-endpoint-elasticsearch-input-create: type: object properties: - datadog-api-key: - type: string - maxLength: 256 - minLength: 1 - pattern: "^[A-Za-z0-9]{1,256}$" - description: Datadog API key - required: - - datadog-api-key + settings: + type: object + properties: + ca: + type: string + maxLength: 16384 + description: PEM encoded CA certificate + url: + type: string + maxLength: 2048 + minLength: 12 + description: Elasticsearch connection URL + index-prefix: + type: string + maxLength: 1000 + minLength: 1 + pattern: "^[a-z0-9][a-z0-9-_.]+$" + description: Elasticsearch index prefix + index-days-max: + type: integer + format: int64 + minimum: 1 + maximum: 10000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of days of logs to keep + timeout: + type: integer + format: int64 + minimum: 10.0 + maximum: 120.0 + exclusiveMinimum: false + exclusiveMaximum: false + description: Elasticsearch request timeout limit + required: + - url + - index-prefix json-schema-schema-registry: additionalProperties: false properties: @@ -390,7 +419,7 @@ components: format: uuid description: External integration endpoint id settings: - "$ref": "#/components/schemas/dbaas-endpoint-opensearch" + "$ref": "#/components/schemas/dbaas-endpoint-opensearch-optional-fields" description: External integration OpenSearch logs configuration dbaas-endpoint-elasticsearch-output: type: object @@ -406,8 +435,63 @@ components: format: uuid description: External integration endpoint id settings: - "$ref": "#/components/schemas/dbaas-endpoint-elasticsearch" + "$ref": "#/components/schemas/dbaas-endpoint-elasticsearch-optional-fields" description: External integration ElasticSearch logs configuration + dbaas-endpoint-rsyslog-input-update: + type: object + properties: + settings: + type: object + properties: + format: + "$ref": "#/components/schemas/enum-rsyslog-format" + description: Message format + key: + type: string + maxLength: 16384 + description: PEM encoded client key + logline: + type: string + maxLength: 512 + minLength: 1 + pattern: "^[ -~\\t]+$" + description: Custom syslog message format + server: + type: string + maxLength: 255 + minLength: 4 + description: Rsyslog server IP address or hostname + ca: + type: string + maxLength: 16384 + description: PEM encoded CA certificate + cert: + type: string + maxLength: 16384 + description: PEM encoded client certificate + tls: + type: boolean + description: Require TLS + port: + type: integer + format: int64 + minimum: 1 + maximum: 65535 + exclusiveMinimum: false + exclusiveMaximum: false + description: Rsyslog server port + sd: + type: string + maxLength: 1024 + description: Structured data block for log message + max-message-size: + type: integer + format: int64 + minimum: 2048 + maximum: 2147483647 + exclusiveMinimum: false + exclusiveMaximum: false + description: Rsyslog max message size json-schema-grafana: properties: allow_embedding: @@ -1773,7 +1857,7 @@ components: dest-endpoint-id: type: string description: External destination endpoint id - id: + integration-id: type: string format: uuid description: Endpoint integration UUID @@ -2665,46 +2749,6 @@ components: type: integer title: PGBouncer connection pooling settings type: object - dbaas-endpoint-opensearch-payload: - type: object - properties: - settings: - type: object - properties: - ca: - type: string - maxLength: 16384 - description: PEM encoded CA certificate - url: - type: string - maxLength: 2048 - minLength: 12 - description: OpenSearch connection URL - index-prefix: - type: string - maxLength: 1000 - minLength: 1 - pattern: "^[a-z0-9][a-z0-9-_.]+$" - description: OpenSearch index prefix - index-days-max: - type: integer - format: int64 - minimum: 1 - maximum: 10000 - exclusiveMinimum: false - exclusiveMaximum: false - description: Maximum number of days of logs to keep - timeout: - type: integer - format: int64 - minimum: 10.0 - maximum: 120.0 - exclusiveMinimum: false - exclusiveMaximum: false - description: OpenSearch request timeout limit - required: - - url - - index-prefix load-balancer-server-status: type: object properties: @@ -3149,7 +3193,14 @@ components: format: uuid description: External integration endpoint id settings: - "$ref": "#/components/schemas/dbaas-endpoint-prometheus" + type: object + properties: + basic-auth-username: + type: string + maxLength: 32 + minLength: 5 + pattern: "^[a-z0-9\\-@_]{5,32}$" + description: Prometheus basic authentication username description: External integration Prometheus configuration dbaas-user-password: type: string @@ -3806,6 +3857,43 @@ components: readOnly: true description: Requires authorization or publicly available description: DBaaS plan + dbaas-endpoint-opensearch-input-update: + type: object + properties: + settings: + type: object + properties: + ca: + type: string + maxLength: 16384 + description: PEM encoded CA certificate + url: + type: string + maxLength: 2048 + minLength: 12 + description: OpenSearch connection URL + index-prefix: + type: string + maxLength: 1000 + minLength: 1 + pattern: "^[a-z0-9][a-z0-9-_.]+$" + description: OpenSearch index prefix + index-days-max: + type: integer + format: int64 + minimum: 1 + maximum: 10000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of days of logs to keep + timeout: + type: integer + format: int64 + minimum: 10.0 + maximum: 120.0 + exclusiveMinimum: false + exclusiveMaximum: false + description: OpenSearch request timeout limit labels: type: object additionalProperties: @@ -4246,6 +4334,46 @@ components: type: boolean task-type: type: string + dbaas-endpoint-rsyslog-optional-fields: + type: object + properties: + server: + type: string + maxLength: 255 + minLength: 4 + description: Rsyslog server IP address or hostname + port: + type: integer + format: int64 + minimum: 1 + maximum: 65535 + exclusiveMinimum: false + exclusiveMaximum: false + description: Rsyslog server port + tls: + type: boolean + description: Require TLS + format: + "$ref": "#/components/schemas/enum-rsyslog-format" + description: Message format + logline: + type: string + maxLength: 512 + minLength: 1 + pattern: "^[ -~\\t]+$" + description: Custom syslog message format + sd: + type: string + maxLength: 1024 + description: Structured data block for log message + max-message-size: + type: integer + format: int64 + minimum: 2048 + maximum: 2147483647 + exclusiveMinimum: false + exclusiveMaximum: false + description: Rsyslog max message size operation: type: object properties: @@ -4452,69 +4580,47 @@ components: type: string format: uuid description: External integration endpoint id - settings: - "$ref": "#/components/schemas/dbaas-endpoint-datadog" - description: External integration DataDog configuration - dbaas-endpoint-rsyslog-payload: - type: object - properties: settings: type: object properties: - format: - "$ref": "#/components/schemas/enum-rsyslog-format" - description: Message format - key: - type: string - maxLength: 16384 - description: PEM encoded client key - logline: - type: string - maxLength: 512 - minLength: 1 - pattern: "^[ -~\\t]+$" - description: Custom syslog message format - server: - type: string - maxLength: 255 - minLength: 4 - description: Rsyslog server IP address or hostname - ca: - type: string - maxLength: 16384 - description: PEM encoded CA certificate - cert: - type: string - maxLength: 16384 - description: PEM encoded client certificate - tls: - type: boolean - description: Require TLS - port: - type: integer - format: int64 - minimum: 1 - maximum: 65535 - exclusiveMinimum: false + site: + "$ref": "#/components/schemas/enum-datadog-site" + description: Datadog intake site. Defaults to datadoghq.com + datadog-tags: + type: array + items: + "$ref": "#/components/schemas/dbaas-datadog-tag" + description: Custom tags provided by user + disable-consumer-stats: + type: boolean + description: Disable consumer group metrics + kafka-consumer-check-instances: + type: integer + format: int64 + minimum: 1 + maximum: 100 + exclusiveMinimum: false exclusiveMaximum: false - description: Rsyslog server port - sd: - type: string - maxLength: 1024 - description: Structured data block for log message - max-message-size: + description: Number of separate instances to fetch kafka consumer statistics + with + kafka-consumer-stats-timeout: type: integer format: int64 - minimum: 2048 - maximum: 2147483647 + minimum: 2 + maximum: 300 exclusiveMinimum: false exclusiveMaximum: false - description: Rsyslog max message size - required: - - server - - port - - tls - - format + description: Number of seconds that datadog will wait to get consumer + statistics from brokers + max-partition-contexts: + type: integer + format: int64 + minimum: 200 + maximum: 200000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of partition contexts to send + description: External integration DataDog configuration sos-bucket-usage: type: object properties: @@ -4663,6 +4769,58 @@ components: min-age: type: string description: Kubelet image GC options + dbaas-endpoint-datadog-input-create: + type: object + properties: + settings: + type: object + properties: + datadog-api-key: + type: string + maxLength: 256 + minLength: 1 + pattern: "^[A-Za-z0-9]{1,256}$" + description: Datadog API key + site: + "$ref": "#/components/schemas/enum-datadog-site" + description: Datadog intake site. Defaults to datadoghq.com + datadog-tags: + type: array + items: + "$ref": "#/components/schemas/dbaas-datadog-tag" + description: Custom tags provided by user + disable-consumer-stats: + type: boolean + description: Disable consumer group metrics + kafka-consumer-check-instances: + type: integer + format: int64 + minimum: 1 + maximum: 100 + exclusiveMinimum: false + exclusiveMaximum: false + description: Number of separate instances to fetch kafka consumer statistics + with + kafka-consumer-stats-timeout: + type: integer + format: int64 + minimum: 2 + maximum: 300 + exclusiveMinimum: false + exclusiveMaximum: false + description: Number of seconds that datadog will wait to get consumer + statistics from brokers + max-partition-contexts: + type: integer + format: int64 + minimum: 200 + maximum: 200000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of partition contexts to send + required: + - datadog-api-key + - site dbaas-pg-pool-username: type: string maxLength: 64 @@ -5022,6 +5180,43 @@ components: title: type: string description: A JSON schema of additional settings of the integration. + dbaas-endpoint-datadog-common: + type: object + properties: + datadog-tags: + type: array + items: + "$ref": "#/components/schemas/dbaas-datadog-tag" + description: Custom tags provided by user + disable-consumer-stats: + type: boolean + description: Disable consumer group metrics + kafka-consumer-check-instances: + type: integer + format: int64 + minimum: 1 + maximum: 100 + exclusiveMinimum: false + exclusiveMaximum: false + description: Number of separate instances to fetch kafka consumer statistics + with + kafka-consumer-stats-timeout: + type: integer + format: int64 + minimum: 2 + maximum: 300 + exclusiveMinimum: false + exclusiveMaximum: false + description: Number of seconds that datadog will wait to get consumer statistics + from brokers + max-partition-contexts: + type: integer + format: int64 + minimum: 200 + maximum: 200000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of partition contexts to send sks-nodepool: type: object properties: @@ -5572,6 +5767,55 @@ components: description: Maximum age of the oldest infrequent backup in service types supporting different backup schedules description: DBaaS plan backup config + dbaas-endpoint-datadog-input-update: + type: object + properties: + settings: + type: object + properties: + datadog-api-key: + type: string + maxLength: 256 + minLength: 1 + pattern: "^[A-Za-z0-9]{1,256}$" + description: Datadog API key + site: + "$ref": "#/components/schemas/enum-datadog-site" + description: Datadog intake site. Defaults to datadoghq.com + datadog-tags: + type: array + items: + "$ref": "#/components/schemas/dbaas-datadog-tag" + description: Custom tags provided by user + disable-consumer-stats: + type: boolean + description: Disable consumer group metrics + kafka-consumer-check-instances: + type: integer + format: int64 + minimum: 1 + maximum: 100 + exclusiveMinimum: false + exclusiveMaximum: false + description: Number of separate instances to fetch kafka consumer statistics + with + kafka-consumer-stats-timeout: + type: integer + format: int64 + minimum: 2 + maximum: 300 + exclusiveMinimum: false + exclusiveMaximum: false + description: Number of seconds that datadog will wait to get consumer + statistics from brokers + max-partition-contexts: + type: integer + format: int64 + minimum: 200 + maximum: 200000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of partition contexts to send dbaas-service-redis: type: object properties: @@ -5762,6 +6006,50 @@ components: - de-fra-1 - bg-sof-1 - at-vie-2 + dbaas-endpoint-datadog-settings: + type: object + properties: + settings: + type: object + properties: + site: + "$ref": "#/components/schemas/enum-datadog-site" + description: Datadog intake site. Defaults to datadoghq.com + datadog-tags: + type: array + items: + "$ref": "#/components/schemas/dbaas-datadog-tag" + description: Custom tags provided by user + disable-consumer-stats: + type: boolean + description: Disable consumer group metrics + kafka-consumer-check-instances: + type: integer + format: int64 + minimum: 1 + maximum: 100 + exclusiveMinimum: false + exclusiveMaximum: false + description: Number of separate instances to fetch kafka consumer statistics + with + kafka-consumer-stats-timeout: + type: integer + format: int64 + minimum: 2 + maximum: 300 + exclusiveMinimum: false + exclusiveMaximum: false + description: Number of seconds that datadog will wait to get consumer + statistics from brokers + max-partition-contexts: + type: integer + format: int64 + minimum: 200 + maximum: 200000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of partition contexts to send + description: External integration DataDog configuration dbaas-kafka-acl-id: type: string maxLength: 40 @@ -6177,19 +6465,9 @@ components: format: uuid description: External integration endpoint id settings: - "$ref": "#/components/schemas/dbaas-endpoint-rsyslog" + "$ref": "#/components/schemas/dbaas-endpoint-rsyslog-optional-fields" description: External integration RSyslog configuration - dbaas-user-postgres-secrets: - type: object - properties: - username: - type: string - description: Postgres username - password: - type: string - description: Postgres password - description: Postgres User secrets - dbaas-endpoint-elasticsearch-payload: + dbaas-endpoint-elasticsearch-input-update: type: object properties: settings: @@ -6226,61 +6504,116 @@ components: exclusiveMinimum: false exclusiveMaximum: false description: Elasticsearch request timeout limit - required: - - url - - index-prefix - dbaas-endpoint-datadog-payload: + dbaas-user-postgres-secrets: + type: object + properties: + username: + type: string + description: Postgres username + password: + type: string + description: Postgres password + description: Postgres User secrets + dbaas-endpoint-rsyslog-input-create: type: object properties: settings: type: object properties: - datadog-api-key: + format: + "$ref": "#/components/schemas/enum-rsyslog-format" + description: Message format + key: type: string - maxLength: 256 + maxLength: 16384 + description: PEM encoded client key + logline: + type: string + maxLength: 512 minLength: 1 - pattern: "^[A-Za-z0-9]{1,256}$" - description: Datadog API key - site: - "$ref": "#/components/schemas/enum-datadog-site" - description: Datadog intake site. Defaults to datadoghq.com - datadog-tags: - type: array - items: - "$ref": "#/components/schemas/dbaas-datadog-tag" - description: Custom tags provided by user - disable-consumer-stats: + pattern: "^[ -~\\t]+$" + description: Custom syslog message format + server: + type: string + maxLength: 255 + minLength: 4 + description: Rsyslog server IP address or hostname + ca: + type: string + maxLength: 16384 + description: PEM encoded CA certificate + cert: + type: string + maxLength: 16384 + description: PEM encoded client certificate + tls: type: boolean - description: Disable consumer group metrics - kafka-consumer-check-instances: + description: Require TLS + port: type: integer format: int64 minimum: 1 - maximum: 100 + maximum: 65535 exclusiveMinimum: false exclusiveMaximum: false - description: Number of separate instances to fetch kafka consumer statistics - with - kafka-consumer-stats-timeout: + description: Rsyslog server port + sd: + type: string + maxLength: 1024 + description: Structured data block for log message + max-message-size: type: integer format: int64 - minimum: 2 - maximum: 300 + minimum: 2048 + maximum: 2147483647 exclusiveMinimum: false exclusiveMaximum: false - description: Number of seconds that datadog will wait to get consumer - statistics from brokers - max-partition-contexts: + description: Rsyslog max message size + required: + - server + - port + - tls + - format + dbaas-endpoint-opensearch-input-create: + type: object + properties: + settings: + type: object + properties: + ca: + type: string + maxLength: 16384 + description: PEM encoded CA certificate + url: + type: string + maxLength: 2048 + minLength: 12 + description: OpenSearch connection URL + index-prefix: + type: string + maxLength: 1000 + minLength: 1 + pattern: "^[a-z0-9][a-z0-9-_.]+$" + description: OpenSearch index prefix + index-days-max: type: integer format: int64 - minimum: 200 - maximum: 200000 + minimum: 1 + maximum: 10000 exclusiveMinimum: false exclusiveMaximum: false - description: Maximum number of partition contexts to send + description: Maximum number of days of logs to keep + timeout: + type: integer + format: int64 + minimum: 10.0 + maximum: 120.0 + exclusiveMinimum: false + exclusiveMaximum: false + description: OpenSearch request timeout limit required: - - datadog-api-key - - site + - url + - index-prefix dbaas-service-type-name: type: string maxLength: 64 @@ -6448,6 +6781,36 @@ components: type: boolean required: - username + dbaas-endpoint-opensearch-optional-fields: + type: object + properties: + url: + type: string + maxLength: 2048 + minLength: 12 + description: OpenSearch connection URL + index-prefix: + type: string + maxLength: 1000 + minLength: 1 + pattern: "^[a-z0-9][a-z0-9-_.]+$" + description: OpenSearch index prefix + index-days-max: + type: integer + format: int64 + minimum: 1 + maximum: 10000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of days of logs to keep + timeout: + type: integer + format: int64 + minimum: 10.0 + maximum: 120.0 + exclusiveMinimum: false + exclusiveMaximum: false + description: OpenSearch request timeout limit json-schema-redis: properties: ssl: @@ -7131,6 +7494,36 @@ components: type: integer title: OpenSearch settings type: object + dbaas-endpoint-elasticsearch-optional-fields: + type: object + properties: + url: + type: string + maxLength: 2048 + minLength: 12 + description: Elasticsearch connection URL + index-prefix: + type: string + maxLength: 1000 + minLength: 1 + pattern: "^[a-z0-9][a-z0-9-_.]+$" + description: Elasticsearch index prefix + index-days-max: + type: integer + format: int64 + minimum: 1 + maximum: 10000 + exclusiveMinimum: false + exclusiveMaximum: false + description: Maximum number of days of logs to keep + timeout: + type: integer + format: int64 + minimum: 10.0 + maximum: 120.0 + exclusiveMinimum: false + exclusiveMaximum: false + description: Elasticsearch request timeout limit dbaas-database-name: type: string maxLength: 40 @@ -7251,48 +7644,6 @@ components: - backup-time - data-size description: List of backups for the service - dbaas-endpoint-datadog: - type: object - properties: - site: - "$ref": "#/components/schemas/enum-datadog-site" - description: Datadog intake site. Defaults to datadoghq.com - datadog-tags: - type: array - items: - "$ref": "#/components/schemas/dbaas-datadog-tag" - description: Custom tags provided by user - disable-consumer-stats: - type: boolean - description: Disable consumer group metrics - kafka-consumer-check-instances: - type: integer - format: int64 - minimum: 1 - maximum: 100 - exclusiveMinimum: false - exclusiveMaximum: false - description: Number of separate instances to fetch kafka consumer statistics - with - kafka-consumer-stats-timeout: - type: integer - format: int64 - minimum: 2 - maximum: 300 - exclusiveMinimum: false - exclusiveMaximum: false - description: Number of seconds that datadog will wait to get consumer statistics - from brokers - max-partition-contexts: - type: integer - format: int64 - minimum: 200 - maximum: 200000 - exclusiveMinimum: false - exclusiveMaximum: false - description: Maximum number of partition contexts to send - required: - - site dbaas-endpoint-prometheus: type: object properties: @@ -7432,30 +7783,97 @@ paths: operationId: update-load-balancer-service get: tags: - - network-load-balancer + - network-load-balancer + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/load-balancer-service" + description: '' + parameters: + - in: path + required: true + name: id + schema: + type: string + format: uuid + - in: path + required: true + name: service-id + schema: + type: string + format: uuid + summary: Retrieve Load Balancer Service details + operationId: get-load-balancer-service + "/dbaas-external-endpoint-opensearch/{endpoint-id}": + delete: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Delete OpenSearch logs external integration endpoint" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + operationId: delete-dbaas-external-endpoint-opensearch + get: + tags: + - dbaas responses: '200': description: '200' content: application/json: schema: - "$ref": "#/components/schemas/load-balancer-service" - description: '' + "$ref": "#/components/schemas/dbaas-endpoint-opensearch-output" + description: "[BETA] Get OpenSearch Logs external integration endpoint settings" parameters: - in: path required: true - name: id + name: endpoint-id schema: type: string format: uuid + summary: '' + operationId: get-dbaas-external-endpoint-opensearch + put: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Update OpenSearch Logs external integration endpoint" + parameters: - in: path required: true - name: service-id + name: endpoint-id schema: type: string format: uuid - summary: Retrieve Load Balancer Service details - operationId: get-load-balancer-service + summary: '' + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-endpoint-opensearch-input-update" + operationId: update-dbaas-external-endpoint-opensearch "/dbaas-opensearch/{name}/acl-config": get: tags: @@ -8021,73 +8439,6 @@ paths: - name - database-name operationId: create-dbaas-pg-connection-pool - "/dbaas-external-endpoint-prometheus/{id}": - get: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-endpoint-external-prometheus-output" - description: "[BETA] Get Prometheus external integration endpoint settings" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: get-dbaas-external-endpoint-prometheus - delete: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Delete Prometheus external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: delete-dbaas-external-endpoint-prometheus - put: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Update Prometheus external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - requestBody: - required: true - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-endpoint-prometheus-payload" - operationId: update-dbaas-external-endpoint-prometheus "/dbaas-mysql/{name}": put: tags: @@ -8531,6 +8882,73 @@ paths: required: - instance operationId: attach-instance-to-private-network + "/dbaas-external-endpoint-elasticsearch/{endpoint-id}": + delete: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Delete ElasticSearch logs external integration endpoint" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + operationId: delete-dbaas-external-endpoint-elasticsearch + get: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-endpoint-elasticsearch-output" + description: "[BETA] Get ElasticSearch Logs external integration endpoint settings" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + operationId: get-dbaas-external-endpoint-elasticsearch + put: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Update ElasticSearch Logs external integration endpoint" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-endpoint-elasticsearch-input-update" + operationId: update-dbaas-external-endpoint-elasticsearch "/dbaas-mysql/{service-name}/user": post: tags: @@ -8936,7 +9354,7 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/dbaas-endpoint-rsyslog-payload" + "$ref": "#/components/schemas/dbaas-endpoint-rsyslog-input-create" operationId: create-dbaas-external-endpoint-rsyslog "/sks-cluster-kubeconfig/{id}": post: @@ -9577,93 +9995,26 @@ paths: network requestBody: required: true - content: - application/json: - schema: - type: object - properties: - ip: - type: string - format: ipv4 - description: Static IP address lease for the corresponding network - interface - instance: - type: object - properties: - id: - type: string - format: uuid - description: Instance ID - required: - - id - operationId: update-private-network-instance-ip - "/dbaas-external-endpoint-rsyslog/{id}": - delete: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Delete RSyslog external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: delete-dbaas-external-endpoint-rsyslog - put: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Update RSyslog external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - requestBody: - required: true - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-endpoint-rsyslog-payload" - operationId: update-dbaas-external-endpoint-rsyslog - get: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-external-endpoint-rsyslog-output" - description: "[BETA] Get RSyslog external integration endpoint settings" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: get-dbaas-external-endpoint-rsyslog + content: + application/json: + schema: + type: object + properties: + ip: + type: string + format: ipv4 + description: Static IP address lease for the corresponding network + interface + instance: + type: object + properties: + id: + type: string + format: uuid + description: Instance ID + required: + - id + operationId: update-private-network-instance-ip "/sks-cluster/{id}/nodepool/{sks-nodepool-id}": put: tags: @@ -9951,6 +10302,27 @@ paths: "$ref": "#/components/schemas/dbaas-service-name" summary: '' operationId: list-dbaas-external-integrations + "/dbaas-external-integration/{integration-id}": + get: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-external-integration" + description: "[BETA] Get a DBaaS external integration" + parameters: + - in: path + required: true + name: integration-id + schema: + type: string + format: uuid + summary: '' + operationId: get-dbaas-external-integration "/instance-pool/{id}": delete: tags: @@ -10577,6 +10949,73 @@ paths: "$ref": "#/components/schemas/dbaas-user-username" summary: Delete a DBaaS OpenSearch user operationId: delete-dbaas-opensearch-user + "/dbaas-external-endpoint-prometheus/{endpoint-id}": + get: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-endpoint-external-prometheus-output" + description: "[BETA] Get Prometheus external integration endpoint settings" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + operationId: get-dbaas-external-endpoint-prometheus + delete: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Delete Prometheus external integration endpoint" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + operationId: delete-dbaas-external-endpoint-prometheus + put: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Update Prometheus external integration endpoint" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-endpoint-prometheus-payload" + operationId: update-dbaas-external-endpoint-prometheus "/block-storage/{id}:create-snapshot": post: tags: @@ -11417,73 +11856,6 @@ paths: required: - database-name operationId: create-dbaas-pg-database - "/dbaas-external-endpoint-opensearch/{id}": - delete: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Delete OpenSearch logs external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: delete-dbaas-external-endpoint-opensearch - get: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-endpoint-opensearch-output" - description: "[BETA] Get OpenSearch Logs external integration endpoint settings" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: get-dbaas-external-endpoint-opensearch - put: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Update OpenSearch Logs external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - requestBody: - required: true - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-endpoint-opensearch-payload" - operationId: update-dbaas-external-endpoint-opensearch "/security-group/{id}/rules": post: tags: @@ -11994,7 +12366,7 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/dbaas-endpoint-opensearch-payload" + "$ref": "#/components/schemas/dbaas-endpoint-opensearch-input-create" operationId: create-dbaas-external-endpoint-opensearch "/dbaas-mysql/{service-name}/database/{database-name}": delete: @@ -12707,7 +13079,7 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/dbaas-endpoint-datadog-payload" + "$ref": "#/components/schemas/dbaas-endpoint-datadog-input-create" operationId: create-dbaas-external-endpoint-datadog "/dbaas-mysql/{name}/maintenance/start": put: @@ -13018,18 +13390,103 @@ paths: parameters: - in: path required: true - name: service-name - schema: - "$ref": "#/components/schemas/dbaas-service-name" - - in: path - required: true - name: username + name: service-name + schema: + "$ref": "#/components/schemas/dbaas-service-name" + - in: path + required: true + name: username + schema: + "$ref": "#/components/schemas/dbaas-user-username" + summary: Reveal the secrets of a DBaaS Kafka user + operationId: reveal-dbaas-kafka-user-password + "/dbaas-task-migration-check/{service}": + post: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: Create a DBaaS task to check migration + parameters: + - in: path + required: true + name: service + schema: + "$ref": "#/components/schemas/dbaas-service-name" + summary: '' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + source-service-uri: + type: string + maxLength: 512 + minLength: 1 + description: Service URI of the source MySQL or PostgreSQL database + with admin credentials. + method: + "$ref": "#/components/schemas/enum-migration-method" + description: The migration method to be used (currently supported + only by Redis and MySQL service types) + ignore-dbs: + type: string + maxLength: 2048 + minLength: 1 + description: Comma-separated list of databases, which should be + ignored during migration (supported by MySQL only at the moment) + required: + - source-service-uri + operationId: create-dbaas-task-migration-check + "/dbaas-external-endpoint-datadog/{endpoint-id}": + delete: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Delete DataDog external integration endpoint" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + operationId: delete-dbaas-external-endpoint-datadog + get: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-external-endpoint-datadog-output" + description: "[BETA] Get DataDog external endpoint settings" + parameters: + - in: path + required: true + name: endpoint-id schema: - "$ref": "#/components/schemas/dbaas-user-username" - summary: Reveal the secrets of a DBaaS Kafka user - operationId: reveal-dbaas-kafka-user-password - "/dbaas-task-migration-check/{service}": - post: + type: string + format: uuid + summary: '' + operationId: get-dbaas-external-endpoint-datadog + put: tags: - dbaas responses: @@ -13039,40 +13496,22 @@ paths: application/json: schema: "$ref": "#/components/schemas/operation" - description: Create a DBaaS task to check migration + description: "[BETA] Update DataDog external integration endpoint" parameters: - in: path required: true - name: service + name: endpoint-id schema: - "$ref": "#/components/schemas/dbaas-service-name" + type: string + format: uuid summary: '' requestBody: required: true content: application/json: schema: - type: object - properties: - source-service-uri: - type: string - maxLength: 512 - minLength: 1 - description: Service URI of the source MySQL or PostgreSQL database - with admin credentials. - method: - "$ref": "#/components/schemas/enum-migration-method" - description: The migration method to be used (currently supported - only by Redis and MySQL service types) - ignore-dbs: - type: string - maxLength: 2048 - minLength: 1 - description: Comma-separated list of databases, which should be - ignored during migration (supported by MySQL only at the moment) - required: - - source-service-uri - operationId: create-dbaas-task-migration-check + "$ref": "#/components/schemas/dbaas-endpoint-datadog-input-update" + operationId: update-dbaas-external-endpoint-datadog "/load-balancer/{id}/service": post: tags: @@ -13346,73 +13785,6 @@ paths: parameters: [] summary: List SKS clusters operationId: list-sks-clusters - "/dbaas-external-endpoint-elasticsearch/{id}": - delete: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Delete ElasticSearch logs external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: delete-dbaas-external-endpoint-elasticsearch - get: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-endpoint-elasticsearch-output" - description: "[BETA] Get ElasticSearch Logs external integration endpoint settings" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: get-dbaas-external-endpoint-elasticsearch - put: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Update ElasticSearch Logs external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - requestBody: - required: true - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-endpoint-elasticsearch-payload" - operationId: update-dbaas-external-endpoint-elasticsearch "/block-storage/{id}:detach": put: tags: @@ -14886,6 +15258,73 @@ paths: required: - plan operationId: create-dbaas-service-grafana + "/dbaas-external-endpoint-rsyslog/{endpoint-id}": + delete: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Delete RSyslog external integration endpoint" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + operationId: delete-dbaas-external-endpoint-rsyslog + put: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/operation" + description: "[BETA] Update RSyslog external integration endpoint" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-endpoint-rsyslog-input-update" + operationId: update-dbaas-external-endpoint-rsyslog + get: + tags: + - dbaas + responses: + '200': + description: '200' + content: + application/json: + schema: + "$ref": "#/components/schemas/dbaas-external-endpoint-rsyslog-output" + description: "[BETA] Get RSyslog external integration endpoint settings" + parameters: + - in: path + required: true + name: endpoint-id + schema: + type: string + format: uuid + summary: '' + operationId: get-dbaas-external-endpoint-rsyslog "/sks-cluster/{id}/nodepool": post: tags: @@ -15023,7 +15462,7 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/dbaas-endpoint-elasticsearch-payload" + "$ref": "#/components/schemas/dbaas-endpoint-elasticsearch-input-create" operationId: create-dbaas-external-endpoint-elasticsearch "/dbaas-redis/{service-name}/user/{username}/password/reset": put: @@ -16379,73 +16818,6 @@ paths: type: string summary: Delete a Postgres service operationId: delete-dbaas-service-pg - "/dbaas-external-endpoint-datadog/{id}": - delete: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Delete DataDog external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: delete-dbaas-external-endpoint-datadog - get: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-external-endpoint-datadog-output" - description: "[BETA] Get DataDog external endpoint settings" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: get-dbaas-external-endpoint-datadog - put: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/operation" - description: "[BETA] Update DataDog external integration endpoint" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - requestBody: - required: true - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-endpoint-datadog-payload" - operationId: update-dbaas-external-endpoint-datadog "/dbaas-integration": post: tags: @@ -17163,27 +17535,6 @@ paths: "$ref": "#/components/schemas/dbaas-user-password" description: New password operationId: reset-dbaas-postgres-user-password - "/dbaas-external-integration/{id}": - get: - tags: - - dbaas - responses: - '200': - description: '200' - content: - application/json: - schema: - "$ref": "#/components/schemas/dbaas-external-integration" - description: "[BETA] Get a DBaaS external integration" - parameters: - - in: path - required: true - name: id - schema: - type: string - format: uuid - summary: '' - operationId: get-dbaas-external-integration x-topics: - title: API Request Signature content: |2+ diff --git a/v3/operations.go b/v3/operations.go index 7d3fb4408..298a89aec 100755 --- a/v3/operations.go +++ b/v3/operations.go @@ -1220,8 +1220,8 @@ func (c Client) GetDBAASCACertificate(ctx context.Context) (*GetDBAASCACertifica } // [BETA] Delete DataDog external integration endpoint -func (c Client) DeleteDBAASExternalEndpointDatadog(ctx context.Context, id UUID) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-datadog/%v", id) +func (c Client) DeleteDBAASExternalEndpointDatadog(ctx context.Context, endpointID UUID) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-datadog/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "DELETE", c.serverEndpoint+path, nil) if err != nil { @@ -1264,8 +1264,8 @@ func (c Client) DeleteDBAASExternalEndpointDatadog(ctx context.Context, id UUID) } // [BETA] Get DataDog external endpoint settings -func (c Client) GetDBAASExternalEndpointDatadog(ctx context.Context, id UUID) (*DBAASExternalEndpointDatadogOutput, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-datadog/%v", id) +func (c Client) GetDBAASExternalEndpointDatadog(ctx context.Context, endpointID UUID) (*DBAASExternalEndpointDatadogOutput, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-datadog/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "GET", c.serverEndpoint+path, nil) if err != nil { @@ -1308,8 +1308,8 @@ func (c Client) GetDBAASExternalEndpointDatadog(ctx context.Context, id UUID) (* } // [BETA] Update DataDog external integration endpoint -func (c Client) UpdateDBAASExternalEndpointDatadog(ctx context.Context, id UUID, req DBAASEndpointDatadogPayload) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-datadog/%v", id) +func (c Client) UpdateDBAASExternalEndpointDatadog(ctx context.Context, endpointID UUID, req DBAASEndpointDatadogInputUpdate) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-datadog/%v", endpointID) body, err := prepareJSONBody(req) if err != nil { @@ -1359,7 +1359,7 @@ func (c Client) UpdateDBAASExternalEndpointDatadog(ctx context.Context, id UUID, } // [BETA] Create DataDog external integration endpoint -func (c Client) CreateDBAASExternalEndpointDatadog(ctx context.Context, name string, req DBAASEndpointDatadogPayload) (*Operation, error) { +func (c Client) CreateDBAASExternalEndpointDatadog(ctx context.Context, name string, req DBAASEndpointDatadogInputCreate) (*Operation, error) { path := fmt.Sprintf("/dbaas-external-endpoint-datadog/%v", name) body, err := prepareJSONBody(req) @@ -1410,8 +1410,8 @@ func (c Client) CreateDBAASExternalEndpointDatadog(ctx context.Context, name str } // [BETA] Delete ElasticSearch logs external integration endpoint -func (c Client) DeleteDBAASExternalEndpointElasticsearch(ctx context.Context, id UUID) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-elasticsearch/%v", id) +func (c Client) DeleteDBAASExternalEndpointElasticsearch(ctx context.Context, endpointID UUID) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-elasticsearch/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "DELETE", c.serverEndpoint+path, nil) if err != nil { @@ -1454,8 +1454,8 @@ func (c Client) DeleteDBAASExternalEndpointElasticsearch(ctx context.Context, id } // [BETA] Get ElasticSearch Logs external integration endpoint settings -func (c Client) GetDBAASExternalEndpointElasticsearch(ctx context.Context, id UUID) (*DBAASEndpointElasticsearchOutput, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-elasticsearch/%v", id) +func (c Client) GetDBAASExternalEndpointElasticsearch(ctx context.Context, endpointID UUID) (*DBAASEndpointElasticsearchOutput, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-elasticsearch/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "GET", c.serverEndpoint+path, nil) if err != nil { @@ -1498,8 +1498,8 @@ func (c Client) GetDBAASExternalEndpointElasticsearch(ctx context.Context, id UU } // [BETA] Update ElasticSearch Logs external integration endpoint -func (c Client) UpdateDBAASExternalEndpointElasticsearch(ctx context.Context, id UUID, req DBAASEndpointElasticsearchPayload) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-elasticsearch/%v", id) +func (c Client) UpdateDBAASExternalEndpointElasticsearch(ctx context.Context, endpointID UUID, req DBAASEndpointElasticsearchInputUpdate) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-elasticsearch/%v", endpointID) body, err := prepareJSONBody(req) if err != nil { @@ -1549,7 +1549,7 @@ func (c Client) UpdateDBAASExternalEndpointElasticsearch(ctx context.Context, id } // [BETA] Create ElasticSearch Logs external integration endpoint -func (c Client) CreateDBAASExternalEndpointElasticsearch(ctx context.Context, name string, req DBAASEndpointElasticsearchPayload) (*Operation, error) { +func (c Client) CreateDBAASExternalEndpointElasticsearch(ctx context.Context, name string, req DBAASEndpointElasticsearchInputCreate) (*Operation, error) { path := fmt.Sprintf("/dbaas-external-endpoint-elasticsearch/%v", name) body, err := prepareJSONBody(req) @@ -1600,8 +1600,8 @@ func (c Client) CreateDBAASExternalEndpointElasticsearch(ctx context.Context, na } // [BETA] Delete OpenSearch logs external integration endpoint -func (c Client) DeleteDBAASExternalEndpointOpensearch(ctx context.Context, id UUID) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-opensearch/%v", id) +func (c Client) DeleteDBAASExternalEndpointOpensearch(ctx context.Context, endpointID UUID) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-opensearch/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "DELETE", c.serverEndpoint+path, nil) if err != nil { @@ -1644,8 +1644,8 @@ func (c Client) DeleteDBAASExternalEndpointOpensearch(ctx context.Context, id UU } // [BETA] Get OpenSearch Logs external integration endpoint settings -func (c Client) GetDBAASExternalEndpointOpensearch(ctx context.Context, id UUID) (*DBAASEndpointOpensearchOutput, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-opensearch/%v", id) +func (c Client) GetDBAASExternalEndpointOpensearch(ctx context.Context, endpointID UUID) (*DBAASEndpointOpensearchOutput, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-opensearch/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "GET", c.serverEndpoint+path, nil) if err != nil { @@ -1688,8 +1688,8 @@ func (c Client) GetDBAASExternalEndpointOpensearch(ctx context.Context, id UUID) } // [BETA] Update OpenSearch Logs external integration endpoint -func (c Client) UpdateDBAASExternalEndpointOpensearch(ctx context.Context, id UUID, req DBAASEndpointOpensearchPayload) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-opensearch/%v", id) +func (c Client) UpdateDBAASExternalEndpointOpensearch(ctx context.Context, endpointID UUID, req DBAASEndpointOpensearchInputUpdate) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-opensearch/%v", endpointID) body, err := prepareJSONBody(req) if err != nil { @@ -1739,7 +1739,7 @@ func (c Client) UpdateDBAASExternalEndpointOpensearch(ctx context.Context, id UU } // [BETA] Create OpenSearch Logs external integration endpoint -func (c Client) CreateDBAASExternalEndpointOpensearch(ctx context.Context, name string, req DBAASEndpointOpensearchPayload) (*Operation, error) { +func (c Client) CreateDBAASExternalEndpointOpensearch(ctx context.Context, name string, req DBAASEndpointOpensearchInputCreate) (*Operation, error) { path := fmt.Sprintf("/dbaas-external-endpoint-opensearch/%v", name) body, err := prepareJSONBody(req) @@ -1790,8 +1790,8 @@ func (c Client) CreateDBAASExternalEndpointOpensearch(ctx context.Context, name } // [BETA] Delete Prometheus external integration endpoint -func (c Client) DeleteDBAASExternalEndpointPrometheus(ctx context.Context, id UUID) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-prometheus/%v", id) +func (c Client) DeleteDBAASExternalEndpointPrometheus(ctx context.Context, endpointID UUID) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-prometheus/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "DELETE", c.serverEndpoint+path, nil) if err != nil { @@ -1834,8 +1834,8 @@ func (c Client) DeleteDBAASExternalEndpointPrometheus(ctx context.Context, id UU } // [BETA] Get Prometheus external integration endpoint settings -func (c Client) GetDBAASExternalEndpointPrometheus(ctx context.Context, id UUID) (*DBAASEndpointExternalPrometheusOutput, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-prometheus/%v", id) +func (c Client) GetDBAASExternalEndpointPrometheus(ctx context.Context, endpointID UUID) (*DBAASEndpointExternalPrometheusOutput, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-prometheus/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "GET", c.serverEndpoint+path, nil) if err != nil { @@ -1878,8 +1878,8 @@ func (c Client) GetDBAASExternalEndpointPrometheus(ctx context.Context, id UUID) } // [BETA] Update Prometheus external integration endpoint -func (c Client) UpdateDBAASExternalEndpointPrometheus(ctx context.Context, id UUID, req DBAASEndpointPrometheusPayload) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-prometheus/%v", id) +func (c Client) UpdateDBAASExternalEndpointPrometheus(ctx context.Context, endpointID UUID, req DBAASEndpointPrometheusPayload) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-prometheus/%v", endpointID) body, err := prepareJSONBody(req) if err != nil { @@ -1980,8 +1980,8 @@ func (c Client) CreateDBAASExternalEndpointPrometheus(ctx context.Context, name } // [BETA] Delete RSyslog external integration endpoint -func (c Client) DeleteDBAASExternalEndpointRsyslog(ctx context.Context, id UUID) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-rsyslog/%v", id) +func (c Client) DeleteDBAASExternalEndpointRsyslog(ctx context.Context, endpointID UUID) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-rsyslog/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "DELETE", c.serverEndpoint+path, nil) if err != nil { @@ -2024,8 +2024,8 @@ func (c Client) DeleteDBAASExternalEndpointRsyslog(ctx context.Context, id UUID) } // [BETA] Get RSyslog external integration endpoint settings -func (c Client) GetDBAASExternalEndpointRsyslog(ctx context.Context, id UUID) (*DBAASExternalEndpointRsyslogOutput, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-rsyslog/%v", id) +func (c Client) GetDBAASExternalEndpointRsyslog(ctx context.Context, endpointID UUID) (*DBAASExternalEndpointRsyslogOutput, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-rsyslog/%v", endpointID) request, err := http.NewRequestWithContext(ctx, "GET", c.serverEndpoint+path, nil) if err != nil { @@ -2068,8 +2068,8 @@ func (c Client) GetDBAASExternalEndpointRsyslog(ctx context.Context, id UUID) (* } // [BETA] Update RSyslog external integration endpoint -func (c Client) UpdateDBAASExternalEndpointRsyslog(ctx context.Context, id UUID, req DBAASEndpointRsyslogPayload) (*Operation, error) { - path := fmt.Sprintf("/dbaas-external-endpoint-rsyslog/%v", id) +func (c Client) UpdateDBAASExternalEndpointRsyslog(ctx context.Context, endpointID UUID, req DBAASEndpointRsyslogInputUpdate) (*Operation, error) { + path := fmt.Sprintf("/dbaas-external-endpoint-rsyslog/%v", endpointID) body, err := prepareJSONBody(req) if err != nil { @@ -2119,7 +2119,7 @@ func (c Client) UpdateDBAASExternalEndpointRsyslog(ctx context.Context, id UUID, } // [BETA] Create RSyslog external integration endpoint -func (c Client) CreateDBAASExternalEndpointRsyslog(ctx context.Context, name string, req DBAASEndpointRsyslogPayload) (*Operation, error) { +func (c Client) CreateDBAASExternalEndpointRsyslog(ctx context.Context, name string, req DBAASEndpointRsyslogInputCreate) (*Operation, error) { path := fmt.Sprintf("/dbaas-external-endpoint-rsyslog/%v", name) body, err := prepareJSONBody(req) @@ -2499,8 +2499,8 @@ func (c Client) UpdateDBAASExternalIntegrationSettingsDatadog(ctx context.Contex } // [BETA] Get a DBaaS external integration -func (c Client) GetDBAASExternalIntegration(ctx context.Context, id UUID) (*DBAASExternalIntegration, error) { - path := fmt.Sprintf("/dbaas-external-integration/%v", id) +func (c Client) GetDBAASExternalIntegration(ctx context.Context, integrationID UUID) (*DBAASExternalIntegration, error) { + path := fmt.Sprintf("/dbaas-external-integration/%v", integrationID) request, err := http.NewRequestWithContext(ctx, "GET", c.serverEndpoint+path, nil) if err != nil { @@ -2546,17 +2546,6 @@ type ListDBAASExternalIntegrationsResponse struct { ExternalIntegrations []DBAASExternalIntegration `json:"external-integrations,omitempty"` } -// FindDBAASExternalIntegration attempts to find an DBAASExternalIntegration by id. -func (l ListDBAASExternalIntegrationsResponse) FindDBAASExternalIntegration(id string) (DBAASExternalIntegration, error) { - for i, elem := range l.ExternalIntegrations { - if string(elem.ID) == id { - return l.ExternalIntegrations[i], nil - } - } - - return DBAASExternalIntegration{}, fmt.Errorf("%q not found in ListDBAASExternalIntegrationsResponse: %w", id, ErrNotFound) -} - // [BETA] List all DBaaS connections between services and external endpoints func (c Client) ListDBAASExternalIntegrations(ctx context.Context, serviceName string) (*ListDBAASExternalIntegrationsResponse, error) { path := fmt.Sprintf("/dbaas-external-integrations/%v", serviceName) diff --git a/v3/schemas.go b/v3/schemas.go index 11bf5dc02..08611a503 100755 --- a/v3/schemas.go +++ b/v3/schemas.go @@ -198,7 +198,7 @@ type DBAASDatadogTag struct { Tag string `json:"tag" validate:"required,gte=1,lte=200"` } -type DBAASEndpointDatadog struct { +type DBAASEndpointDatadogCommon struct { // Custom tags provided by user DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"` // Disable consumer group metrics @@ -208,11 +208,10 @@ type DBAASEndpointDatadog struct { // Number of seconds that datadog will wait to get consumer statistics from brokers KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"` // Maximum number of partition contexts to send - MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"` - Site EnumDatadogSite `json:"site" validate:"required"` + MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"` } -type DBAASEndpointDatadogPayloadSettings struct { +type DBAASEndpointDatadogInputCreateSettings struct { // Datadog API key DatadogAPIKey string `json:"datadog-api-key" validate:"required,gte=1,lte=256"` // Custom tags provided by user @@ -228,13 +227,48 @@ type DBAASEndpointDatadogPayloadSettings struct { Site EnumDatadogSite `json:"site" validate:"required"` } -type DBAASEndpointDatadogPayload struct { - Settings *DBAASEndpointDatadogPayloadSettings `json:"settings,omitempty"` +type DBAASEndpointDatadogInputCreate struct { + Settings *DBAASEndpointDatadogInputCreateSettings `json:"settings,omitempty"` } -type DBAASEndpointDatadogSecrets struct { +type DBAASEndpointDatadogInputUpdateSettings struct { // Datadog API key - DatadogAPIKey string `json:"datadog-api-key" validate:"required,gte=1,lte=256"` + DatadogAPIKey string `json:"datadog-api-key,omitempty" validate:"omitempty,gte=1,lte=256"` + // Custom tags provided by user + DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"` + // Disable consumer group metrics + DisableConsumerStats *bool `json:"disable-consumer-stats,omitempty"` + // Number of separate instances to fetch kafka consumer statistics with + KafkaConsumerCheckInstances int64 `json:"kafka-consumer-check-instances,omitempty" validate:"omitempty,gte=1,lte=100"` + // Number of seconds that datadog will wait to get consumer statistics from brokers + KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"` + // Maximum number of partition contexts to send + MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"` + Site EnumDatadogSite `json:"site,omitempty"` +} + +type DBAASEndpointDatadogInputUpdate struct { + Settings *DBAASEndpointDatadogInputUpdateSettings `json:"settings,omitempty"` +} + +// External integration DataDog configuration +type DBAASEndpointDatadogSettingsSettings struct { + // Custom tags provided by user + DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"` + // Disable consumer group metrics + DisableConsumerStats *bool `json:"disable-consumer-stats,omitempty"` + // Number of separate instances to fetch kafka consumer statistics with + KafkaConsumerCheckInstances int64 `json:"kafka-consumer-check-instances,omitempty" validate:"omitempty,gte=1,lte=100"` + // Number of seconds that datadog will wait to get consumer statistics from brokers + KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"` + // Maximum number of partition contexts to send + MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"` + Site EnumDatadogSite `json:"site,omitempty"` +} + +type DBAASEndpointDatadogSettings struct { + // External integration DataDog configuration + Settings *DBAASEndpointDatadogSettingsSettings `json:"settings,omitempty"` } type DBAASEndpointElasticsearch struct { @@ -248,16 +282,7 @@ type DBAASEndpointElasticsearch struct { URL string `json:"url" validate:"required,gte=12,lte=2048"` } -type DBAASEndpointElasticsearchOutput struct { - // External integration endpoint id - ID UUID `json:"id,omitempty"` - // External integration endpoint name - Name string `json:"name,omitempty"` - Settings *DBAASEndpointElasticsearch `json:"settings,omitempty"` - Type EnumExternalEndpointTypes `json:"type,omitempty"` -} - -type DBAASEndpointElasticsearchPayloadSettings struct { +type DBAASEndpointElasticsearchInputCreateSettings struct { // PEM encoded CA certificate CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"` // Maximum number of days of logs to keep @@ -270,8 +295,45 @@ type DBAASEndpointElasticsearchPayloadSettings struct { URL string `json:"url" validate:"required,gte=12,lte=2048"` } -type DBAASEndpointElasticsearchPayload struct { - Settings *DBAASEndpointElasticsearchPayloadSettings `json:"settings,omitempty"` +type DBAASEndpointElasticsearchInputCreate struct { + Settings *DBAASEndpointElasticsearchInputCreateSettings `json:"settings,omitempty"` +} + +type DBAASEndpointElasticsearchInputUpdateSettings struct { + // PEM encoded CA certificate + CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"` + // Maximum number of days of logs to keep + IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"` + // Elasticsearch index prefix + IndexPrefix string `json:"index-prefix,omitempty" validate:"omitempty,gte=1,lte=1000"` + // Elasticsearch request timeout limit + Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"` + // Elasticsearch connection URL + URL string `json:"url,omitempty" validate:"omitempty,gte=12,lte=2048"` +} + +type DBAASEndpointElasticsearchInputUpdate struct { + Settings *DBAASEndpointElasticsearchInputUpdateSettings `json:"settings,omitempty"` +} + +type DBAASEndpointElasticsearchOptionalFields struct { + // Maximum number of days of logs to keep + IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"` + // Elasticsearch index prefix + IndexPrefix string `json:"index-prefix,omitempty" validate:"omitempty,gte=1,lte=1000"` + // Elasticsearch request timeout limit + Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"` + // Elasticsearch connection URL + URL string `json:"url,omitempty" validate:"omitempty,gte=12,lte=2048"` +} + +type DBAASEndpointElasticsearchOutput struct { + // External integration endpoint id + ID UUID `json:"id,omitempty"` + // External integration endpoint name + Name string `json:"name,omitempty"` + Settings *DBAASEndpointElasticsearchOptionalFields `json:"settings,omitempty"` + Type EnumExternalEndpointTypes `json:"type,omitempty"` } type DBAASEndpointElasticsearchSecrets struct { @@ -279,13 +341,20 @@ type DBAASEndpointElasticsearchSecrets struct { CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"` } +// External integration Prometheus configuration +type DBAASEndpointExternalPrometheusOutputSettings struct { + // Prometheus basic authentication username + BasicAuthUsername string `json:"basic-auth-username,omitempty" validate:"omitempty,gte=5,lte=32"` +} + type DBAASEndpointExternalPrometheusOutput struct { // External integration endpoint id ID UUID `json:"id,omitempty"` // External integration endpoint name - Name string `json:"name,omitempty"` - Settings *DBAASEndpointPrometheus `json:"settings,omitempty"` - Type EnumExternalEndpointTypes `json:"type,omitempty"` + Name string `json:"name,omitempty"` + // External integration Prometheus configuration + Settings *DBAASEndpointExternalPrometheusOutputSettings `json:"settings,omitempty"` + Type EnumExternalEndpointTypes `json:"type,omitempty"` } type DBAASEndpointOpensearch struct { @@ -299,16 +368,7 @@ type DBAASEndpointOpensearch struct { URL string `json:"url" validate:"required,gte=12,lte=2048"` } -type DBAASEndpointOpensearchOutput struct { - // External integration endpoint id - ID UUID `json:"id,omitempty"` - // External integration endpoint name - Name string `json:"name,omitempty"` - Settings *DBAASEndpointOpensearch `json:"settings,omitempty"` - Type EnumExternalEndpointTypes `json:"type,omitempty"` -} - -type DBAASEndpointOpensearchPayloadSettings struct { +type DBAASEndpointOpensearchInputCreateSettings struct { // PEM encoded CA certificate CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"` // Maximum number of days of logs to keep @@ -321,8 +381,45 @@ type DBAASEndpointOpensearchPayloadSettings struct { URL string `json:"url" validate:"required,gte=12,lte=2048"` } -type DBAASEndpointOpensearchPayload struct { - Settings *DBAASEndpointOpensearchPayloadSettings `json:"settings,omitempty"` +type DBAASEndpointOpensearchInputCreate struct { + Settings *DBAASEndpointOpensearchInputCreateSettings `json:"settings,omitempty"` +} + +type DBAASEndpointOpensearchInputUpdateSettings struct { + // PEM encoded CA certificate + CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"` + // Maximum number of days of logs to keep + IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"` + // OpenSearch index prefix + IndexPrefix string `json:"index-prefix,omitempty" validate:"omitempty,gte=1,lte=1000"` + // OpenSearch request timeout limit + Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"` + // OpenSearch connection URL + URL string `json:"url,omitempty" validate:"omitempty,gte=12,lte=2048"` +} + +type DBAASEndpointOpensearchInputUpdate struct { + Settings *DBAASEndpointOpensearchInputUpdateSettings `json:"settings,omitempty"` +} + +type DBAASEndpointOpensearchOptionalFields struct { + // Maximum number of days of logs to keep + IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"` + // OpenSearch index prefix + IndexPrefix string `json:"index-prefix,omitempty" validate:"omitempty,gte=1,lte=1000"` + // OpenSearch request timeout limit + Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"` + // OpenSearch connection URL + URL string `json:"url,omitempty" validate:"omitempty,gte=12,lte=2048"` +} + +type DBAASEndpointOpensearchOutput struct { + // External integration endpoint id + ID UUID `json:"id,omitempty"` + // External integration endpoint name + Name string `json:"name,omitempty"` + Settings *DBAASEndpointOpensearchOptionalFields `json:"settings,omitempty"` + Type EnumExternalEndpointTypes `json:"type,omitempty"` } type DBAASEndpointOpensearchSecrets struct { @@ -367,7 +464,7 @@ type DBAASEndpointRsyslog struct { Tls *bool `json:"tls" validate:"required"` } -type DBAASEndpointRsyslogPayloadSettings struct { +type DBAASEndpointRsyslogInputCreateSettings struct { // PEM encoded CA certificate CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"` // PEM encoded client certificate @@ -389,8 +486,50 @@ type DBAASEndpointRsyslogPayloadSettings struct { Tls *bool `json:"tls" validate:"required"` } -type DBAASEndpointRsyslogPayload struct { - Settings *DBAASEndpointRsyslogPayloadSettings `json:"settings,omitempty"` +type DBAASEndpointRsyslogInputCreate struct { + Settings *DBAASEndpointRsyslogInputCreateSettings `json:"settings,omitempty"` +} + +type DBAASEndpointRsyslogInputUpdateSettings struct { + // PEM encoded CA certificate + CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"` + // PEM encoded client certificate + Cert string `json:"cert,omitempty" validate:"omitempty,lte=16384"` + Format EnumRsyslogFormat `json:"format,omitempty"` + // PEM encoded client key + Key string `json:"key,omitempty" validate:"omitempty,lte=16384"` + // Custom syslog message format + Logline string `json:"logline,omitempty" validate:"omitempty,gte=1,lte=512"` + // Rsyslog max message size + MaxMessageSize int64 `json:"max-message-size,omitempty" validate:"omitempty,gte=2048,lte=2.147483647e+09"` + // Rsyslog server port + Port int64 `json:"port,omitempty" validate:"omitempty,gte=1,lte=65535"` + // Structured data block for log message + SD string `json:"sd,omitempty" validate:"omitempty,lte=1024"` + // Rsyslog server IP address or hostname + Server string `json:"server,omitempty" validate:"omitempty,gte=4,lte=255"` + // Require TLS + Tls *bool `json:"tls,omitempty"` +} + +type DBAASEndpointRsyslogInputUpdate struct { + Settings *DBAASEndpointRsyslogInputUpdateSettings `json:"settings,omitempty"` +} + +type DBAASEndpointRsyslogOptionalFields struct { + Format EnumRsyslogFormat `json:"format,omitempty"` + // Custom syslog message format + Logline string `json:"logline,omitempty" validate:"omitempty,gte=1,lte=512"` + // Rsyslog max message size + MaxMessageSize int64 `json:"max-message-size,omitempty" validate:"omitempty,gte=2048,lte=2.147483647e+09"` + // Rsyslog server port + Port int64 `json:"port,omitempty" validate:"omitempty,gte=1,lte=65535"` + // Structured data block for log message + SD string `json:"sd,omitempty" validate:"omitempty,lte=1024"` + // Rsyslog server IP address or hostname + Server string `json:"server,omitempty" validate:"omitempty,gte=4,lte=255"` + // Require TLS + Tls *bool `json:"tls,omitempty"` } type DBAASEndpointRsyslogSecrets struct { @@ -410,22 +549,38 @@ type DBAASExternalEndpoint struct { Type EnumExternalEndpointTypes `json:"type,omitempty"` } +// External integration DataDog configuration +type DBAASExternalEndpointDatadogOutputSettings struct { + // Custom tags provided by user + DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"` + // Disable consumer group metrics + DisableConsumerStats *bool `json:"disable-consumer-stats,omitempty"` + // Number of separate instances to fetch kafka consumer statistics with + KafkaConsumerCheckInstances int64 `json:"kafka-consumer-check-instances,omitempty" validate:"omitempty,gte=1,lte=100"` + // Number of seconds that datadog will wait to get consumer statistics from brokers + KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"` + // Maximum number of partition contexts to send + MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"` + Site EnumDatadogSite `json:"site,omitempty"` +} + type DBAASExternalEndpointDatadogOutput struct { // External integration endpoint id ID UUID `json:"id,omitempty"` // External integration endpoint name - Name string `json:"name,omitempty"` - Settings *DBAASEndpointDatadog `json:"settings,omitempty"` - Type EnumExternalEndpointTypes `json:"type,omitempty"` + Name string `json:"name,omitempty"` + // External integration DataDog configuration + Settings *DBAASExternalEndpointDatadogOutputSettings `json:"settings,omitempty"` + Type EnumExternalEndpointTypes `json:"type,omitempty"` } type DBAASExternalEndpointRsyslogOutput struct { // External integration endpoint id ID UUID `json:"id,omitempty"` // External integration endpoint name - Name string `json:"name,omitempty"` - Settings *DBAASEndpointRsyslog `json:"settings,omitempty"` - Type EnumExternalEndpointTypes `json:"type,omitempty"` + Name string `json:"name,omitempty"` + Settings *DBAASEndpointRsyslogOptionalFields `json:"settings,omitempty"` + Type EnumExternalEndpointTypes `json:"type,omitempty"` } // Integrations with other services @@ -437,7 +592,7 @@ type DBAASExternalIntegration struct { // External destination endpoint name DestEndpointName string `json:"dest-endpoint-name,omitempty"` // Endpoint integration UUID - ID UUID `json:"id,omitempty"` + IntegrationID UUID `json:"integration-id,omitempty"` // DBaaS source service name SourceServiceName string `json:"source-service-name" validate:"required"` SourceServiceType DBAASServiceTypeName `json:"source-service-type" validate:"required,gte=0,lte=64"`