diff --git a/cloud-controlplane/cloud-controlplane.yaml b/cloud-controlplane/cloud-controlplane.yaml index 5bd6bba..93b580c 100644 --- a/cloud-controlplane/cloud-controlplane.yaml +++ b/cloud-controlplane/cloud-controlplane.yaml @@ -20,6 +20,17 @@ components: - arn title: Instance Profile type: object + AWSPeeringSpec: + properties: + peer_owner_id: + title: |- + their aws vpn id + these are aws terms + type: string + peer_vpc_id: + type: string + title: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpcPeeringConnection.html + type: object AWSPrivateLink: properties: allowed_principals: @@ -132,6 +143,18 @@ components: type: object Anytime: type: object + AzurePeeringSpec: + properties: + peer_resource_group: + type: string + peer_subscription_id: + type: string + peer_tenant_id: + type: string + peer_vnet_name: + type: string + title: https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-manage-peering?tabs=peering-portal + type: object AzurePrivateLink: properties: allowed_subscriptions: @@ -264,6 +287,43 @@ components: - CLOUD_PROVIDER_GCP - CLOUD_PROVIDER_AZURE type: string + CloudProviderStatus: + properties: + aws: + $ref: '#/components/schemas/CloudProviderStatus.AWS' + azure: + $ref: '#/components/schemas/CloudProviderStatus.Azure' + gcp: + $ref: '#/components/schemas/CloudProviderStatus.GCP' + type: object + CloudProviderStatus.AWS: + properties: + accepter_cidr_block: + type: string + expiration_time: + format: date-time + type: string + status: + type: string + status_message: + type: string + type: object + CloudProviderStatus.Azure: + properties: + peering_level: + type: string + peering_state: + type: string + status: + type: string + type: object + CloudProviderStatus.GCP: + properties: + status: + type: string + status_message: + type: string + type: object Cluster: description: Resource describing a Cluster. properties: @@ -834,6 +894,28 @@ components: operation: $ref: '#/components/schemas/v1.Operation' type: object + CreateNetworkPeeringBody: + properties: + network_peering: + properties: + aws: + $ref: '#/components/schemas/AWSPeeringSpec' + azure: + $ref: '#/components/schemas/AzurePeeringSpec' + cloud_provider: + $ref: '#/components/schemas/CloudProvider' + display_name: + type: string + gcp: + $ref: '#/components/schemas/GCPPeeringSpec' + type: object + type: object + CreateNetworkPeeringOperation: + description: CreateNetworkPeeringOperation is the response of the create network peering rpc. + properties: + operation: + $ref: '#/components/schemas/v1.Operation' + type: object CreateNetworkRequest: description: CreateNetworkRequest is the request of CreateNetwork. properties: @@ -904,6 +986,32 @@ components: user_invite: $ref: '#/components/schemas/UserInvite' type: object + Created: + properties: + aws: + $ref: '#/components/schemas/Created.AWS' + azure: + $ref: '#/components/schemas/Created.Azure' + gcp: + $ref: '#/components/schemas/Created.GCP' + type: object + Created.AWS: + properties: + vpc_peering_connection_id: + type: string + type: object + Created.Azure: + properties: + application_id: + type: string + application_object_id: + type: string + type: object + Created.GCP: + properties: + vpc_network_peering_name: + type: string + type: object CustomerManagedAWSCloudStorageBucket: description: AWS storage bucket properties by ARN. properties: @@ -1092,6 +1200,12 @@ components: operation: $ref: '#/components/schemas/v1.Operation' type: object + DeleteNetworkPeeringOperation: + description: DeleteNetworkPeeringOperation is the response of the delete network peering rpc. + properties: + operation: + $ref: '#/components/schemas/v1.Operation' + type: object DeleteNetworkResponse: description: DeleteNetworkResponse is the response of DeleteNetwork. type: object @@ -1267,6 +1381,14 @@ components: - k8s_master_ipv4_range title: Subnet type: object + GCPPeeringSpec: + properties: + peer_project_id: + type: string + peer_vpc_name: + type: string + title: https://cloud.google.com/vpc/docs/vpc-peering + type: object GCPPrivateServiceConnect: properties: consumer_accept_list: @@ -1388,6 +1510,18 @@ components: GetCurrentOrganizationResponse the response of the the GetCurrentOrganization rpc type: object + GetNetworkPeeringRequest: + properties: + id: + type: string + network_id: + type: string + type: object + GetNetworkPeeringResponse: + properties: + network_peering: + $ref: '#/components/schemas/NetworkPeering' + type: object GetNetworkResponse: description: GetNetworkRequest is the request of GetNetwork. properties: @@ -1574,6 +1708,13 @@ components: description: Page token to fetch the next page. The value can be used as `next_page_token` in the next call to this endpoint. type: string type: object + ListNetworkPeeringsResponse: + properties: + network_peerings: + items: + $ref: '#/components/schemas/NetworkPeering' + type: array + type: object ListNetworksRequest.Filter: properties: cloud_provider: @@ -1693,6 +1834,9 @@ components: name_contains: description: Name of cluster. Partial match. type: string + private_link_id: + title: Private link ID of Serverless cluster + type: string resource_group_id: description: Resource group ID of Serverless cluster. type: string @@ -1988,6 +2132,72 @@ components: - cluster_type title: Network details type: object + NetworkPeering: + properties: + aws: + $ref: '#/components/schemas/AWSPeeringSpec' + azure: + $ref: '#/components/schemas/AzurePeeringSpec' + cloud_provider: + $ref: '#/components/schemas/CloudProvider' + created_at: + format: date-time + type: string + deleted_at: + format: date-time + type: string + display_name: + description: name can be set by the caller. unique within an organization. + type: string + gcp: + $ref: '#/components/schemas/GCPPeeringSpec' + id: + title: id is set by the server as a xid + type: string + network_id: + title: xid of the redpanda network resource this peering should apply to + type: string + state: + $ref: '#/components/schemas/NetworkPeering.State' + status: + $ref: '#/components/schemas/NetworkPeeringStatus' + updated_at: + format: date-time + type: string + type: object + NetworkPeering.State: + description: |- + state is information describing the network_peering lifecycle. It is only + modified by the control plane. + enum: + - STATE_CREATING + - STATE_PENDING_ACCEPTANCE + - STATE_READY + - STATE_DELETING + - STATE_FAILED + type: string + NetworkPeeringCreate: + properties: + aws: + $ref: '#/components/schemas/AWSPeeringSpec' + azure: + $ref: '#/components/schemas/AzurePeeringSpec' + cloud_provider: + $ref: '#/components/schemas/CloudProvider' + display_name: + type: string + gcp: + $ref: '#/components/schemas/GCPPeeringSpec' + network_id: + type: string + type: object + NetworkPeeringStatus: + properties: + cloud_provider: + $ref: '#/components/schemas/CloudProviderStatus' + created: + $ref: '#/components/schemas/Created' + type: object NullValue: description: |- `NullValue` is a singleton enumeration to represent the null value for the @@ -2016,6 +2226,11 @@ components: - TYPE_CREATE_SERVERLESS_PRIVATE_LINK - TYPE_UPDATE_SERVERLESS_PRIVATE_LINK - TYPE_DELETE_SERVERLESS_PRIVATE_LINK + - TYPE_CREATE_NETWORK_PEERING + - TYPE_DELETE_NETWORK_PEERING + - TYPE_CREATE_SHADOW_LINK + - TYPE_UPDATE_SHADOW_LINK + - TYPE_DELETE_SHADOW_LINK type: string OperationMetadata: description: Metadata of the long-running Operation. Contains in-progress information. @@ -2181,20 +2396,6 @@ components: title: status is the status of the Azure PE type: string type: object - PrivateLink.State: - description: |2- - - STATE_DISABLED: Private link is being created. - - STATE_LINKING: Private link is being created. - - STATE_READY: Private link is ready to use. - - STATE_UNLINKING: Private link is being deleted. - - STATE_FAILED: Private link is in an error state. - enum: - - STATE_DISABLED - - STATE_LINKING - - STATE_READY - - STATE_UNLINKING - - STATE_FAILED - type: string PrivateLinkAuthMode: description: |- Private link authentication mode. @@ -2541,12 +2742,14 @@ components: description: Unique name of the Serverless cluster. example: development-ServerlessCluster type: string - network: - $ref: '#/components/schemas/ServerlessCluster.NetworkingConfig' + networking_config: + $ref: '#/components/schemas/ServerlessNetworkingConfig' planned_deletion: $ref: '#/components/schemas/PlannedDeletion' - private_link: - $ref: '#/components/schemas/ServerlessCluster.PrivateLink' + private_link_id: + nullable: true + readOnly: true + type: string resource_group_id: description: Resource group ID of the cluster. example: a0b40af9-0250-48ca-9417-783ed127ce42 @@ -2570,7 +2773,7 @@ components: properties: private_url: description: |- - The private URL of the data plane API, if private networking + private_url is the private url of the dataplane api if private networking is enabled for this cluster. readOnly: true type: string @@ -2594,31 +2797,12 @@ components: title: Kafka API seed brokers (also known as bootstrap servers). Implicitly public type: array type: object - ServerlessCluster.NetworkingConfig: - properties: - private: - $ref: '#/components/schemas/ServerlessCluster.NetworkingConfig.State' - public: - $ref: '#/components/schemas/ServerlessCluster.NetworkingConfig.State' - type: object - ServerlessCluster.NetworkingConfig.State: - enum: - - STATE_DISABLED - - STATE_ENABLED - type: string - ServerlessCluster.PrivateLink: - properties: - id: - type: string - state: - $ref: '#/components/schemas/PrivateLink.State' - type: object ServerlessCluster.SchemaRegistryStatus: description: Cluster's Schema Registry properties. properties: private_url: readOnly: true - title: Private URL for the schema registry + title: Private url for the schema registry type: string url: readOnly: true @@ -2663,6 +2847,28 @@ components: - serverless_region title: ServerlessClusterCreate type: object + ServerlessClusterUpdate: + description: Resource describing an Update Serverless Cluster. + properties: + id: + description: ID of the vcluster. + type: string + required: + - id + title: ServerlessClusterUpdate + type: object + ServerlessNetworkingConfig: + properties: + private: + $ref: '#/components/schemas/ServerlessNetworkingConfig.State' + public: + $ref: '#/components/schemas/ServerlessNetworkingConfig.State' + type: object + ServerlessNetworkingConfig.State: + enum: + - STATE_DISABLED + - STATE_ENABLED + type: string ServerlessRegion: description: Resource describing a ServerlessRegion. properties: @@ -2854,6 +3060,7 @@ components: UpdateClusterType: enum: - UPDATE_CLUSTER_TYPE_CUSTOMER_CONFIG + - UPDATE_CLUSTER_TYPE_SCALING type: string UpdateOrganizationResponse: properties: @@ -2880,6 +3087,15 @@ components: $ref: '#/components/schemas/ResourceGroup' title: UpdateResourceGroupResponse is the response of UpdateResourceGroup type: object + UpdateServerlessClusterBody: + description: UpdateServerlessClusterRequest is the request of UpdateServerlessCluster. + type: object + UpdateServerlessClusterOperation: + description: UpdateServerlessClusterOperation is the response of the update cluster rpc. + properties: + operation: + $ref: '#/components/schemas/v1.Operation' + type: object UpdateServiceAccountBody: properties: service_account: @@ -3772,6 +3988,162 @@ paths: summary: Get cluster tags: - Clusters + /v1/network/{network_id}/network-peerings: + get: + description: List Redpanda networks peerings. + operationId: NetworkPeeringService_ListNetworkPeerings + parameters: + - in: path + name: network_id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListNetworkPeeringsResponse' + description: OK + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: List network peerings + tags: + - Network Peerings + /v1/network/{network_id}/network-peerings/{id}: + delete: + description: Delete a Redpanda network peering. + operationId: NetworkPeeringService_DeleteNetworkPeering + parameters: + - in: path + name: network_id + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + responses: + "202": + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNetworkPeeringOperation' + description: Delete request accepted + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Delete network peering + tags: + - Network Peerings + get: + description: Get information about a Redpanda network peering. + operationId: NetworkPeeringService_GetNetworkPeering + parameters: + - in: path + name: network_id + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GetNetworkPeeringRequest' + description: OK + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Get network peering + tags: + - Network Peerings + /v1/network/{network_peering.network_id}/network-peerings: + post: + description: Create a Redpanda network pering. + operationId: NetworkPeeringService_CreateNetworkPeering + parameters: + - in: path + name: network_peering.network_id + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNetworkPeeringBody' + required: true + x-originalParamName: body + responses: + "202": + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNetworkPeeringOperation' + description: Accepted + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Create network peering + tags: + - Network Peerings /v1/networks: get: description: List Redpanda networks. @@ -4014,6 +4386,11 @@ paths: - TYPE_CREATE_SERVERLESS_PRIVATE_LINK - TYPE_UPDATE_SERVERLESS_PRIVATE_LINK - TYPE_DELETE_SERVERLESS_PRIVATE_LINK + - TYPE_CREATE_NETWORK_PEERING + - TYPE_DELETE_NETWORK_PEERING + - TYPE_CREATE_SHADOW_LINK + - TYPE_UPDATE_SHADOW_LINK + - TYPE_DELETE_SHADOW_LINK type: string type: array - in: query @@ -4914,6 +5291,11 @@ paths: name: filter.serverless_region schema: type: string + - description: Private link ID of Serverless cluster + in: query + name: filter.private_link_id + schema: + type: string - description: Limit the paginated response to a number of items. in: query name: page_size @@ -5073,6 +5455,51 @@ paths: summary: Get Serverless cluster tags: - Serverless Clusters + patch: + description: Update a Redpanda serverless cluster. + operationId: ServerlessClusterService_UpdateServerlessCluster + parameters: + - description: ID of the virtual cluster. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateServerlessClusterBody' + required: true + x-originalParamName: body + responses: + "202": + content: + application/json: + schema: + $ref: '#/components/schemas/ServerlessClusterUpdate' + description: Accepted + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Update serverless cluster + tags: + - Serverless Clusters /v1/serverless/region: get: description: Get Redpanda Serverless region. @@ -5733,6 +6160,8 @@ tags: name: Clusters - description: Manage Redpanda Cloud networks. name: Networks + - description: Manage Redpanda Cloud network peerings. + name: Network Peerings - description: Get information about available Redpanda regions. name: Regions - description: Manage Redpanda Cloud resource groups. diff --git a/cloud-dataplane/cloud-dataplane.yaml b/cloud-dataplane/cloud-dataplane.yaml index 7d75e27..10e50b7 100644 --- a/cloud-dataplane/cloud-dataplane.yaml +++ b/cloud-dataplane/cloud-dataplane.yaml @@ -72,6 +72,45 @@ components: description: The topic name. type: string type: object + AnnotatedOption: + properties: + description: + type: string + value: + type: string + title: AnnotatedOption represents an annotated option + type: object + AuthenticationInfo: + properties: + mechanism: + $ref: '#/components/schemas/AuthenticationMechanism' + state: + $ref: '#/components/schemas/AuthenticationState' + user_principal: + title: Authenticated user principal + type: string + title: Other Messages + type: object + AuthenticationMechanism: + enum: + - AUTHENTICATION_MECHANISM_MTLS + - AUTHENTICATION_MECHANISM_SASL_SCRAM + - AUTHENTICATION_MECHANISM_SASL_OAUTHBEARER + - AUTHENTICATION_MECHANISM_SASL_PLAIN + - AUTHENTICATION_MECHANISM_SASL_GSSAPI + title: |- + - AUTHENTICATION_MECHANISM_MTLS: Mutual TLS using client certificates + - AUTHENTICATION_MECHANISM_SASL_SCRAM: SASL SCRAM + - AUTHENTICATION_MECHANISM_SASL_OAUTHBEARER: SASL OAUTHBEARER (OAuth 2.0 / OpenID Connect) + - AUTHENTICATION_MECHANISM_SASL_PLAIN: SASL PLAIN (username/password in plaintext) + - AUTHENTICATION_MECHANISM_SASL_GSSAPI: SASL GSSAPI (Kerberos) + type: string + AuthenticationState: + enum: + - AUTHENTICATION_STATE_UNAUTHENTICATED + - AUTHENTICATION_STATE_SUCCESS + - AUTHENTICATION_STATE_FAILURE + type: string BadRequest: description: |- Describes violations in a client request. This error type focuses on the @@ -123,6 +162,136 @@ components: $ref: '#/components/schemas/SuccessfulEntity' type: array type: object + BloblangFunctionSpec: + description: BloblangFunctionSpec represents a Bloblang function specification. + properties: + categories: + items: + type: string + type: array + description: + type: string + examples: + items: + type: string + type: array + name: + type: string + params: + $ref: '#/components/schemas/ParamSpec' + status: + type: string + version: + type: string + type: object + BloblangMethodSpec: + description: BloblangMethodSpec represents a Bloblang method specification. + properties: + categories: + items: + type: string + type: array + description: + type: string + examples: + items: + type: string + type: array + name: + type: string + params: + $ref: '#/components/schemas/ParamSpec' + status: + type: string + version: + type: string + type: object + ComponentList: + description: ComponentList contains the structured component data. + properties: + bloblang_functions: + items: + $ref: '#/components/schemas/BloblangFunctionSpec' + type: array + bloblang_methods: + items: + $ref: '#/components/schemas/BloblangMethodSpec' + type: array + buffers: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + caches: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + inputs: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + metrics: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + outputs: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + processors: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + rate_limits: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + scanners: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + tracers: + items: + $ref: '#/components/schemas/ComponentSpec' + type: array + version: + type: string + type: object + ComponentSpec: + description: ComponentSpec represents a component specification. + properties: + categories: + items: + type: string + type: array + config: + $ref: '#/components/schemas/FieldSpec' + description: + type: string + examples: + items: + type: string + type: array + footnotes: + type: string + name: + type: string + status: + $ref: '#/components/schemas/ComponentStatus' + summary: + type: string + type: + type: string + version: + type: string + type: object + ComponentStatus: + description: ComponentStatus represents the stability level of a component. + enum: + - COMPONENT_STATUS_STABLE + - COMPONENT_STATUS_BETA + - COMPONENT_STATUS_EXPERIMENTAL + - COMPONENT_STATUS_DEPRECATED + type: string Config: properties: name: @@ -212,7 +381,7 @@ components: info: $ref: '#/components/schemas/ConnectCluster.Info' name: - description: Unique name of Connect cluster. For Redpanda Cloud, the value is `redpanda`. + description: Unique name of connect cluster. For Redpanda Cloud, the value is `redpanda`. type: string plugins: items: @@ -745,6 +914,44 @@ components: error_message: type: string type: object + FieldSpec: + description: FieldSpec represents a field specification. + properties: + advanced: + type: boolean + annotated_options: + items: + $ref: '#/components/schemas/AnnotatedOption' + type: array + children: + items: + $ref: '#/components/schemas/FieldSpec' + type: array + default_value: + type: string + deprecated: + type: boolean + description: + type: string + examples: + items: + type: string + type: array + interpolated: + items: + type: string + type: array + kind: + type: string + name: + type: string + optional: + type: boolean + type: + type: string + version: + type: string + type: object FieldViolation: description: A message type used to describe a single bad request field. properties: @@ -903,6 +1110,142 @@ components: type: array title: Help type: object + InFlightRequests: + properties: + has_more_requests: + description: |- + Whether there are more in-flight requests than those in + `sampled_in_flight_requests`. + type: boolean + sampled_in_flight_requests: + items: + $ref: '#/components/schemas/Request' + title: A sample (e.g., the 5 latest) of the currently in-flight requests + type: array + type: object + KafkaConnection: + properties: + api_versions: + additionalProperties: + format: int32 + type: integer + description: |- + This map records, for each Kafka API, the highest version number observed + in requests on this connection. It can be useful for understanding which + protocol versions a client supports or has negotiated with the broker. + Only APIs that were actually used (i.e. at least one request was seen) + are included. + + Example: + { 0: 11, 1: 13 } + means that for API key 0 (Produce), version 11 was the highest seen, + and for API key 1 (Fetch), version 13 was the highest seen. + + Reference: + - https://kafka.apache.org/0101/protocol.html#protocol_api_keys + - https://kafka.apache.org/0101/protocol.html#protocol_compatibility + type: object + authentication_info: + $ref: '#/components/schemas/AuthenticationInfo' + client_id: + description: |- + Client identifier included in every request sent by the Kafka client. + This is typically a configurable property (client.id) set by the + application when creating a producer or consumer, and is often used for + metrics, quotas, and debugging. + type: string + client_software_name: + description: |- + Name of the client library, reported automatically in ApiVersions v3+ + requests. This is set by the client implementation and is not typically + configurable by applications. + type: string + client_software_version: + description: |- + Version of the client library, reported automatically in ApiVersions v3+ + requests. Like client_software_name, this is set by the + client and not usually configurable by applications. + type: string + close_time: + description: |- + When the connection was closed. This field is set only when the + connection state is "closed". + format: date-time + type: string + group_id: + description: |- + Most recent group ID seen in requests sent over this connection. This + typically refers to a consumer group, but the Kafka group protocol is + more general and may also be used by other types of clients that + coordinate membership and assignments through the broker. + type: string + group_instance_id: + description: |- + Most recent group instance ID seen in requests sent over this connection. + This is used when static membership is enabled, allowing a specific + client instance to retain its group membership across restarts. + type: string + group_member_id: + description: |- + Most recent group member ID seen in requests sent over this connection. + This is the unique identifier assigned by the broker to a particular + member of the group. + type: string + idle_duration: + title: How long the connection has been idle (no in-flight requests) + type: string + in_flight_requests: + $ref: '#/components/schemas/InFlightRequests' + listener_name: + description: |- + Name of the Kafka listener that accepted this connection. + A listener is a named broker endpoint (for example, "internal", + "external", or "sasl_tls"). Each listener defines its network address and + enforces its protocol and authentication policy. + type: string + node_id: + format: int32 + title: Broker node ID + type: integer + open_time: + format: date-time + title: When the broker accepted the connection + type: string + recent_request_statistics: + $ref: '#/components/schemas/RequestStatistics' + shard_id: + format: int64 + title: Broker shard that handles the connection + type: integer + source: + $ref: '#/components/schemas/Source' + state: + $ref: '#/components/schemas/KafkaConnectionState' + tls_info: + $ref: '#/components/schemas/TLSInfo' + total_request_statistics: + $ref: '#/components/schemas/RequestStatistics' + transactional_id: + title: Most recent transactional ID seen in requests sent over this connection + type: string + uid: + title: Kafka connection UUID + type: string + title: Kafka connection details for a broker + type: object + KafkaConnectionState: + description: |- + - KAFKA_CONNECTION_STATE_OPEN: The connection is accepting requests. + - KAFKA_CONNECTION_STATE_ABORTING: The connection is aborting ongoing requests and about to be closed. + This is a transient state between open and closed that should rarely be + observable under normal circumstances. + - KAFKA_CONNECTION_STATE_CLOSED: The connection has been closed. + enum: + - KAFKA_CONNECTION_STATE_OPEN + - KAFKA_CONNECTION_STATE_ABORTING + - KAFKA_CONNECTION_STATE_CLOSED + title: Enums + type: string Link: description: Describes a URL link. properties: @@ -981,9 +1324,28 @@ components: properties: resources: items: - $ref: '#/components/schemas/Resource' + $ref: '#/components/schemas/ListACLsResponse.Resource' type: array type: object + ListACLsResponse.Resource: + properties: + acls: + items: + $ref: '#/components/schemas/Policy' + type: array + resource_name: + description: The name of the resource this ACL targets. + type: string + resource_pattern_type: + $ref: '#/components/schemas/ResourcePatternType' + resource_type: + $ref: '#/components/schemas/ResourceType' + type: object + ListComponentsResponse: + properties: + components: + $ref: '#/components/schemas/ComponentList' + type: object ListConnectClustersResponse: properties: clusters: @@ -1022,6 +1384,33 @@ components: $ref: '#/components/schemas/Secret' type: array type: object + ListKafkaConnectionsResponse: + description: |- + ListKafkaConnectionsResponse is the response from the ListKafkaConnections + RPC. + properties: + connections: + description: |- + The list of connections matching the request. + Note that in addition to open connections, some recently-closed + connections may also be included here. If you don't want to include + closed connections, set the filter in the request to `state = + KAFKA_CONNECTION_STATE_OPEN`. + items: + $ref: '#/components/schemas/KafkaConnection' + type: array + total_size: + format: uint64 + title: |- + Total number of connections matching the request. + This may be greater than `len(connections)` if some connections were + omitted from the response due to the specified (or default) `page_size`. + Example: + request.page_size = 10 + response.connections = [<10 items>] + response.total_size = 13 + type: string + type: object ListMountTasksResponse: properties: tasks: @@ -1041,6 +1430,8 @@ components: name_contains: description: Any pipelines that partially match this name will be returned. type: string + secret_id: + type: string tags[string]: additionalProperties: type: string @@ -1077,6 +1468,38 @@ components: $ref: '#/components/schemas/QuotaEntry' type: array type: object + ListResourcesRequest.Filter: + properties: + scopes: + items: + $ref: '#/components/schemas/Scope' + type: array + secret_id: + type: string + type: object + ListResourcesResponse: + properties: + resources: + items: + $ref: '#/components/schemas/ListResourcesResponse.Resource' + type: array + type: object + ListResourcesResponse.Resource: + properties: + display_name: + type: string + id: + type: string + type: + $ref: '#/components/schemas/ListResourcesResponse.Type' + type: object + ListResourcesResponse.Type: + enum: + - TYPE_PIPELINE + - TYPE_CLUSTER + - TYPE_MCP_SERVER + - TYPE_AI_AGENT + type: string ListRoleMembersRequest.Filter: description: Filter options. properties: @@ -1348,6 +1771,26 @@ components: description: Restart only connectors that have failed. type: boolean type: object + ParamDefinition: + description: ParamDefinition represents a parameter definition. + properties: + default_value: + type: string + description: + type: string + name: + type: string + type: + type: string + type: object + ParamSpec: + description: ParamSpec represents parameter specifications. + properties: + definitions: + items: + $ref: '#/components/schemas/ParamDefinition' + type: array + type: object PartitionStatus: enum: - PARTITION_STATUS_RUNNING @@ -1396,6 +1839,8 @@ components: type: string resources: $ref: '#/components/schemas/Resources' + service_account: + $ref: '#/components/schemas/ServiceAccount' state: $ref: '#/components/schemas/Pipeline.State' status: @@ -1455,6 +1900,8 @@ components: type: string resources: $ref: '#/components/schemas/Resources' + service_account: + $ref: '#/components/schemas/ServiceAccount' tags: additionalProperties: type: string @@ -1477,6 +1924,8 @@ components: type: string resources: $ref: '#/components/schemas/Resources' + service_account: + $ref: '#/components/schemas/ServiceAccount' tags: additionalProperties: type: string @@ -1679,6 +2128,18 @@ components: type: integer type: array type: object + Request: + properties: + api_key: + format: int32 + title: |- + API key for the request type (e.g., produce/fetch/metadata/etc) + https://kafka.apache.org/0101/protocol.html#protocol_api_keys + type: integer + in_flight_duration: + title: How long the request has been in-flight since it was received + type: string + type: object RequestQuotaEntity: properties: entity_name: @@ -1698,19 +2159,26 @@ components: value_type: $ref: '#/components/schemas/ValueType' type: object - Resource: + RequestStatistics: properties: - acls: - items: - $ref: '#/components/schemas/Policy' - type: array - resource_name: - description: The name of the resource this ACL targets. + fetch_bytes: + description: Sum of bytes fetched. + format: uint64 + type: string + produce_batch_count: + format: uint64 + title: |- + Number of produced batches. + Average batch size = produce_bytes / produce_batch_count + type: string + produce_bytes: + description: Sum of bytes produced. + format: uint64 + type: string + request_count: + description: Number of requests the client has made. + format: uint64 type: string - resource_pattern_type: - $ref: '#/components/schemas/ResourcePatternType' - resource_type: - $ref: '#/components/schemas/ResourceType' type: object ResourcePatternType: description: |- @@ -1813,6 +2281,13 @@ components: title: Secret scopes type: array type: object + ServiceAccount: + properties: + client_id: + type: string + client_secret: + type: string + type: object SetConfiguration: properties: name: @@ -1875,6 +2350,14 @@ components: type: object SetTopicPartitionsResponse: type: object + Source: + properties: + ip_address: + type: string + port: + format: int64 + type: integer + type: object StartPipelineResponse: properties: pipeline: @@ -1892,6 +2375,12 @@ components: entity_type: $ref: '#/components/schemas/EntityType' type: object + TLSInfo: + properties: + enabled: + title: Whether TLS is in use + type: boolean + type: object TaskInfo: properties: connector: @@ -3491,7 +3980,7 @@ paths: description: 'List Kafka Connect cluster secrets. Optional: filter based on secret name and labels.' operationId: SecretService_ListKafkaConnectSecrets parameters: - - description: Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`. + - description: Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`. in: path name: cluster_name required: true @@ -3610,7 +4099,7 @@ paths: description: Delete a Kafka Connect cluster secret. operationId: SecretService_DeleteKafkaConnectSecret parameters: - - description: Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`. + - description: Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`. in: path name: cluster_name required: true @@ -3762,6 +4251,95 @@ paths: summary: Update Connect cluster secret tags: - Secrets + /v1/monitoring/kafka/connections: + get: + description: List information on recent connections to the cluster. + operationId: MonitoringService_ListKafkaConnections + parameters: + - description: |- + The maximum number of connections to return. If unspecified or 0, a + default value may be applied. Note that paging is currently not fully + supported, and this field only acts as a limit for the first page of data + returned. Subsequent pages of data cannot be requested. + in: query + name: page_size + schema: + format: int32 + type: integer + - description: |- + Filter expression to apply to the connection list. + Uses a subset of AIP-160 filter syntax supporting: + - Field comparisons (`=`, `!=`, `<`, `>`, `<=`, `>=`) + - Logical AND chaining: condition1 AND condition2 + - Nested field access: parent.child = value + - Escape sequences: field = "string with \"quotes\"" + - Enum types + - RFC3339 timestamps and ISO-like duration + + Limitations (not supported): + - Logical OR chaining + - Parentheses `(` `)` for grouping + - Map and repeated types + - HAS (:) operator + - Negation (-, NOT) + - Bare literal matching + + Example filters: + - `state = KAFKA_CONNECTION_STATE_OPEN` + - `idle_duration > 30s AND total_request_statistics.request_count > 100` + - `authentication_info.user_principal = "my-producer"` + - `recent_request_statistics.produce_bytes > 1000 AND + client_software_name = "kgo"` + - `open_time >= 2025-09-01T10:22:54Z` + + Reference: https://google.aip.dev/160 + in: query + name: filter + schema: + type: string + - description: |- + Field-based ordering specification following AIP-132 syntax. + Supports multiple fields with `asc`/`desc` direction indicators. + Examples: + - `idle_duration desc` - longest idle connections first + - `open_time desc, total_request_statistics.request_count desc` - newest + connections first, then most active + - `recent_request_statistics.produce_bytes desc` - connections with + highest current produce throughput first + + Reference: https://google.aip.dev/132#ordering + in: query + name: order_by + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListKafkaConnectionsResponse' + description: Recent connections + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: List Recent Connections + tags: + - Monitoring /v1/quotas: get: description: List client quotas. Use filter parameters to narrow results by entity type and filter criteria. @@ -3985,6 +4563,43 @@ paths: summary: Delete a quota tags: - Quotas + /v1/redpanda-connect/components: + get: + description: Returns a JSON list of available [components](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about), filtered by component type. + operationId: PipelineService_ListComponents + parameters: + - in: query + name: read_mask + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListComponentsResponse' + description: OK + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Retrieve the list of available components + tags: + - Redpanda Connect Pipelines /v1/redpanda-connect/config-schema: get: description: The configuration schema includes available [components and processors](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about) in this Redpanda Connect instance. @@ -4032,6 +4647,10 @@ paths: name: filter.tags[string] schema: type: string + - in: query + name: filter.secret_id + schema: + type: string - description: Limit the paginated response to a number of items. Defaults to 100. Use -1 to disable pagination. in: query name: page_size @@ -4891,6 +5510,54 @@ paths: summary: Create secret tags: - Secrets + /v1/secrets/resources: + get: + description: Get resources by secret. + operationId: SecretService_ListResources + parameters: + - in: query + name: filter.secret_id + schema: + type: string + - in: query + name: filter.scopes + schema: + items: + enum: + - SCOPE_REDPANDA_CONNECT + - SCOPE_REDPANDA_CLUSTER + - SCOPE_MCP_SERVER + - SCOPE_AI_AGENT + type: string + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListResourcesResponse' + description: OK + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Get resources by secret + tags: + - Secrets /v1/secrets/{id}: delete: description: Delete a secret. @@ -5614,7 +6281,7 @@ paths: schema: $ref: '#/components/schemas/TransformMetadata' description: Created - summary: Deploy transform + summary: Deploy Transform tags: - Wasm Transforms /v1/transforms/{name}: @@ -6012,6 +6679,8 @@ tags: name: Wasm Transforms - description: Manage [connectors](https://docs.redpanda.com/redpanda-cloud/develop/managed-connectors/) and interact with the Kafka Connect API. name: Kafka Connect + - description: Monitoring operations for Redpanda. + name: Monitoring - description: Create and manage [Redpanda Connect](https://docs.redpanda.com/redpanda-cloud/develop/connect/about) pipelines and their configurations. name: Redpanda Connect Pipelines - description: Manage client throughput limits. See [Redpanda Client Throughput Limits](https://docs.redpanda.com/current/manage/cluster-maintenance/manage-throughput/#client-throughput-limits) for more information.