diff --git a/backend/pkg/protogen/redpanda/api/dataplane/v1/dataplanev1connect/pipeline.connect.go b/backend/pkg/protogen/redpanda/api/dataplane/v1/dataplanev1connect/pipeline.connect.go index 1a4450652..21c72fbea 100644 --- a/backend/pkg/protogen/redpanda/api/dataplane/v1/dataplanev1connect/pipeline.connect.go +++ b/backend/pkg/protogen/redpanda/api/dataplane/v1/dataplanev1connect/pipeline.connect.go @@ -59,6 +59,9 @@ const ( // PipelineServiceGetPipelineServiceConfigSchemaProcedure is the fully-qualified name of the // PipelineService's GetPipelineServiceConfigSchema RPC. PipelineServiceGetPipelineServiceConfigSchemaProcedure = "/redpanda.api.dataplane.v1.PipelineService/GetPipelineServiceConfigSchema" + // PipelineServiceListComponentsProcedure is the fully-qualified name of the PipelineService's + // ListComponents RPC. + PipelineServiceListComponentsProcedure = "/redpanda.api.dataplane.v1.PipelineService/ListComponents" // PipelineServiceGetPipelinesForSecretProcedure is the fully-qualified name of the // PipelineService's GetPipelinesForSecret RPC. PipelineServiceGetPipelinesForSecretProcedure = "/redpanda.api.dataplane.v1.PipelineService/GetPipelinesForSecret" @@ -81,6 +84,7 @@ var ( pipelineServiceStopPipelineMethodDescriptor = pipelineServiceServiceDescriptor.Methods().ByName("StopPipeline") pipelineServiceStartPipelineMethodDescriptor = pipelineServiceServiceDescriptor.Methods().ByName("StartPipeline") pipelineServiceGetPipelineServiceConfigSchemaMethodDescriptor = pipelineServiceServiceDescriptor.Methods().ByName("GetPipelineServiceConfigSchema") + pipelineServiceListComponentsMethodDescriptor = pipelineServiceServiceDescriptor.Methods().ByName("ListComponents") pipelineServiceGetPipelinesForSecretMethodDescriptor = pipelineServiceServiceDescriptor.Methods().ByName("GetPipelinesForSecret") pipelineServiceGetPipelinesBySecretsMethodDescriptor = pipelineServiceServiceDescriptor.Methods().ByName("GetPipelinesBySecrets") pipelineServiceLintPipelineConfigMethodDescriptor = pipelineServiceServiceDescriptor.Methods().ByName("LintPipelineConfig") @@ -105,6 +109,8 @@ type PipelineServiceClient interface { StartPipeline(context.Context, *connect.Request[v1.StartPipelineRequest]) (*connect.Response[v1.StartPipelineResponse], error) // The configuration schema includes available [components and processors](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about) in this Redpanda Connect instance. GetPipelineServiceConfigSchema(context.Context, *connect.Request[v1.GetPipelineServiceConfigSchemaRequest]) (*connect.Response[v1.GetPipelineServiceConfigSchemaResponse], error) + // ListComponents returns a JSON containing lists of allowed components based on component type filter. + ListComponents(context.Context, *connect.Request[v1.ListComponentsRequest]) (*connect.Response[v1.ListComponentsResponse], error) // GetPipelinesForSecret implements the get pipelines for secret method which lists the pipelines // in the Redpanda cluster for the given secret. GetPipelinesForSecret(context.Context, *connect.Request[v1.GetPipelinesForSecretRequest]) (*connect.Response[v1.GetPipelinesForSecretResponse], error) @@ -174,6 +180,12 @@ func NewPipelineServiceClient(httpClient connect.HTTPClient, baseURL string, opt connect.WithSchema(pipelineServiceGetPipelineServiceConfigSchemaMethodDescriptor), connect.WithClientOptions(opts...), ), + listComponents: connect.NewClient[v1.ListComponentsRequest, v1.ListComponentsResponse]( + httpClient, + baseURL+PipelineServiceListComponentsProcedure, + connect.WithSchema(pipelineServiceListComponentsMethodDescriptor), + connect.WithClientOptions(opts...), + ), getPipelinesForSecret: connect.NewClient[v1.GetPipelinesForSecretRequest, v1.GetPipelinesForSecretResponse]( httpClient, baseURL+PipelineServiceGetPipelinesForSecretProcedure, @@ -205,6 +217,7 @@ type pipelineServiceClient struct { stopPipeline *connect.Client[v1.StopPipelineRequest, v1.StopPipelineResponse] startPipeline *connect.Client[v1.StartPipelineRequest, v1.StartPipelineResponse] getPipelineServiceConfigSchema *connect.Client[v1.GetPipelineServiceConfigSchemaRequest, v1.GetPipelineServiceConfigSchemaResponse] + listComponents *connect.Client[v1.ListComponentsRequest, v1.ListComponentsResponse] getPipelinesForSecret *connect.Client[v1.GetPipelinesForSecretRequest, v1.GetPipelinesForSecretResponse] getPipelinesBySecrets *connect.Client[v1.GetPipelinesBySecretsRequest, v1.GetPipelinesBySecretsResponse] lintPipelineConfig *connect.Client[v1.LintPipelineConfigRequest, v1.LintPipelineConfigResponse] @@ -251,6 +264,11 @@ func (c *pipelineServiceClient) GetPipelineServiceConfigSchema(ctx context.Conte return c.getPipelineServiceConfigSchema.CallUnary(ctx, req) } +// ListComponents calls redpanda.api.dataplane.v1.PipelineService.ListComponents. +func (c *pipelineServiceClient) ListComponents(ctx context.Context, req *connect.Request[v1.ListComponentsRequest]) (*connect.Response[v1.ListComponentsResponse], error) { + return c.listComponents.CallUnary(ctx, req) +} + // GetPipelinesForSecret calls redpanda.api.dataplane.v1.PipelineService.GetPipelinesForSecret. func (c *pipelineServiceClient) GetPipelinesForSecret(ctx context.Context, req *connect.Request[v1.GetPipelinesForSecretRequest]) (*connect.Response[v1.GetPipelinesForSecretResponse], error) { return c.getPipelinesForSecret.CallUnary(ctx, req) @@ -286,6 +304,8 @@ type PipelineServiceHandler interface { StartPipeline(context.Context, *connect.Request[v1.StartPipelineRequest]) (*connect.Response[v1.StartPipelineResponse], error) // The configuration schema includes available [components and processors](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about) in this Redpanda Connect instance. GetPipelineServiceConfigSchema(context.Context, *connect.Request[v1.GetPipelineServiceConfigSchemaRequest]) (*connect.Response[v1.GetPipelineServiceConfigSchemaResponse], error) + // ListComponents returns a JSON containing lists of allowed components based on component type filter. + ListComponents(context.Context, *connect.Request[v1.ListComponentsRequest]) (*connect.Response[v1.ListComponentsResponse], error) // GetPipelinesForSecret implements the get pipelines for secret method which lists the pipelines // in the Redpanda cluster for the given secret. GetPipelinesForSecret(context.Context, *connect.Request[v1.GetPipelinesForSecretRequest]) (*connect.Response[v1.GetPipelinesForSecretResponse], error) @@ -351,6 +371,12 @@ func NewPipelineServiceHandler(svc PipelineServiceHandler, opts ...connect.Handl connect.WithSchema(pipelineServiceGetPipelineServiceConfigSchemaMethodDescriptor), connect.WithHandlerOptions(opts...), ) + pipelineServiceListComponentsHandler := connect.NewUnaryHandler( + PipelineServiceListComponentsProcedure, + svc.ListComponents, + connect.WithSchema(pipelineServiceListComponentsMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) pipelineServiceGetPipelinesForSecretHandler := connect.NewUnaryHandler( PipelineServiceGetPipelinesForSecretProcedure, svc.GetPipelinesForSecret, @@ -387,6 +413,8 @@ func NewPipelineServiceHandler(svc PipelineServiceHandler, opts ...connect.Handl pipelineServiceStartPipelineHandler.ServeHTTP(w, r) case PipelineServiceGetPipelineServiceConfigSchemaProcedure: pipelineServiceGetPipelineServiceConfigSchemaHandler.ServeHTTP(w, r) + case PipelineServiceListComponentsProcedure: + pipelineServiceListComponentsHandler.ServeHTTP(w, r) case PipelineServiceGetPipelinesForSecretProcedure: pipelineServiceGetPipelinesForSecretHandler.ServeHTTP(w, r) case PipelineServiceGetPipelinesBySecretsProcedure: @@ -434,6 +462,10 @@ func (UnimplementedPipelineServiceHandler) GetPipelineServiceConfigSchema(contex return nil, connect.NewError(connect.CodeUnimplemented, errors.New("redpanda.api.dataplane.v1.PipelineService.GetPipelineServiceConfigSchema is not implemented")) } +func (UnimplementedPipelineServiceHandler) ListComponents(context.Context, *connect.Request[v1.ListComponentsRequest]) (*connect.Response[v1.ListComponentsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("redpanda.api.dataplane.v1.PipelineService.ListComponents is not implemented")) +} + func (UnimplementedPipelineServiceHandler) GetPipelinesForSecret(context.Context, *connect.Request[v1.GetPipelinesForSecretRequest]) (*connect.Response[v1.GetPipelinesForSecretResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("redpanda.api.dataplane.v1.PipelineService.GetPipelinesForSecret is not implemented")) } diff --git a/backend/pkg/protogen/redpanda/api/dataplane/v1/dataplanev1connect/pipeline.connect.gw.go b/backend/pkg/protogen/redpanda/api/dataplane/v1/dataplanev1connect/pipeline.connect.gw.go index ad6b07c62..904284447 100644 --- a/backend/pkg/protogen/redpanda/api/dataplane/v1/dataplanev1connect/pipeline.connect.gw.go +++ b/backend/pkg/protogen/redpanda/api/dataplane/v1/dataplanev1connect/pipeline.connect.gw.go @@ -25,6 +25,7 @@ type PipelineServiceGatewayServer struct { stopPipeline connect_gateway.UnaryHandler[v1.StopPipelineRequest, v1.StopPipelineResponse] startPipeline connect_gateway.UnaryHandler[v1.StartPipelineRequest, v1.StartPipelineResponse] getPipelineServiceConfigSchema connect_gateway.UnaryHandler[v1.GetPipelineServiceConfigSchemaRequest, v1.GetPipelineServiceConfigSchemaResponse] + listComponents connect_gateway.UnaryHandler[v1.ListComponentsRequest, v1.ListComponentsResponse] getPipelinesForSecret connect_gateway.UnaryHandler[v1.GetPipelinesForSecretRequest, v1.GetPipelinesForSecretResponse] getPipelinesBySecrets connect_gateway.UnaryHandler[v1.GetPipelinesBySecretsRequest, v1.GetPipelinesBySecretsResponse] lintPipelineConfig connect_gateway.UnaryHandler[v1.LintPipelineConfigRequest, v1.LintPipelineConfigResponse] @@ -42,6 +43,7 @@ func NewPipelineServiceGatewayServer(svc PipelineServiceHandler, opts ...connect stopPipeline: connect_gateway.NewUnaryHandler(PipelineServiceStopPipelineProcedure, svc.StopPipeline, opts...), startPipeline: connect_gateway.NewUnaryHandler(PipelineServiceStartPipelineProcedure, svc.StartPipeline, opts...), getPipelineServiceConfigSchema: connect_gateway.NewUnaryHandler(PipelineServiceGetPipelineServiceConfigSchemaProcedure, svc.GetPipelineServiceConfigSchema, opts...), + listComponents: connect_gateway.NewUnaryHandler(PipelineServiceListComponentsProcedure, svc.ListComponents, opts...), getPipelinesForSecret: connect_gateway.NewUnaryHandler(PipelineServiceGetPipelinesForSecretProcedure, svc.GetPipelinesForSecret, opts...), getPipelinesBySecrets: connect_gateway.NewUnaryHandler(PipelineServiceGetPipelinesBySecretsProcedure, svc.GetPipelinesBySecrets, opts...), lintPipelineConfig: connect_gateway.NewUnaryHandler(PipelineServiceLintPipelineConfigProcedure, svc.LintPipelineConfig, opts...), @@ -80,6 +82,10 @@ func (s *PipelineServiceGatewayServer) GetPipelineServiceConfigSchema(ctx contex return s.getPipelineServiceConfigSchema(ctx, req) } +func (s *PipelineServiceGatewayServer) ListComponents(ctx context.Context, req *v1.ListComponentsRequest) (*v1.ListComponentsResponse, error) { + return s.listComponents(ctx, req) +} + func (s *PipelineServiceGatewayServer) GetPipelinesForSecret(ctx context.Context, req *v1.GetPipelinesForSecretRequest) (*v1.GetPipelinesForSecretResponse, error) { return s.getPipelinesForSecret(ctx, req) } diff --git a/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.go b/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.go index bce320cf2..f0aa25457 100644 --- a/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.go +++ b/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.go @@ -28,6 +28,62 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// ComponentStatus represents the stability level of a component. +type ComponentStatus int32 + +const ( + ComponentStatus_COMPONENT_STATUS_UNSPECIFIED ComponentStatus = 0 + ComponentStatus_COMPONENT_STATUS_STABLE ComponentStatus = 1 + ComponentStatus_COMPONENT_STATUS_BETA ComponentStatus = 2 + ComponentStatus_COMPONENT_STATUS_EXPERIMENTAL ComponentStatus = 3 + ComponentStatus_COMPONENT_STATUS_DEPRECATED ComponentStatus = 4 +) + +// Enum value maps for ComponentStatus. +var ( + ComponentStatus_name = map[int32]string{ + 0: "COMPONENT_STATUS_UNSPECIFIED", + 1: "COMPONENT_STATUS_STABLE", + 2: "COMPONENT_STATUS_BETA", + 3: "COMPONENT_STATUS_EXPERIMENTAL", + 4: "COMPONENT_STATUS_DEPRECATED", + } + ComponentStatus_value = map[string]int32{ + "COMPONENT_STATUS_UNSPECIFIED": 0, + "COMPONENT_STATUS_STABLE": 1, + "COMPONENT_STATUS_BETA": 2, + "COMPONENT_STATUS_EXPERIMENTAL": 3, + "COMPONENT_STATUS_DEPRECATED": 4, + } +) + +func (x ComponentStatus) Enum() *ComponentStatus { + p := new(ComponentStatus) + *p = x + return p +} + +func (x ComponentStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ComponentStatus) Descriptor() protoreflect.EnumDescriptor { + return file_redpanda_api_dataplane_v1_pipeline_proto_enumTypes[0].Descriptor() +} + +func (ComponentStatus) Type() protoreflect.EnumType { + return &file_redpanda_api_dataplane_v1_pipeline_proto_enumTypes[0] +} + +func (x ComponentStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ComponentStatus.Descriptor instead. +func (ComponentStatus) EnumDescriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{0} +} + // State of the pipeline. type Pipeline_State int32 @@ -80,11 +136,11 @@ func (x Pipeline_State) String() string { } func (Pipeline_State) Descriptor() protoreflect.EnumDescriptor { - return file_redpanda_api_dataplane_v1_pipeline_proto_enumTypes[0].Descriptor() + return file_redpanda_api_dataplane_v1_pipeline_proto_enumTypes[1].Descriptor() } func (Pipeline_State) Type() protoreflect.EnumType { - return &file_redpanda_api_dataplane_v1_pipeline_proto_enumTypes[0] + return &file_redpanda_api_dataplane_v1_pipeline_proto_enumTypes[1] } func (x Pipeline_State) Number() protoreflect.EnumNumber { @@ -1145,28 +1201,27 @@ func (x *GetPipelineServiceConfigSchemaResponse) GetConfigSchema() string { return "" } -type PipelinesForSecret struct { +type ListComponentsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - SecretId string `protobuf:"bytes,1,opt,name=secret_id,json=secretId,proto3" json:"secret_id,omitempty"` - Pipelines []*Pipeline `protobuf:"bytes,2,rep,name=pipelines,proto3" json:"pipelines,omitempty"` + ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *PipelinesForSecret) Reset() { - *x = PipelinesForSecret{} +func (x *ListComponentsRequest) Reset() { + *x = ListComponentsRequest{} mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PipelinesForSecret) String() string { +func (x *ListComponentsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PipelinesForSecret) ProtoMessage() {} +func (*ListComponentsRequest) ProtoMessage() {} -func (x *PipelinesForSecret) ProtoReflect() protoreflect.Message { +func (x *ListComponentsRequest) ProtoReflect() protoreflect.Message { mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1178,47 +1233,40 @@ func (x *PipelinesForSecret) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PipelinesForSecret.ProtoReflect.Descriptor instead. -func (*PipelinesForSecret) Descriptor() ([]byte, []int) { +// Deprecated: Use ListComponentsRequest.ProtoReflect.Descriptor instead. +func (*ListComponentsRequest) Descriptor() ([]byte, []int) { return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{19} } -func (x *PipelinesForSecret) GetSecretId() string { - if x != nil { - return x.SecretId - } - return "" -} - -func (x *PipelinesForSecret) GetPipelines() []*Pipeline { +func (x *ListComponentsRequest) GetReadMask() *fieldmaskpb.FieldMask { if x != nil { - return x.Pipelines + return x.ReadMask } return nil } -type GetPipelinesForSecretRequest struct { +type ListComponentsResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - // Secret ID. - SecretId string `protobuf:"bytes,1,opt,name=secret_id,json=secretId,proto3" json:"secret_id,omitempty"` + // Structured component list data instead of JSON string. + Components *ComponentList `protobuf:"bytes,1,opt,name=components,proto3" json:"components,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *GetPipelinesForSecretRequest) Reset() { - *x = GetPipelinesForSecretRequest{} +func (x *ListComponentsResponse) Reset() { + *x = ListComponentsResponse{} mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetPipelinesForSecretRequest) String() string { +func (x *ListComponentsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPipelinesForSecretRequest) ProtoMessage() {} +func (*ListComponentsResponse) ProtoMessage() {} -func (x *GetPipelinesForSecretRequest) ProtoReflect() protoreflect.Message { +func (x *ListComponentsResponse) ProtoReflect() protoreflect.Message { mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1230,39 +1278,51 @@ func (x *GetPipelinesForSecretRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetPipelinesForSecretRequest.ProtoReflect.Descriptor instead. -func (*GetPipelinesForSecretRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListComponentsResponse.ProtoReflect.Descriptor instead. +func (*ListComponentsResponse) Descriptor() ([]byte, []int) { return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{20} } -func (x *GetPipelinesForSecretRequest) GetSecretId() string { +func (x *ListComponentsResponse) GetComponents() *ComponentList { if x != nil { - return x.SecretId + return x.Components } - return "" -} - -type GetPipelinesForSecretResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - PipelinesForSecret *PipelinesForSecret `protobuf:"bytes,1,opt,name=pipelines_for_secret,json=pipelinesForSecret,proto3" json:"pipelines_for_secret,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + return nil } -func (x *GetPipelinesForSecretResponse) Reset() { - *x = GetPipelinesForSecretResponse{} +// ComponentList contains the structured component data. +type ComponentList struct { + state protoimpl.MessageState `protogen:"open.v1"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + Buffers []*ComponentSpec `protobuf:"bytes,2,rep,name=buffers,proto3" json:"buffers,omitempty"` + Caches []*ComponentSpec `protobuf:"bytes,3,rep,name=caches,proto3" json:"caches,omitempty"` + Inputs []*ComponentSpec `protobuf:"bytes,4,rep,name=inputs,proto3" json:"inputs,omitempty"` + Outputs []*ComponentSpec `protobuf:"bytes,5,rep,name=outputs,proto3" json:"outputs,omitempty"` + Processors []*ComponentSpec `protobuf:"bytes,6,rep,name=processors,proto3" json:"processors,omitempty"` + RateLimits []*ComponentSpec `protobuf:"bytes,7,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"` + Metrics []*ComponentSpec `protobuf:"bytes,8,rep,name=metrics,proto3" json:"metrics,omitempty"` + Tracers []*ComponentSpec `protobuf:"bytes,9,rep,name=tracers,proto3" json:"tracers,omitempty"` + Scanners []*ComponentSpec `protobuf:"bytes,10,rep,name=scanners,proto3" json:"scanners,omitempty"` + BloblangFunctions []*BloblangFunctionSpec `protobuf:"bytes,11,rep,name=bloblang_functions,json=bloblangFunctions,proto3" json:"bloblang_functions,omitempty"` + BloblangMethods []*BloblangMethodSpec `protobuf:"bytes,12,rep,name=bloblang_methods,json=bloblangMethods,proto3" json:"bloblang_methods,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentList) Reset() { + *x = ComponentList{} mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetPipelinesForSecretResponse) String() string { +func (x *ComponentList) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPipelinesForSecretResponse) ProtoMessage() {} +func (*ComponentList) ProtoMessage() {} -func (x *GetPipelinesForSecretResponse) ProtoReflect() protoreflect.Message { +func (x *ComponentList) ProtoReflect() protoreflect.Message { mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1274,38 +1334,126 @@ func (x *GetPipelinesForSecretResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetPipelinesForSecretResponse.ProtoReflect.Descriptor instead. -func (*GetPipelinesForSecretResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ComponentList.ProtoReflect.Descriptor instead. +func (*ComponentList) Descriptor() ([]byte, []int) { return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{21} } -func (x *GetPipelinesForSecretResponse) GetPipelinesForSecret() *PipelinesForSecret { +func (x *ComponentList) GetVersion() string { if x != nil { - return x.PipelinesForSecret + return x.Version + } + return "" +} + +func (x *ComponentList) GetBuffers() []*ComponentSpec { + if x != nil { + return x.Buffers } return nil } -type GetPipelinesBySecretsRequest struct { +func (x *ComponentList) GetCaches() []*ComponentSpec { + if x != nil { + return x.Caches + } + return nil +} + +func (x *ComponentList) GetInputs() []*ComponentSpec { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *ComponentList) GetOutputs() []*ComponentSpec { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *ComponentList) GetProcessors() []*ComponentSpec { + if x != nil { + return x.Processors + } + return nil +} + +func (x *ComponentList) GetRateLimits() []*ComponentSpec { + if x != nil { + return x.RateLimits + } + return nil +} + +func (x *ComponentList) GetMetrics() []*ComponentSpec { + if x != nil { + return x.Metrics + } + return nil +} + +func (x *ComponentList) GetTracers() []*ComponentSpec { + if x != nil { + return x.Tracers + } + return nil +} + +func (x *ComponentList) GetScanners() []*ComponentSpec { + if x != nil { + return x.Scanners + } + return nil +} + +func (x *ComponentList) GetBloblangFunctions() []*BloblangFunctionSpec { + if x != nil { + return x.BloblangFunctions + } + return nil +} + +func (x *ComponentList) GetBloblangMethods() []*BloblangMethodSpec { + if x != nil { + return x.BloblangMethods + } + return nil +} + +// ComponentSpec represents a component specification. +type ComponentSpec struct { state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + Status ComponentStatus `protobuf:"varint,3,opt,name=status,proto3,enum=redpanda.api.dataplane.v1.ComponentStatus" json:"status,omitempty"` + Summary string `protobuf:"bytes,4,opt,name=summary,proto3" json:"summary,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + Categories []string `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"` + Version string `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"` + Config *FieldSpec `protobuf:"bytes,8,opt,name=config,proto3" json:"config,omitempty"` + Examples []string `protobuf:"bytes,9,rep,name=examples,proto3" json:"examples,omitempty"` + Footnotes string `protobuf:"bytes,10,opt,name=footnotes,proto3" json:"footnotes,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *GetPipelinesBySecretsRequest) Reset() { - *x = GetPipelinesBySecretsRequest{} +func (x *ComponentSpec) Reset() { + *x = ComponentSpec{} mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetPipelinesBySecretsRequest) String() string { +func (x *ComponentSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPipelinesBySecretsRequest) ProtoMessage() {} +func (*ComponentSpec) ProtoMessage() {} -func (x *GetPipelinesBySecretsRequest) ProtoReflect() protoreflect.Message { +func (x *ComponentSpec) ProtoReflect() protoreflect.Message { mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1317,80 +1465,116 @@ func (x *GetPipelinesBySecretsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetPipelinesBySecretsRequest.ProtoReflect.Descriptor instead. -func (*GetPipelinesBySecretsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ComponentSpec.ProtoReflect.Descriptor instead. +func (*ComponentSpec) Descriptor() ([]byte, []int) { return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{22} } -type GetPipelinesBySecretsResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - PipelinesForSecret []*PipelinesForSecret `protobuf:"bytes,1,rep,name=pipelines_for_secret,json=pipelinesForSecret,proto3" json:"pipelines_for_secret,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache +func (x *ComponentSpec) GetName() string { + if x != nil { + return x.Name + } + return "" } -func (x *GetPipelinesBySecretsResponse) Reset() { - *x = GetPipelinesBySecretsResponse{} - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ComponentSpec) GetType() string { + if x != nil { + return x.Type + } + return "" } -func (x *GetPipelinesBySecretsResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ComponentSpec) GetStatus() ComponentStatus { + if x != nil { + return x.Status + } + return ComponentStatus_COMPONENT_STATUS_UNSPECIFIED } -func (*GetPipelinesBySecretsResponse) ProtoMessage() {} +func (x *ComponentSpec) GetSummary() string { + if x != nil { + return x.Summary + } + return "" +} -func (x *GetPipelinesBySecretsResponse) ProtoReflect() protoreflect.Message { - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[23] +func (x *ComponentSpec) GetDescription() string { if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.Description } - return mi.MessageOf(x) + return "" } -// Deprecated: Use GetPipelinesBySecretsResponse.ProtoReflect.Descriptor instead. -func (*GetPipelinesBySecretsResponse) Descriptor() ([]byte, []int) { - return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{23} +func (x *ComponentSpec) GetCategories() []string { + if x != nil { + return x.Categories + } + return nil } -func (x *GetPipelinesBySecretsResponse) GetPipelinesForSecret() []*PipelinesForSecret { +func (x *ComponentSpec) GetVersion() string { if x != nil { - return x.PipelinesForSecret + return x.Version + } + return "" +} + +func (x *ComponentSpec) GetConfig() *FieldSpec { + if x != nil { + return x.Config } return nil } -type LintPipelineConfigRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - // The Redpanda Connect pipeline configuration in YAML format. - // See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation - // for more details. - ConfigYaml string `protobuf:"bytes,1,opt,name=config_yaml,json=configYaml,proto3" json:"config_yaml,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache +func (x *ComponentSpec) GetExamples() []string { + if x != nil { + return x.Examples + } + return nil } -func (x *LintPipelineConfigRequest) Reset() { - *x = LintPipelineConfigRequest{} - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[24] +func (x *ComponentSpec) GetFootnotes() string { + if x != nil { + return x.Footnotes + } + return "" +} + +// FieldSpec represents a field specification. +type FieldSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + Kind string `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + Advanced bool `protobuf:"varint,5,opt,name=advanced,proto3" json:"advanced,omitempty"` + Deprecated bool `protobuf:"varint,6,opt,name=deprecated,proto3" json:"deprecated,omitempty"` + Optional bool `protobuf:"varint,7,opt,name=optional,proto3" json:"optional,omitempty"` + DefaultValue string `protobuf:"bytes,8,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + Examples []string `protobuf:"bytes,9,rep,name=examples,proto3" json:"examples,omitempty"` + Children []*FieldSpec `protobuf:"bytes,10,rep,name=children,proto3" json:"children,omitempty"` + AnnotatedOptions []*AnnotatedOption `protobuf:"bytes,11,rep,name=annotated_options,json=annotatedOptions,proto3" json:"annotated_options,omitempty"` + Interpolated []string `protobuf:"bytes,12,rep,name=interpolated,proto3" json:"interpolated,omitempty"` + Version string `protobuf:"bytes,13,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FieldSpec) Reset() { + *x = FieldSpec{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *LintPipelineConfigRequest) String() string { +func (x *FieldSpec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LintPipelineConfigRequest) ProtoMessage() {} +func (*FieldSpec) ProtoMessage() {} -func (x *LintPipelineConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[24] +func (x *FieldSpec) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1401,54 +1585,759 @@ func (x *LintPipelineConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LintPipelineConfigRequest.ProtoReflect.Descriptor instead. -func (*LintPipelineConfigRequest) Descriptor() ([]byte, []int) { - return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{24} +// Deprecated: Use FieldSpec.ProtoReflect.Descriptor instead. +func (*FieldSpec) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{23} } -func (x *LintPipelineConfigRequest) GetConfigYaml() string { +func (x *FieldSpec) GetName() string { if x != nil { - return x.ConfigYaml + return x.Name } return "" } -type LintPipelineConfigResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - // A list of linting issues. - LintHints []*v1.LintHint `protobuf:"bytes,1,rep,name=lint_hints,json=lintHints,proto3" json:"lint_hints,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache +func (x *FieldSpec) GetType() string { + if x != nil { + return x.Type + } + return "" } -func (x *LintPipelineConfigResponse) Reset() { - *x = LintPipelineConfigResponse{} - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FieldSpec) GetKind() string { + if x != nil { + return x.Kind + } + return "" } -func (x *LintPipelineConfigResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FieldSpec) GetDescription() string { + if x != nil { + return x.Description + } + return "" } -func (*LintPipelineConfigResponse) ProtoMessage() {} +func (x *FieldSpec) GetAdvanced() bool { + if x != nil { + return x.Advanced + } + return false +} -func (x *LintPipelineConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[25] +func (x *FieldSpec) GetDeprecated() bool { if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.Deprecated } - return mi.MessageOf(x) + return false +} + +func (x *FieldSpec) GetOptional() bool { + if x != nil { + return x.Optional + } + return false +} + +func (x *FieldSpec) GetDefaultValue() string { + if x != nil { + return x.DefaultValue + } + return "" +} + +func (x *FieldSpec) GetExamples() []string { + if x != nil { + return x.Examples + } + return nil +} + +func (x *FieldSpec) GetChildren() []*FieldSpec { + if x != nil { + return x.Children + } + return nil +} + +func (x *FieldSpec) GetAnnotatedOptions() []*AnnotatedOption { + if x != nil { + return x.AnnotatedOptions + } + return nil +} + +func (x *FieldSpec) GetInterpolated() []string { + if x != nil { + return x.Interpolated + } + return nil +} + +func (x *FieldSpec) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +// AnnotatedOption represents an annotated option +type AnnotatedOption struct { + state protoimpl.MessageState `protogen:"open.v1"` + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AnnotatedOption) Reset() { + *x = AnnotatedOption{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AnnotatedOption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnnotatedOption) ProtoMessage() {} + +func (x *AnnotatedOption) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnnotatedOption.ProtoReflect.Descriptor instead. +func (*AnnotatedOption) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{24} +} + +func (x *AnnotatedOption) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *AnnotatedOption) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +// BloblangFunctionSpec represents a Bloblang function specification. +type BloblangFunctionSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + Categories []string `protobuf:"bytes,4,rep,name=categories,proto3" json:"categories,omitempty"` + Params *ParamSpec `protobuf:"bytes,5,opt,name=params,proto3" json:"params,omitempty"` + Examples []string `protobuf:"bytes,6,rep,name=examples,proto3" json:"examples,omitempty"` + Version string `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BloblangFunctionSpec) Reset() { + *x = BloblangFunctionSpec{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BloblangFunctionSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BloblangFunctionSpec) ProtoMessage() {} + +func (x *BloblangFunctionSpec) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BloblangFunctionSpec.ProtoReflect.Descriptor instead. +func (*BloblangFunctionSpec) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{25} +} + +func (x *BloblangFunctionSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *BloblangFunctionSpec) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *BloblangFunctionSpec) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *BloblangFunctionSpec) GetCategories() []string { + if x != nil { + return x.Categories + } + return nil +} + +func (x *BloblangFunctionSpec) GetParams() *ParamSpec { + if x != nil { + return x.Params + } + return nil +} + +func (x *BloblangFunctionSpec) GetExamples() []string { + if x != nil { + return x.Examples + } + return nil +} + +func (x *BloblangFunctionSpec) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +// BloblangMethodSpec represents a Bloblang method specification. +type BloblangMethodSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + Categories []string `protobuf:"bytes,4,rep,name=categories,proto3" json:"categories,omitempty"` + Params *ParamSpec `protobuf:"bytes,5,opt,name=params,proto3" json:"params,omitempty"` + Examples []string `protobuf:"bytes,6,rep,name=examples,proto3" json:"examples,omitempty"` + Version string `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BloblangMethodSpec) Reset() { + *x = BloblangMethodSpec{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BloblangMethodSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BloblangMethodSpec) ProtoMessage() {} + +func (x *BloblangMethodSpec) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BloblangMethodSpec.ProtoReflect.Descriptor instead. +func (*BloblangMethodSpec) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{26} +} + +func (x *BloblangMethodSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *BloblangMethodSpec) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *BloblangMethodSpec) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *BloblangMethodSpec) GetCategories() []string { + if x != nil { + return x.Categories + } + return nil +} + +func (x *BloblangMethodSpec) GetParams() *ParamSpec { + if x != nil { + return x.Params + } + return nil +} + +func (x *BloblangMethodSpec) GetExamples() []string { + if x != nil { + return x.Examples + } + return nil +} + +func (x *BloblangMethodSpec) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +// ParamSpec represents parameter specifications. +type ParamSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + Definitions []*ParamDefinition `protobuf:"bytes,1,rep,name=definitions,proto3" json:"definitions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ParamSpec) Reset() { + *x = ParamSpec{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ParamSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParamSpec) ProtoMessage() {} + +func (x *ParamSpec) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParamSpec.ProtoReflect.Descriptor instead. +func (*ParamSpec) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{27} +} + +func (x *ParamSpec) GetDefinitions() []*ParamDefinition { + if x != nil { + return x.Definitions + } + return nil +} + +// ParamDefinition represents a parameter definition. +type ParamDefinition struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + DefaultValue string `protobuf:"bytes,4,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ParamDefinition) Reset() { + *x = ParamDefinition{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ParamDefinition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParamDefinition) ProtoMessage() {} + +func (x *ParamDefinition) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParamDefinition.ProtoReflect.Descriptor instead. +func (*ParamDefinition) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{28} +} + +func (x *ParamDefinition) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ParamDefinition) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *ParamDefinition) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ParamDefinition) GetDefaultValue() string { + if x != nil { + return x.DefaultValue + } + return "" +} + +type PipelinesForSecret struct { + state protoimpl.MessageState `protogen:"open.v1"` + SecretId string `protobuf:"bytes,1,opt,name=secret_id,json=secretId,proto3" json:"secret_id,omitempty"` + Pipelines []*Pipeline `protobuf:"bytes,2,rep,name=pipelines,proto3" json:"pipelines,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PipelinesForSecret) Reset() { + *x = PipelinesForSecret{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PipelinesForSecret) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PipelinesForSecret) ProtoMessage() {} + +func (x *PipelinesForSecret) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[29] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PipelinesForSecret.ProtoReflect.Descriptor instead. +func (*PipelinesForSecret) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{29} +} + +func (x *PipelinesForSecret) GetSecretId() string { + if x != nil { + return x.SecretId + } + return "" +} + +func (x *PipelinesForSecret) GetPipelines() []*Pipeline { + if x != nil { + return x.Pipelines + } + return nil +} + +type GetPipelinesForSecretRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Secret ID. + SecretId string `protobuf:"bytes,1,opt,name=secret_id,json=secretId,proto3" json:"secret_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPipelinesForSecretRequest) Reset() { + *x = GetPipelinesForSecretRequest{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPipelinesForSecretRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPipelinesForSecretRequest) ProtoMessage() {} + +func (x *GetPipelinesForSecretRequest) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPipelinesForSecretRequest.ProtoReflect.Descriptor instead. +func (*GetPipelinesForSecretRequest) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{30} +} + +func (x *GetPipelinesForSecretRequest) GetSecretId() string { + if x != nil { + return x.SecretId + } + return "" +} + +type GetPipelinesForSecretResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PipelinesForSecret *PipelinesForSecret `protobuf:"bytes,1,opt,name=pipelines_for_secret,json=pipelinesForSecret,proto3" json:"pipelines_for_secret,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPipelinesForSecretResponse) Reset() { + *x = GetPipelinesForSecretResponse{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPipelinesForSecretResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPipelinesForSecretResponse) ProtoMessage() {} + +func (x *GetPipelinesForSecretResponse) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[31] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPipelinesForSecretResponse.ProtoReflect.Descriptor instead. +func (*GetPipelinesForSecretResponse) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{31} +} + +func (x *GetPipelinesForSecretResponse) GetPipelinesForSecret() *PipelinesForSecret { + if x != nil { + return x.PipelinesForSecret + } + return nil +} + +type GetPipelinesBySecretsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPipelinesBySecretsRequest) Reset() { + *x = GetPipelinesBySecretsRequest{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPipelinesBySecretsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPipelinesBySecretsRequest) ProtoMessage() {} + +func (x *GetPipelinesBySecretsRequest) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[32] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPipelinesBySecretsRequest.ProtoReflect.Descriptor instead. +func (*GetPipelinesBySecretsRequest) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{32} +} + +type GetPipelinesBySecretsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PipelinesForSecret []*PipelinesForSecret `protobuf:"bytes,1,rep,name=pipelines_for_secret,json=pipelinesForSecret,proto3" json:"pipelines_for_secret,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPipelinesBySecretsResponse) Reset() { + *x = GetPipelinesBySecretsResponse{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPipelinesBySecretsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPipelinesBySecretsResponse) ProtoMessage() {} + +func (x *GetPipelinesBySecretsResponse) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[33] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPipelinesBySecretsResponse.ProtoReflect.Descriptor instead. +func (*GetPipelinesBySecretsResponse) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{33} +} + +func (x *GetPipelinesBySecretsResponse) GetPipelinesForSecret() []*PipelinesForSecret { + if x != nil { + return x.PipelinesForSecret + } + return nil +} + +type LintPipelineConfigRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The Redpanda Connect pipeline configuration in YAML format. + // See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation + // for more details. + ConfigYaml string `protobuf:"bytes,1,opt,name=config_yaml,json=configYaml,proto3" json:"config_yaml,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LintPipelineConfigRequest) Reset() { + *x = LintPipelineConfigRequest{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LintPipelineConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LintPipelineConfigRequest) ProtoMessage() {} + +func (x *LintPipelineConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[34] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LintPipelineConfigRequest.ProtoReflect.Descriptor instead. +func (*LintPipelineConfigRequest) Descriptor() ([]byte, []int) { + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{34} +} + +func (x *LintPipelineConfigRequest) GetConfigYaml() string { + if x != nil { + return x.ConfigYaml + } + return "" +} + +type LintPipelineConfigResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // A list of linting issues. + LintHints []*v1.LintHint `protobuf:"bytes,1,rep,name=lint_hints,json=lintHints,proto3" json:"lint_hints,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LintPipelineConfigResponse) Reset() { + *x = LintPipelineConfigResponse{} + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LintPipelineConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LintPipelineConfigResponse) ProtoMessage() {} + +func (x *LintPipelineConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[35] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } // Deprecated: Use LintPipelineConfigResponse.ProtoReflect.Descriptor instead. func (*LintPipelineConfigResponse) Descriptor() ([]byte, []int) { - return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{25} + return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP(), []int{35} } func (x *LintPipelineConfigResponse) GetLintHints() []*v1.LintHint { @@ -1487,7 +2376,7 @@ type Pipeline_Resources struct { func (x *Pipeline_Resources) Reset() { *x = Pipeline_Resources{} - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[27] + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1499,7 +2388,7 @@ func (x *Pipeline_Resources) String() string { func (*Pipeline_Resources) ProtoMessage() {} func (x *Pipeline_Resources) ProtoReflect() protoreflect.Message { - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[27] + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1539,7 +2428,7 @@ type Pipeline_Status struct { func (x *Pipeline_Status) Reset() { *x = Pipeline_Status{} - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[28] + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1551,7 +2440,7 @@ func (x *Pipeline_Status) String() string { func (*Pipeline_Status) ProtoMessage() {} func (x *Pipeline_Status) ProtoReflect() protoreflect.Message { - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[28] + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1584,7 +2473,7 @@ type Pipeline_ServiceAccount struct { func (x *Pipeline_ServiceAccount) Reset() { *x = Pipeline_ServiceAccount{} - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[29] + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1596,7 +2485,7 @@ func (x *Pipeline_ServiceAccount) String() string { func (*Pipeline_ServiceAccount) ProtoMessage() {} func (x *Pipeline_ServiceAccount) ProtoReflect() protoreflect.Message { - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[29] + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1639,7 +2528,7 @@ type ListPipelinesRequest_Filter struct { func (x *ListPipelinesRequest_Filter) Reset() { *x = ListPipelinesRequest_Filter{} - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[31] + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1651,7 +2540,7 @@ func (x *ListPipelinesRequest_Filter) String() string { func (*ListPipelinesRequest_Filter) ProtoMessage() {} func (x *ListPipelinesRequest_Filter) ProtoReflect() protoreflect.Message { - mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[31] + mi := &file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2025,344 +2914,610 @@ var file_redpanda_api_dataplane_v1_pipeline_proto_rawDesc = []byte{ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x22, 0x74, 0x0a, 0x12, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, - 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x09, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x5b, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe0, 0x41, 0x02, - 0xba, 0x48, 0x18, 0xc8, 0x01, 0x01, 0x72, 0x13, 0x32, 0x11, 0x5e, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, - 0x5b, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x2a, 0x24, 0x52, 0x08, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x14, 0x70, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x6d, 0x61, 0x22, 0x50, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x72, + 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x62, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0a, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x93, 0x08, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0xd8, 0x01, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0xbd, 0x01, 0xba, + 0x48, 0xb9, 0x01, 0x72, 0xb6, 0x01, 0x32, 0xb3, 0x01, 0x5e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, + 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, + 0x5c, 0x64, 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, + 0x2a, 0x29, 0x28, 0x3f, 0x3a, 0x2d, 0x28, 0x28, 0x3f, 0x3a, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, + 0x5d, 0x5c, 0x64, 0x2a, 0x7c, 0x5c, 0x64, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, + 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x29, 0x28, + 0x3f, 0x3a, 0x5c, 0x2e, 0x28, 0x3f, 0x3a, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, + 0x2a, 0x7c, 0x5c, 0x64, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x5b, 0x30, + 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x29, 0x29, 0x2a, 0x29, 0x29, + 0x3f, 0x28, 0x3f, 0x3a, 0x5c, 0x2b, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, + 0x5a, 0x2d, 0x5d, 0x2b, 0x28, 0x3f, 0x3a, 0x5c, 0x2e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, + 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2b, 0x29, 0x2a, 0x29, 0x29, 0x3f, 0x24, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x07, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x07, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, + 0x70, 0x65, 0x63, 0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x06, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x42, 0x0a, + 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x52, 0x12, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, - 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, - 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x14, 0x70, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x72, + 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, + 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, + 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x73, 0x12, 0x44, + 0x0a, 0x08, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x73, 0x63, 0x61, 0x6e, + 0x6e, 0x65, 0x72, 0x73, 0x12, 0x5e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x6c, 0x61, 0x6e, 0x67, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, + 0x62, 0x6c, 0x61, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, + 0x63, 0x52, 0x11, 0x62, 0x6c, 0x6f, 0x62, 0x6c, 0x61, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x6c, 0x61, 0x6e, 0x67, + 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x6c, + 0x61, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0f, 0x62, + 0x6c, 0x6f, 0x62, 0x6c, 0x61, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x22, 0xaa, + 0x04, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, - 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x12, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x47, 0x0a, 0x19, 0x4c, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0xd8, 0x01, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0xbd, 0x01, 0xba, 0x48, 0xb9, + 0x01, 0x72, 0xb6, 0x01, 0x32, 0xb3, 0x01, 0x5e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, + 0x5c, 0x64, 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, + 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, + 0x28, 0x3f, 0x3a, 0x2d, 0x28, 0x28, 0x3f, 0x3a, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, + 0x64, 0x2a, 0x7c, 0x5c, 0x64, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x5b, + 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x29, 0x28, 0x3f, 0x3a, + 0x5c, 0x2e, 0x28, 0x3f, 0x3a, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x7c, + 0x5c, 0x64, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x5b, 0x30, 0x2d, 0x39, + 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x29, 0x29, 0x2a, 0x29, 0x29, 0x3f, 0x28, + 0x3f, 0x3a, 0x5c, 0x2b, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, + 0x5d, 0x2b, 0x28, 0x3f, 0x3a, 0x5c, 0x2e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, + 0x5a, 0x2d, 0x5d, 0x2b, 0x29, 0x2a, 0x29, 0x29, 0x3f, 0x24, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x70, 0x65, 0x63, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x66, 0x6f, 0x6f, 0x74, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x6f, 0x6f, 0x74, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x9c, 0x05, 0x0a, 0x09, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, + 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x12, 0x40, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, + 0x65, 0x6e, 0x12, 0x57, 0x0a, 0x11, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, + 0xd8, 0x01, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x42, 0xbd, 0x01, 0xba, 0x48, 0xb9, 0x01, 0x72, 0xb6, 0x01, 0x32, 0xb3, 0x01, 0x5e, 0x28, + 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, 0x7c, + 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x5b, 0x31, + 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x28, 0x3f, 0x3a, 0x2d, 0x28, 0x28, 0x3f, 0x3a, 0x30, + 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x7c, 0x5c, 0x64, 0x2a, 0x5b, 0x61, 0x2d, + 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, + 0x2d, 0x5d, 0x2a, 0x29, 0x28, 0x3f, 0x3a, 0x5c, 0x2e, 0x28, 0x3f, 0x3a, 0x30, 0x7c, 0x5b, 0x31, + 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x7c, 0x5c, 0x64, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, + 0x5a, 0x2d, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, + 0x29, 0x29, 0x2a, 0x29, 0x29, 0x3f, 0x28, 0x3f, 0x3a, 0x5c, 0x2b, 0x28, 0x5b, 0x30, 0x2d, 0x39, + 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2b, 0x28, 0x3f, 0x3a, 0x5c, 0x2e, 0x5b, 0x30, + 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2b, 0x29, 0x2a, 0x29, 0x29, 0x3f, + 0x24, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x0f, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x03, 0x0a, 0x14, 0x42, 0x6c, 0x6f, 0x62, 0x6c, 0x61, + 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, + 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0xd8, 0x01, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0xbd, 0x01, 0xba, 0x48, 0xb9, 0x01, 0x72, + 0xb6, 0x01, 0x32, 0xb3, 0x01, 0x5e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, + 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, + 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x28, 0x3f, + 0x3a, 0x2d, 0x28, 0x28, 0x3f, 0x3a, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, + 0x7c, 0x5c, 0x64, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x5b, 0x30, 0x2d, + 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x29, 0x28, 0x3f, 0x3a, 0x5c, 0x2e, + 0x28, 0x3f, 0x3a, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x7c, 0x5c, 0x64, + 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, + 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x29, 0x29, 0x2a, 0x29, 0x29, 0x3f, 0x28, 0x3f, 0x3a, + 0x5c, 0x2b, 0x28, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2b, + 0x28, 0x3f, 0x3a, 0x5c, 0x2e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, + 0x5d, 0x2b, 0x29, 0x2a, 0x29, 0x29, 0x3f, 0x24, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0xb7, 0x03, 0x0a, 0x12, 0x42, 0x6c, 0x6f, 0x62, 0x6c, 0x61, 0x6e, 0x67, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x12, 0xd8, 0x01, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x42, 0xbd, 0x01, 0xba, 0x48, 0xb9, 0x01, 0x72, 0xb6, 0x01, 0x32, 0xb3, 0x01, 0x5e, + 0x28, 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, + 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x5c, 0x2e, 0x28, 0x30, 0x7c, 0x5b, + 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x29, 0x28, 0x3f, 0x3a, 0x2d, 0x28, 0x28, 0x3f, 0x3a, + 0x30, 0x7c, 0x5b, 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x7c, 0x5c, 0x64, 0x2a, 0x5b, 0x61, + 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, + 0x5a, 0x2d, 0x5d, 0x2a, 0x29, 0x28, 0x3f, 0x3a, 0x5c, 0x2e, 0x28, 0x3f, 0x3a, 0x30, 0x7c, 0x5b, + 0x31, 0x2d, 0x39, 0x5d, 0x5c, 0x64, 0x2a, 0x7c, 0x5c, 0x64, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x41, + 0x2d, 0x5a, 0x2d, 0x5d, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, + 0x2a, 0x29, 0x29, 0x2a, 0x29, 0x29, 0x3f, 0x28, 0x3f, 0x3a, 0x5c, 0x2b, 0x28, 0x5b, 0x30, 0x2d, + 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2b, 0x28, 0x3f, 0x3a, 0x5c, 0x2e, 0x5b, + 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2b, 0x29, 0x2a, 0x29, 0x29, + 0x3f, 0x24, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x09, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4c, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x74, 0x0a, 0x12, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x09, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x09, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x22, + 0x5b, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, + 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3b, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x1e, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x18, 0xc8, 0x01, 0x01, 0x72, 0x13, 0x32, + 0x11, 0x5e, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x5b, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, + 0x2a, 0x24, 0x52, 0x08, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, + 0x1d, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, + 0x0a, 0x14, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, + 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x12, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, + 0x1e, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x42, + 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x80, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5f, 0x0a, 0x14, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x66, + 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x12, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x22, 0x47, 0x0a, 0x19, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2a, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xe0, 0x41, 0x02, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, + 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x59, 0x61, 0x6d, 0x6c, 0x22, 0x5d, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xe0, - 0x41, 0x02, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x59, 0x61, 0x6d, 0x6c, 0x22, 0x5d, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x6c, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, - 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x6e, 0x74, 0x48, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x74, 0x48, 0x69, - 0x6e, 0x74, 0x73, 0x32, 0xdc, 0x22, 0x0a, 0x0f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb5, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x6c, 0x69, 0x6e, + 0x74, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x48, 0x69, 0x6e, 0x74, 0x52, + 0x09, 0x6c, 0x69, 0x6e, 0x74, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x2a, 0xaf, 0x01, 0x0a, 0x0f, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, + 0x0a, 0x1c, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, + 0x15, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x42, 0x45, 0x54, 0x41, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x4f, 0x4d, 0x50, + 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x58, 0x50, + 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x43, + 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x32, 0x91, 0x26, 0x0a, + 0x0f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0xb5, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbd, 0x01, 0x92, 0x41, 0x81, 0x01, 0x12, + 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x1a, 0x27, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, + 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4a, 0x34, 0x0a, 0x03, 0x32, 0x30, + 0x31, 0x12, 0x2d, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x27, 0x0a, 0x25, 0x1a, 0x23, 0x2e, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x08, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0xd2, 0x02, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2d, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, + 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, + 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe3, 0x01, 0x92, 0x41, 0xac, 0x01, 0x12, 0x1d, + 0x47, 0x65, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x29, 0x47, + 0x65, 0x74, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x52, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4a, 0x34, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, + 0x2d, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x27, 0x0a, 0x25, 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x2a, + 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x23, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, + 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, + 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xd6, 0x02, + 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, + 0x2f, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xe1, 0x01, 0x92, 0x41, 0xaf, 0x01, 0x12, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x20, + 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x1a, 0x49, 0x4c, 0x69, 0x73, 0x74, + 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x4a, 0x41, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x3a, 0x0a, 0x02, + 0x4f, 0x4b, 0x12, 0x34, 0x0a, 0x32, 0x1a, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x9e, 0x03, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x69, + 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, + 0x02, 0x92, 0x41, 0xe5, 0x01, 0x12, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, + 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x88, 0x01, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x5b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, + 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, + 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x62, + 0x6f, 0x75, 0x74, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, + 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x2e, 0x4a, 0x34, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x2d, 0x0a, 0x02, 0x4f, + 0x4b, 0x12, 0x27, 0x0a, 0x25, 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, + 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x1a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xb8, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, + 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xbd, 0x01, 0x92, 0x41, 0x81, 0x01, 0x12, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x52, - 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x27, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x2e, 0x4a, 0x34, 0x0a, 0x03, 0x32, 0x30, 0x31, 0x12, 0x2d, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x27, - 0x0a, 0x25, 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, 0x10, 0x04, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x22, - 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, - 0xd2, 0x02, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, - 0x2d, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, - 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe3, - 0x01, 0x92, 0x41, 0xac, 0x01, 0x12, 0x1d, 0x47, 0x65, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x29, 0x47, 0x65, 0x74, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, + 0xc0, 0x01, 0x92, 0x41, 0x89, 0x01, 0x12, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, + 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x23, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4a, - 0x34, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x2d, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x27, 0x0a, 0x25, - 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x2a, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x23, 0x0a, 0x09, - 0x4e, 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, - 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, - 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xd6, 0x02, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, - 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, - 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe1, 0x01, 0x92, 0x41, 0xaf, 0x01, - 0x12, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x1a, 0x49, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, - 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x4a, 0x41, 0x0a, 0x03, - 0x32, 0x30, 0x30, 0x12, 0x3a, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x34, 0x0a, 0x32, 0x1a, 0x30, 0x2e, - 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, - 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, + 0x12, 0x0a, 0x03, 0x32, 0x30, 0x34, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x12, 0x00, 0x4a, 0x2a, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x23, 0x0a, 0x09, 0x4e, 0x6f, + 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x8a, + 0xa6, 0x1d, 0x04, 0x08, 0x02, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x9e, 0x03, - 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x12, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x02, 0x92, 0x41, 0xe5, 0x01, 0x12, 0x22, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x1a, 0x88, 0x01, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x5b, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x28, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, - 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x2f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4a, 0x34, 0x0a, 0x03, 0x32, - 0x30, 0x30, 0x12, 0x2d, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x27, 0x0a, 0x25, 0x1a, 0x23, 0x2e, 0x72, - 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, - 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xb8, - 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x12, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, + 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x12, 0xe3, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc0, 0x01, 0x92, 0x41, 0x89, 0x01, 0x12, 0x22, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, - 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x1a, 0x23, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, - 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4a, 0x12, 0x0a, 0x03, 0x32, 0x30, 0x34, 0x12, 0x0b, 0x0a, - 0x07, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x00, 0x4a, 0x2a, 0x0a, 0x03, 0x34, 0x30, - 0x34, 0x12, 0x23, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, - 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, 0x10, 0x04, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, - 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xe3, 0x02, 0x0a, 0x0c, 0x53, 0x74, - 0x6f, 0x70, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x64, - 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x64, + 0x53, 0x74, 0x6f, 0x70, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x6f, 0x70, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf1, 0x01, 0x92, 0x41, 0xb5, 0x01, 0x12, 0x21, 0x53, 0x74, 0x6f, + 0x70, 0x73, 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x29, + 0x53, 0x74, 0x6f, 0x70, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x52, + 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4a, 0x39, 0x0a, 0x03, 0x32, 0x30, 0x30, + 0x12, 0x32, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x25, 0x1a, + 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x2a, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x23, 0x0a, 0x09, 0x4e, + 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x1a, 0x28, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, + 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x12, 0xe8, 0x02, 0x0a, 0x0d, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2f, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf1, 0x01, 0x92, 0x41, - 0xb5, 0x01, 0x12, 0x21, 0x53, 0x74, 0x6f, 0x70, 0x73, 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, - 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x29, 0x53, 0x74, 0x6f, 0x70, 0x20, 0x61, 0x20, 0x72, 0x75, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, - 0x4a, 0x39, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x32, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x70, 0x70, - 0x65, 0x64, 0x12, 0x27, 0x0a, 0x25, 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf3, 0x01, + 0x92, 0x41, 0xb6, 0x01, 0x12, 0x21, 0x53, 0x74, 0x61, 0x72, 0x74, 0x20, 0x61, 0x20, 0x52, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x2a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x20, 0x61, + 0x20, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x2e, 0x4a, 0x39, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x32, 0x0a, 0x07, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x25, 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x2a, + 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x23, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, + 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, + 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x1a, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x12, 0xac, 0x04, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x40, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x2a, 0x0a, 0x03, 0x34, - 0x30, 0x34, 0x12, 0x23, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, - 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, 0x10, 0x04, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x1a, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x12, - 0xe8, 0x02, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x12, 0x2f, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf3, 0x01, 0x92, 0x41, 0xb6, 0x01, 0x12, 0x21, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x2a, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x20, 0x61, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4a, 0x39, 0x0a, 0x03, 0x32, 0x30, - 0x30, 0x12, 0x32, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x25, - 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x2a, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x23, 0x0a, 0x09, - 0x4e, 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x02, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x1a, - 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, - 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0xac, 0x04, 0x0a, 0x1e, 0x47, - 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x40, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, + 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x03, 0x92, 0x41, + 0xce, 0x02, 0x12, 0x40, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb5, 0x01, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x5b, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x5d, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x2f, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x73, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x4a, 0x52, 0x0a, 0x03, + 0x32, 0x30, 0x30, 0x12, 0x4b, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x45, 0x0a, 0x43, 0x1a, 0x41, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x41, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x84, 0x03, 0x92, 0x41, 0xce, 0x02, 0x12, 0x40, 0x52, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb5, 0x01, 0x54, 0x68, - 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x5b, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x73, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, - 0x63, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, - 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x29, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, - 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x2e, 0x4a, 0x52, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x4b, 0x0a, 0x02, 0x4f, 0x4b, - 0x12, 0x45, 0x0a, 0x43, 0x1a, 0x41, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0xf4, 0x02, 0x0a, 0x15, 0x47, 0x65, + 0x69, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2d, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x12, 0xb2, 0x03, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x30, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, + 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x02, 0x92, 0x41, 0x87, + 0x02, 0x12, 0x29, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x95, 0x01, 0x52, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x5b, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x5d, 0x28, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, + 0x64, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x2f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x29, 0x2c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x4a, 0x42, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x3b, 0x0a, 0x02, 0x4f, + 0x4b, 0x12, 0x35, 0x0a, 0x33, 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xf4, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x12, 0x37, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0x37, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x72, - 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe7, 0x01, 0x92, 0x41, 0xaa, 0x01, 0x12, 0x29, 0x47, + 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x72, 0x65, 0x64, + 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe7, 0x01, 0x92, 0x41, 0xaa, 0x01, 0x12, 0x29, 0x47, 0x65, 0x74, + 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x32, 0x47, 0x65, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x20, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x2e, 0x4a, 0x49, 0x0a, 0x03, 0x32, 0x30, + 0x30, 0x12, 0x42, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x3c, 0x0a, 0x3a, 0x1a, 0x38, 0x2e, 0x72, 0x65, + 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0xec, + 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x42, + 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x37, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, + 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x73, 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x38, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdf, 0x01, 0x92, 0x41, + 0xa2, 0x01, 0x12, 0x29, 0x47, 0x65, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x2a, 0x47, 0x65, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x32, 0x47, 0x65, 0x74, 0x20, 0x52, 0x65, - 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x2e, 0x4a, 0x49, 0x0a, 0x03, - 0x32, 0x30, 0x30, 0x12, 0x42, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x3c, 0x0a, 0x3a, 0x1a, 0x38, 0x2e, - 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x12, 0xec, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x37, 0x2e, 0x72, 0x65, 0x64, + 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x62, 0x79, + 0x20, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2e, 0x4a, 0x49, 0x0a, 0x03, 0x32, 0x30, 0x30, + 0x12, 0x42, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x3c, 0x0a, 0x3a, 0x1a, 0x38, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x42, 0x79, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdf, 0x01, - 0x92, 0x41, 0xa2, 0x01, 0x12, 0x29, 0x47, 0x65, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, - 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, - 0x2a, 0x47, 0x65, 0x74, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2e, 0x4a, 0x49, 0x0a, 0x03, 0x32, - 0x30, 0x30, 0x12, 0x42, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x3c, 0x0a, 0x3a, 0x1a, 0x38, 0x2e, 0x72, - 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, - 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, - 0xf2, 0x03, 0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x6e, 0x65, 0x73, 0x42, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0xf2, 0x03, + 0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x65, 0x64, + 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xee, 0x02, 0x92, 0x41, 0xad, 0x02, 0x12, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x20, 0x61, + 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x85, 0x01, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x59, 0x41, 0x4d, 0x4c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x6e, + 0x74, 0x73, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, + 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, + 0x4a, 0x73, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x6c, 0x0a, 0x2f, 0x4c, 0x69, 0x6e, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x2e, 0x20, 0x53, 0x65, 0x65, + 0x20, 0x60, 0x6c, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x60, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x12, 0x39, 0x0a, 0x37, 0x1a, 0x35, + 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x64, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x3a, 0x6c, 0x69, 0x6e, 0x74, 0x2d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x1a, 0xab, 0x01, 0x92, 0x41, 0xa7, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x64, 0x70, 0x61, + 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x88, 0x01, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x20, 0x5b, 0x52, 0x65, 0x64, 0x70, 0x61, + 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5d, 0x28, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, + 0x64, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x2f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x29, 0x20, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, + 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x42, 0x92, 0x02, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, - 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xee, 0x02, 0x92, 0x41, 0xad, 0x02, 0x12, 0x2e, 0x4c, 0x69, 0x6e, 0x74, - 0x20, 0x61, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x85, 0x01, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, - 0x64, 0x20, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x59, 0x41, 0x4d, 0x4c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, - 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x68, - 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x62, - 0x6c, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x2e, 0x4a, 0x73, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x6c, 0x0a, 0x2f, 0x4c, 0x69, 0x6e, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x2e, 0x20, 0x53, - 0x65, 0x65, 0x20, 0x60, 0x6c, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x60, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x12, 0x39, 0x0a, 0x37, - 0x1a, 0x35, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, - 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x8a, 0xa6, 0x1d, 0x04, 0x08, 0x01, 0x10, 0x04, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x3a, 0x6c, 0x69, 0x6e, 0x74, 0x2d, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xab, 0x01, 0x92, 0x41, 0xa7, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x64, - 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x88, 0x01, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x20, 0x5b, 0x52, 0x65, 0x64, - 0x70, 0x61, 0x6e, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5d, 0x28, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x70, - 0x61, 0x6e, 0x64, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, - 0x61, 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x2f, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x29, 0x20, 0x70, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x42, 0x92, 0x02, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x2f, - 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, - 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x67, 0x65, 0x6e, 0x2f, 0x72, 0x65, 0x64, - 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, - 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x41, 0x44, 0xaa, 0x02, 0x19, 0x52, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x2e, 0x41, 0x70, 0x69, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, - 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x19, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x5c, - 0x41, 0x70, 0x69, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x25, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x5c, 0x41, 0x70, 0x69, 0x5c, - 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1c, 0x52, 0x65, 0x64, 0x70, 0x61, - 0x6e, 0x64, 0x61, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x61, 0x6e, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x76, 0x31, 0x42, 0x0d, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x5b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x72, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x67, 0x65, 0x6e, 0x2f, 0x72, 0x65, 0x64, 0x70, 0x61, + 0x6e, 0x64, 0x61, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x76, 0x31, + 0xa2, 0x02, 0x03, 0x52, 0x41, 0x44, 0xaa, 0x02, 0x19, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x2e, 0x41, 0x70, 0x69, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x19, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x5c, 0x41, 0x70, + 0x69, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x25, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x44, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1c, 0x52, 0x65, 0x64, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2377,101 +3532,134 @@ func file_redpanda_api_dataplane_v1_pipeline_proto_rawDescGZIP() []byte { return file_redpanda_api_dataplane_v1_pipeline_proto_rawDescData } -var file_redpanda_api_dataplane_v1_pipeline_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes = make([]protoimpl.MessageInfo, 34) +var file_redpanda_api_dataplane_v1_pipeline_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_redpanda_api_dataplane_v1_pipeline_proto_msgTypes = make([]protoimpl.MessageInfo, 44) var file_redpanda_api_dataplane_v1_pipeline_proto_goTypes = []any{ - (Pipeline_State)(0), // 0: redpanda.api.dataplane.v1.Pipeline.State - (*Pipeline)(nil), // 1: redpanda.api.dataplane.v1.Pipeline - (*PipelineCreate)(nil), // 2: redpanda.api.dataplane.v1.PipelineCreate - (*CreatePipelineRequest)(nil), // 3: redpanda.api.dataplane.v1.CreatePipelineRequest - (*CreatePipelineResponse)(nil), // 4: redpanda.api.dataplane.v1.CreatePipelineResponse - (*GetPipelineRequest)(nil), // 5: redpanda.api.dataplane.v1.GetPipelineRequest - (*GetPipelineResponse)(nil), // 6: redpanda.api.dataplane.v1.GetPipelineResponse - (*ListPipelinesRequest)(nil), // 7: redpanda.api.dataplane.v1.ListPipelinesRequest - (*ListPipelinesResponse)(nil), // 8: redpanda.api.dataplane.v1.ListPipelinesResponse - (*PipelineUpdate)(nil), // 9: redpanda.api.dataplane.v1.PipelineUpdate - (*UpdatePipelineRequest)(nil), // 10: redpanda.api.dataplane.v1.UpdatePipelineRequest - (*UpdatePipelineResponse)(nil), // 11: redpanda.api.dataplane.v1.UpdatePipelineResponse - (*DeletePipelineRequest)(nil), // 12: redpanda.api.dataplane.v1.DeletePipelineRequest - (*DeletePipelineResponse)(nil), // 13: redpanda.api.dataplane.v1.DeletePipelineResponse - (*StopPipelineRequest)(nil), // 14: redpanda.api.dataplane.v1.StopPipelineRequest - (*StopPipelineResponse)(nil), // 15: redpanda.api.dataplane.v1.StopPipelineResponse - (*StartPipelineRequest)(nil), // 16: redpanda.api.dataplane.v1.StartPipelineRequest - (*StartPipelineResponse)(nil), // 17: redpanda.api.dataplane.v1.StartPipelineResponse - (*GetPipelineServiceConfigSchemaRequest)(nil), // 18: redpanda.api.dataplane.v1.GetPipelineServiceConfigSchemaRequest - (*GetPipelineServiceConfigSchemaResponse)(nil), // 19: redpanda.api.dataplane.v1.GetPipelineServiceConfigSchemaResponse - (*PipelinesForSecret)(nil), // 20: redpanda.api.dataplane.v1.PipelinesForSecret - (*GetPipelinesForSecretRequest)(nil), // 21: redpanda.api.dataplane.v1.GetPipelinesForSecretRequest - (*GetPipelinesForSecretResponse)(nil), // 22: redpanda.api.dataplane.v1.GetPipelinesForSecretResponse - (*GetPipelinesBySecretsRequest)(nil), // 23: redpanda.api.dataplane.v1.GetPipelinesBySecretsRequest - (*GetPipelinesBySecretsResponse)(nil), // 24: redpanda.api.dataplane.v1.GetPipelinesBySecretsResponse - (*LintPipelineConfigRequest)(nil), // 25: redpanda.api.dataplane.v1.LintPipelineConfigRequest - (*LintPipelineConfigResponse)(nil), // 26: redpanda.api.dataplane.v1.LintPipelineConfigResponse - nil, // 27: redpanda.api.dataplane.v1.Pipeline.TagsEntry - (*Pipeline_Resources)(nil), // 28: redpanda.api.dataplane.v1.Pipeline.Resources - (*Pipeline_Status)(nil), // 29: redpanda.api.dataplane.v1.Pipeline.Status - (*Pipeline_ServiceAccount)(nil), // 30: redpanda.api.dataplane.v1.Pipeline.ServiceAccount - nil, // 31: redpanda.api.dataplane.v1.PipelineCreate.TagsEntry - (*ListPipelinesRequest_Filter)(nil), // 32: redpanda.api.dataplane.v1.ListPipelinesRequest.Filter - nil, // 33: redpanda.api.dataplane.v1.ListPipelinesRequest.Filter.TagsEntry - nil, // 34: redpanda.api.dataplane.v1.PipelineUpdate.TagsEntry - (*fieldmaskpb.FieldMask)(nil), // 35: google.protobuf.FieldMask - (*v1.LintHint)(nil), // 36: redpanda.api.common.v1.LintHint + (ComponentStatus)(0), // 0: redpanda.api.dataplane.v1.ComponentStatus + (Pipeline_State)(0), // 1: redpanda.api.dataplane.v1.Pipeline.State + (*Pipeline)(nil), // 2: redpanda.api.dataplane.v1.Pipeline + (*PipelineCreate)(nil), // 3: redpanda.api.dataplane.v1.PipelineCreate + (*CreatePipelineRequest)(nil), // 4: redpanda.api.dataplane.v1.CreatePipelineRequest + (*CreatePipelineResponse)(nil), // 5: redpanda.api.dataplane.v1.CreatePipelineResponse + (*GetPipelineRequest)(nil), // 6: redpanda.api.dataplane.v1.GetPipelineRequest + (*GetPipelineResponse)(nil), // 7: redpanda.api.dataplane.v1.GetPipelineResponse + (*ListPipelinesRequest)(nil), // 8: redpanda.api.dataplane.v1.ListPipelinesRequest + (*ListPipelinesResponse)(nil), // 9: redpanda.api.dataplane.v1.ListPipelinesResponse + (*PipelineUpdate)(nil), // 10: redpanda.api.dataplane.v1.PipelineUpdate + (*UpdatePipelineRequest)(nil), // 11: redpanda.api.dataplane.v1.UpdatePipelineRequest + (*UpdatePipelineResponse)(nil), // 12: redpanda.api.dataplane.v1.UpdatePipelineResponse + (*DeletePipelineRequest)(nil), // 13: redpanda.api.dataplane.v1.DeletePipelineRequest + (*DeletePipelineResponse)(nil), // 14: redpanda.api.dataplane.v1.DeletePipelineResponse + (*StopPipelineRequest)(nil), // 15: redpanda.api.dataplane.v1.StopPipelineRequest + (*StopPipelineResponse)(nil), // 16: redpanda.api.dataplane.v1.StopPipelineResponse + (*StartPipelineRequest)(nil), // 17: redpanda.api.dataplane.v1.StartPipelineRequest + (*StartPipelineResponse)(nil), // 18: redpanda.api.dataplane.v1.StartPipelineResponse + (*GetPipelineServiceConfigSchemaRequest)(nil), // 19: redpanda.api.dataplane.v1.GetPipelineServiceConfigSchemaRequest + (*GetPipelineServiceConfigSchemaResponse)(nil), // 20: redpanda.api.dataplane.v1.GetPipelineServiceConfigSchemaResponse + (*ListComponentsRequest)(nil), // 21: redpanda.api.dataplane.v1.ListComponentsRequest + (*ListComponentsResponse)(nil), // 22: redpanda.api.dataplane.v1.ListComponentsResponse + (*ComponentList)(nil), // 23: redpanda.api.dataplane.v1.ComponentList + (*ComponentSpec)(nil), // 24: redpanda.api.dataplane.v1.ComponentSpec + (*FieldSpec)(nil), // 25: redpanda.api.dataplane.v1.FieldSpec + (*AnnotatedOption)(nil), // 26: redpanda.api.dataplane.v1.AnnotatedOption + (*BloblangFunctionSpec)(nil), // 27: redpanda.api.dataplane.v1.BloblangFunctionSpec + (*BloblangMethodSpec)(nil), // 28: redpanda.api.dataplane.v1.BloblangMethodSpec + (*ParamSpec)(nil), // 29: redpanda.api.dataplane.v1.ParamSpec + (*ParamDefinition)(nil), // 30: redpanda.api.dataplane.v1.ParamDefinition + (*PipelinesForSecret)(nil), // 31: redpanda.api.dataplane.v1.PipelinesForSecret + (*GetPipelinesForSecretRequest)(nil), // 32: redpanda.api.dataplane.v1.GetPipelinesForSecretRequest + (*GetPipelinesForSecretResponse)(nil), // 33: redpanda.api.dataplane.v1.GetPipelinesForSecretResponse + (*GetPipelinesBySecretsRequest)(nil), // 34: redpanda.api.dataplane.v1.GetPipelinesBySecretsRequest + (*GetPipelinesBySecretsResponse)(nil), // 35: redpanda.api.dataplane.v1.GetPipelinesBySecretsResponse + (*LintPipelineConfigRequest)(nil), // 36: redpanda.api.dataplane.v1.LintPipelineConfigRequest + (*LintPipelineConfigResponse)(nil), // 37: redpanda.api.dataplane.v1.LintPipelineConfigResponse + nil, // 38: redpanda.api.dataplane.v1.Pipeline.TagsEntry + (*Pipeline_Resources)(nil), // 39: redpanda.api.dataplane.v1.Pipeline.Resources + (*Pipeline_Status)(nil), // 40: redpanda.api.dataplane.v1.Pipeline.Status + (*Pipeline_ServiceAccount)(nil), // 41: redpanda.api.dataplane.v1.Pipeline.ServiceAccount + nil, // 42: redpanda.api.dataplane.v1.PipelineCreate.TagsEntry + (*ListPipelinesRequest_Filter)(nil), // 43: redpanda.api.dataplane.v1.ListPipelinesRequest.Filter + nil, // 44: redpanda.api.dataplane.v1.ListPipelinesRequest.Filter.TagsEntry + nil, // 45: redpanda.api.dataplane.v1.PipelineUpdate.TagsEntry + (*fieldmaskpb.FieldMask)(nil), // 46: google.protobuf.FieldMask + (*v1.LintHint)(nil), // 47: redpanda.api.common.v1.LintHint } var file_redpanda_api_dataplane_v1_pipeline_proto_depIdxs = []int32{ - 28, // 0: redpanda.api.dataplane.v1.Pipeline.resources:type_name -> redpanda.api.dataplane.v1.Pipeline.Resources - 0, // 1: redpanda.api.dataplane.v1.Pipeline.state:type_name -> redpanda.api.dataplane.v1.Pipeline.State - 29, // 2: redpanda.api.dataplane.v1.Pipeline.status:type_name -> redpanda.api.dataplane.v1.Pipeline.Status - 27, // 3: redpanda.api.dataplane.v1.Pipeline.tags:type_name -> redpanda.api.dataplane.v1.Pipeline.TagsEntry - 30, // 4: redpanda.api.dataplane.v1.Pipeline.service_account:type_name -> redpanda.api.dataplane.v1.Pipeline.ServiceAccount - 28, // 5: redpanda.api.dataplane.v1.PipelineCreate.resources:type_name -> redpanda.api.dataplane.v1.Pipeline.Resources - 31, // 6: redpanda.api.dataplane.v1.PipelineCreate.tags:type_name -> redpanda.api.dataplane.v1.PipelineCreate.TagsEntry - 30, // 7: redpanda.api.dataplane.v1.PipelineCreate.service_account:type_name -> redpanda.api.dataplane.v1.Pipeline.ServiceAccount - 2, // 8: redpanda.api.dataplane.v1.CreatePipelineRequest.pipeline:type_name -> redpanda.api.dataplane.v1.PipelineCreate - 1, // 9: redpanda.api.dataplane.v1.CreatePipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline - 1, // 10: redpanda.api.dataplane.v1.GetPipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline - 32, // 11: redpanda.api.dataplane.v1.ListPipelinesRequest.filter:type_name -> redpanda.api.dataplane.v1.ListPipelinesRequest.Filter - 1, // 12: redpanda.api.dataplane.v1.ListPipelinesResponse.pipelines:type_name -> redpanda.api.dataplane.v1.Pipeline - 28, // 13: redpanda.api.dataplane.v1.PipelineUpdate.resources:type_name -> redpanda.api.dataplane.v1.Pipeline.Resources - 34, // 14: redpanda.api.dataplane.v1.PipelineUpdate.tags:type_name -> redpanda.api.dataplane.v1.PipelineUpdate.TagsEntry - 30, // 15: redpanda.api.dataplane.v1.PipelineUpdate.service_account:type_name -> redpanda.api.dataplane.v1.Pipeline.ServiceAccount - 9, // 16: redpanda.api.dataplane.v1.UpdatePipelineRequest.pipeline:type_name -> redpanda.api.dataplane.v1.PipelineUpdate - 35, // 17: redpanda.api.dataplane.v1.UpdatePipelineRequest.update_mask:type_name -> google.protobuf.FieldMask - 1, // 18: redpanda.api.dataplane.v1.UpdatePipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline - 1, // 19: redpanda.api.dataplane.v1.StopPipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline - 1, // 20: redpanda.api.dataplane.v1.StartPipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline - 1, // 21: redpanda.api.dataplane.v1.PipelinesForSecret.pipelines:type_name -> redpanda.api.dataplane.v1.Pipeline - 20, // 22: redpanda.api.dataplane.v1.GetPipelinesForSecretResponse.pipelines_for_secret:type_name -> redpanda.api.dataplane.v1.PipelinesForSecret - 20, // 23: redpanda.api.dataplane.v1.GetPipelinesBySecretsResponse.pipelines_for_secret:type_name -> redpanda.api.dataplane.v1.PipelinesForSecret - 36, // 24: redpanda.api.dataplane.v1.LintPipelineConfigResponse.lint_hints:type_name -> redpanda.api.common.v1.LintHint - 33, // 25: redpanda.api.dataplane.v1.ListPipelinesRequest.Filter.tags:type_name -> redpanda.api.dataplane.v1.ListPipelinesRequest.Filter.TagsEntry - 3, // 26: redpanda.api.dataplane.v1.PipelineService.CreatePipeline:input_type -> redpanda.api.dataplane.v1.CreatePipelineRequest - 5, // 27: redpanda.api.dataplane.v1.PipelineService.GetPipeline:input_type -> redpanda.api.dataplane.v1.GetPipelineRequest - 7, // 28: redpanda.api.dataplane.v1.PipelineService.ListPipelines:input_type -> redpanda.api.dataplane.v1.ListPipelinesRequest - 10, // 29: redpanda.api.dataplane.v1.PipelineService.UpdatePipeline:input_type -> redpanda.api.dataplane.v1.UpdatePipelineRequest - 12, // 30: redpanda.api.dataplane.v1.PipelineService.DeletePipeline:input_type -> redpanda.api.dataplane.v1.DeletePipelineRequest - 14, // 31: redpanda.api.dataplane.v1.PipelineService.StopPipeline:input_type -> redpanda.api.dataplane.v1.StopPipelineRequest - 16, // 32: redpanda.api.dataplane.v1.PipelineService.StartPipeline:input_type -> redpanda.api.dataplane.v1.StartPipelineRequest - 18, // 33: redpanda.api.dataplane.v1.PipelineService.GetPipelineServiceConfigSchema:input_type -> redpanda.api.dataplane.v1.GetPipelineServiceConfigSchemaRequest - 21, // 34: redpanda.api.dataplane.v1.PipelineService.GetPipelinesForSecret:input_type -> redpanda.api.dataplane.v1.GetPipelinesForSecretRequest - 23, // 35: redpanda.api.dataplane.v1.PipelineService.GetPipelinesBySecrets:input_type -> redpanda.api.dataplane.v1.GetPipelinesBySecretsRequest - 25, // 36: redpanda.api.dataplane.v1.PipelineService.LintPipelineConfig:input_type -> redpanda.api.dataplane.v1.LintPipelineConfigRequest - 4, // 37: redpanda.api.dataplane.v1.PipelineService.CreatePipeline:output_type -> redpanda.api.dataplane.v1.CreatePipelineResponse - 6, // 38: redpanda.api.dataplane.v1.PipelineService.GetPipeline:output_type -> redpanda.api.dataplane.v1.GetPipelineResponse - 8, // 39: redpanda.api.dataplane.v1.PipelineService.ListPipelines:output_type -> redpanda.api.dataplane.v1.ListPipelinesResponse - 11, // 40: redpanda.api.dataplane.v1.PipelineService.UpdatePipeline:output_type -> redpanda.api.dataplane.v1.UpdatePipelineResponse - 13, // 41: redpanda.api.dataplane.v1.PipelineService.DeletePipeline:output_type -> redpanda.api.dataplane.v1.DeletePipelineResponse - 15, // 42: redpanda.api.dataplane.v1.PipelineService.StopPipeline:output_type -> redpanda.api.dataplane.v1.StopPipelineResponse - 17, // 43: redpanda.api.dataplane.v1.PipelineService.StartPipeline:output_type -> redpanda.api.dataplane.v1.StartPipelineResponse - 19, // 44: redpanda.api.dataplane.v1.PipelineService.GetPipelineServiceConfigSchema:output_type -> redpanda.api.dataplane.v1.GetPipelineServiceConfigSchemaResponse - 22, // 45: redpanda.api.dataplane.v1.PipelineService.GetPipelinesForSecret:output_type -> redpanda.api.dataplane.v1.GetPipelinesForSecretResponse - 24, // 46: redpanda.api.dataplane.v1.PipelineService.GetPipelinesBySecrets:output_type -> redpanda.api.dataplane.v1.GetPipelinesBySecretsResponse - 26, // 47: redpanda.api.dataplane.v1.PipelineService.LintPipelineConfig:output_type -> redpanda.api.dataplane.v1.LintPipelineConfigResponse - 37, // [37:48] is the sub-list for method output_type - 26, // [26:37] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 39, // 0: redpanda.api.dataplane.v1.Pipeline.resources:type_name -> redpanda.api.dataplane.v1.Pipeline.Resources + 1, // 1: redpanda.api.dataplane.v1.Pipeline.state:type_name -> redpanda.api.dataplane.v1.Pipeline.State + 40, // 2: redpanda.api.dataplane.v1.Pipeline.status:type_name -> redpanda.api.dataplane.v1.Pipeline.Status + 38, // 3: redpanda.api.dataplane.v1.Pipeline.tags:type_name -> redpanda.api.dataplane.v1.Pipeline.TagsEntry + 41, // 4: redpanda.api.dataplane.v1.Pipeline.service_account:type_name -> redpanda.api.dataplane.v1.Pipeline.ServiceAccount + 39, // 5: redpanda.api.dataplane.v1.PipelineCreate.resources:type_name -> redpanda.api.dataplane.v1.Pipeline.Resources + 42, // 6: redpanda.api.dataplane.v1.PipelineCreate.tags:type_name -> redpanda.api.dataplane.v1.PipelineCreate.TagsEntry + 41, // 7: redpanda.api.dataplane.v1.PipelineCreate.service_account:type_name -> redpanda.api.dataplane.v1.Pipeline.ServiceAccount + 3, // 8: redpanda.api.dataplane.v1.CreatePipelineRequest.pipeline:type_name -> redpanda.api.dataplane.v1.PipelineCreate + 2, // 9: redpanda.api.dataplane.v1.CreatePipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline + 2, // 10: redpanda.api.dataplane.v1.GetPipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline + 43, // 11: redpanda.api.dataplane.v1.ListPipelinesRequest.filter:type_name -> redpanda.api.dataplane.v1.ListPipelinesRequest.Filter + 2, // 12: redpanda.api.dataplane.v1.ListPipelinesResponse.pipelines:type_name -> redpanda.api.dataplane.v1.Pipeline + 39, // 13: redpanda.api.dataplane.v1.PipelineUpdate.resources:type_name -> redpanda.api.dataplane.v1.Pipeline.Resources + 45, // 14: redpanda.api.dataplane.v1.PipelineUpdate.tags:type_name -> redpanda.api.dataplane.v1.PipelineUpdate.TagsEntry + 41, // 15: redpanda.api.dataplane.v1.PipelineUpdate.service_account:type_name -> redpanda.api.dataplane.v1.Pipeline.ServiceAccount + 10, // 16: redpanda.api.dataplane.v1.UpdatePipelineRequest.pipeline:type_name -> redpanda.api.dataplane.v1.PipelineUpdate + 46, // 17: redpanda.api.dataplane.v1.UpdatePipelineRequest.update_mask:type_name -> google.protobuf.FieldMask + 2, // 18: redpanda.api.dataplane.v1.UpdatePipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline + 2, // 19: redpanda.api.dataplane.v1.StopPipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline + 2, // 20: redpanda.api.dataplane.v1.StartPipelineResponse.pipeline:type_name -> redpanda.api.dataplane.v1.Pipeline + 46, // 21: redpanda.api.dataplane.v1.ListComponentsRequest.read_mask:type_name -> google.protobuf.FieldMask + 23, // 22: redpanda.api.dataplane.v1.ListComponentsResponse.components:type_name -> redpanda.api.dataplane.v1.ComponentList + 24, // 23: redpanda.api.dataplane.v1.ComponentList.buffers:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 24, // 24: redpanda.api.dataplane.v1.ComponentList.caches:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 24, // 25: redpanda.api.dataplane.v1.ComponentList.inputs:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 24, // 26: redpanda.api.dataplane.v1.ComponentList.outputs:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 24, // 27: redpanda.api.dataplane.v1.ComponentList.processors:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 24, // 28: redpanda.api.dataplane.v1.ComponentList.rate_limits:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 24, // 29: redpanda.api.dataplane.v1.ComponentList.metrics:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 24, // 30: redpanda.api.dataplane.v1.ComponentList.tracers:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 24, // 31: redpanda.api.dataplane.v1.ComponentList.scanners:type_name -> redpanda.api.dataplane.v1.ComponentSpec + 27, // 32: redpanda.api.dataplane.v1.ComponentList.bloblang_functions:type_name -> redpanda.api.dataplane.v1.BloblangFunctionSpec + 28, // 33: redpanda.api.dataplane.v1.ComponentList.bloblang_methods:type_name -> redpanda.api.dataplane.v1.BloblangMethodSpec + 0, // 34: redpanda.api.dataplane.v1.ComponentSpec.status:type_name -> redpanda.api.dataplane.v1.ComponentStatus + 25, // 35: redpanda.api.dataplane.v1.ComponentSpec.config:type_name -> redpanda.api.dataplane.v1.FieldSpec + 25, // 36: redpanda.api.dataplane.v1.FieldSpec.children:type_name -> redpanda.api.dataplane.v1.FieldSpec + 26, // 37: redpanda.api.dataplane.v1.FieldSpec.annotated_options:type_name -> redpanda.api.dataplane.v1.AnnotatedOption + 29, // 38: redpanda.api.dataplane.v1.BloblangFunctionSpec.params:type_name -> redpanda.api.dataplane.v1.ParamSpec + 29, // 39: redpanda.api.dataplane.v1.BloblangMethodSpec.params:type_name -> redpanda.api.dataplane.v1.ParamSpec + 30, // 40: redpanda.api.dataplane.v1.ParamSpec.definitions:type_name -> redpanda.api.dataplane.v1.ParamDefinition + 2, // 41: redpanda.api.dataplane.v1.PipelinesForSecret.pipelines:type_name -> redpanda.api.dataplane.v1.Pipeline + 31, // 42: redpanda.api.dataplane.v1.GetPipelinesForSecretResponse.pipelines_for_secret:type_name -> redpanda.api.dataplane.v1.PipelinesForSecret + 31, // 43: redpanda.api.dataplane.v1.GetPipelinesBySecretsResponse.pipelines_for_secret:type_name -> redpanda.api.dataplane.v1.PipelinesForSecret + 47, // 44: redpanda.api.dataplane.v1.LintPipelineConfigResponse.lint_hints:type_name -> redpanda.api.common.v1.LintHint + 44, // 45: redpanda.api.dataplane.v1.ListPipelinesRequest.Filter.tags:type_name -> redpanda.api.dataplane.v1.ListPipelinesRequest.Filter.TagsEntry + 4, // 46: redpanda.api.dataplane.v1.PipelineService.CreatePipeline:input_type -> redpanda.api.dataplane.v1.CreatePipelineRequest + 6, // 47: redpanda.api.dataplane.v1.PipelineService.GetPipeline:input_type -> redpanda.api.dataplane.v1.GetPipelineRequest + 8, // 48: redpanda.api.dataplane.v1.PipelineService.ListPipelines:input_type -> redpanda.api.dataplane.v1.ListPipelinesRequest + 11, // 49: redpanda.api.dataplane.v1.PipelineService.UpdatePipeline:input_type -> redpanda.api.dataplane.v1.UpdatePipelineRequest + 13, // 50: redpanda.api.dataplane.v1.PipelineService.DeletePipeline:input_type -> redpanda.api.dataplane.v1.DeletePipelineRequest + 15, // 51: redpanda.api.dataplane.v1.PipelineService.StopPipeline:input_type -> redpanda.api.dataplane.v1.StopPipelineRequest + 17, // 52: redpanda.api.dataplane.v1.PipelineService.StartPipeline:input_type -> redpanda.api.dataplane.v1.StartPipelineRequest + 19, // 53: redpanda.api.dataplane.v1.PipelineService.GetPipelineServiceConfigSchema:input_type -> redpanda.api.dataplane.v1.GetPipelineServiceConfigSchemaRequest + 21, // 54: redpanda.api.dataplane.v1.PipelineService.ListComponents:input_type -> redpanda.api.dataplane.v1.ListComponentsRequest + 32, // 55: redpanda.api.dataplane.v1.PipelineService.GetPipelinesForSecret:input_type -> redpanda.api.dataplane.v1.GetPipelinesForSecretRequest + 34, // 56: redpanda.api.dataplane.v1.PipelineService.GetPipelinesBySecrets:input_type -> redpanda.api.dataplane.v1.GetPipelinesBySecretsRequest + 36, // 57: redpanda.api.dataplane.v1.PipelineService.LintPipelineConfig:input_type -> redpanda.api.dataplane.v1.LintPipelineConfigRequest + 5, // 58: redpanda.api.dataplane.v1.PipelineService.CreatePipeline:output_type -> redpanda.api.dataplane.v1.CreatePipelineResponse + 7, // 59: redpanda.api.dataplane.v1.PipelineService.GetPipeline:output_type -> redpanda.api.dataplane.v1.GetPipelineResponse + 9, // 60: redpanda.api.dataplane.v1.PipelineService.ListPipelines:output_type -> redpanda.api.dataplane.v1.ListPipelinesResponse + 12, // 61: redpanda.api.dataplane.v1.PipelineService.UpdatePipeline:output_type -> redpanda.api.dataplane.v1.UpdatePipelineResponse + 14, // 62: redpanda.api.dataplane.v1.PipelineService.DeletePipeline:output_type -> redpanda.api.dataplane.v1.DeletePipelineResponse + 16, // 63: redpanda.api.dataplane.v1.PipelineService.StopPipeline:output_type -> redpanda.api.dataplane.v1.StopPipelineResponse + 18, // 64: redpanda.api.dataplane.v1.PipelineService.StartPipeline:output_type -> redpanda.api.dataplane.v1.StartPipelineResponse + 20, // 65: redpanda.api.dataplane.v1.PipelineService.GetPipelineServiceConfigSchema:output_type -> redpanda.api.dataplane.v1.GetPipelineServiceConfigSchemaResponse + 22, // 66: redpanda.api.dataplane.v1.PipelineService.ListComponents:output_type -> redpanda.api.dataplane.v1.ListComponentsResponse + 33, // 67: redpanda.api.dataplane.v1.PipelineService.GetPipelinesForSecret:output_type -> redpanda.api.dataplane.v1.GetPipelinesForSecretResponse + 35, // 68: redpanda.api.dataplane.v1.PipelineService.GetPipelinesBySecrets:output_type -> redpanda.api.dataplane.v1.GetPipelinesBySecretsResponse + 37, // 69: redpanda.api.dataplane.v1.PipelineService.LintPipelineConfig:output_type -> redpanda.api.dataplane.v1.LintPipelineConfigResponse + 58, // [58:70] is the sub-list for method output_type + 46, // [46:58] is the sub-list for method input_type + 46, // [46:46] is the sub-list for extension type_name + 46, // [46:46] is the sub-list for extension extendee + 0, // [0:46] is the sub-list for field type_name } func init() { file_redpanda_api_dataplane_v1_pipeline_proto_init() } @@ -2484,8 +3672,8 @@ func file_redpanda_api_dataplane_v1_pipeline_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_redpanda_api_dataplane_v1_pipeline_proto_rawDesc, - NumEnums: 1, - NumMessages: 34, + NumEnums: 2, + NumMessages: 44, NumExtensions: 0, NumServices: 1, }, diff --git a/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.gw.go b/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.gw.go index 6dfa9ab4a..94320a3b0 100644 --- a/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.gw.go +++ b/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline.pb.gw.go @@ -333,6 +333,41 @@ func local_request_PipelineService_GetPipelineServiceConfigSchema_0(ctx context. return msg, metadata, err } +var filter_PipelineService_ListComponents_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + +func request_PipelineService_ListComponents_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq ListComponentsRequest + metadata runtime.ServerMetadata + ) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_ListComponents_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.ListComponents(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_PipelineService_ListComponents_0(ctx context.Context, marshaler runtime.Marshaler, server PipelineServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq ListComponentsRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PipelineService_ListComponents_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.ListComponents(ctx, &protoReq) + return msg, metadata, err +} + var filter_PipelineService_GetPipelinesForSecret_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} func request_PipelineService_GetPipelinesForSecret_0(ctx context.Context, marshaler runtime.Marshaler, client PipelineServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -582,6 +617,26 @@ func RegisterPipelineServiceHandlerServer(ctx context.Context, mux *runtime.Serv } forward_PipelineService_GetPipelineServiceConfigSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodGet, pattern_PipelineService_ListComponents_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/redpanda.api.dataplane.v1.PipelineService/ListComponents", runtime.WithHTTPPathPattern("/v1/redpanda-connect/components")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_PipelineService_ListComponents_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_PipelineService_ListComponents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodGet, pattern_PipelineService_GetPipelinesForSecret_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -818,6 +873,23 @@ func RegisterPipelineServiceHandlerClient(ctx context.Context, mux *runtime.Serv } forward_PipelineService_GetPipelineServiceConfigSchema_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodGet, pattern_PipelineService_ListComponents_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/redpanda.api.dataplane.v1.PipelineService/ListComponents", runtime.WithHTTPPathPattern("/v1/redpanda-connect/components")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_PipelineService_ListComponents_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_PipelineService_ListComponents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodGet, pattern_PipelineService_GetPipelinesForSecret_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -881,6 +953,7 @@ var ( pattern_PipelineService_StopPipeline_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"v1", "redpanda-connect", "pipelines", "id", "stop"}, "")) pattern_PipelineService_StartPipeline_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"v1", "redpanda-connect", "pipelines", "id", "start"}, "")) pattern_PipelineService_GetPipelineServiceConfigSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "redpanda-connect", "config-schema"}, "")) + pattern_PipelineService_ListComponents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "redpanda-connect", "components"}, "")) pattern_PipelineService_GetPipelinesForSecret_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "redpanda-connect", "pipelines-for-secret"}, "")) pattern_PipelineService_GetPipelinesBySecrets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "redpanda-connect", "pipelines-by-secrets"}, "")) pattern_PipelineService_LintPipelineConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "redpanda-connect", "pipelines"}, "lint-config")) @@ -895,6 +968,7 @@ var ( forward_PipelineService_StopPipeline_0 = runtime.ForwardResponseMessage forward_PipelineService_StartPipeline_0 = runtime.ForwardResponseMessage forward_PipelineService_GetPipelineServiceConfigSchema_0 = runtime.ForwardResponseMessage + forward_PipelineService_ListComponents_0 = runtime.ForwardResponseMessage forward_PipelineService_GetPipelinesForSecret_0 = runtime.ForwardResponseMessage forward_PipelineService_GetPipelinesBySecrets_0 = runtime.ForwardResponseMessage forward_PipelineService_LintPipelineConfig_0 = runtime.ForwardResponseMessage diff --git a/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline_grpc.pb.go b/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline_grpc.pb.go index 6babd892c..0926081cd 100644 --- a/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline_grpc.pb.go +++ b/backend/pkg/protogen/redpanda/api/dataplane/v1/pipeline_grpc.pb.go @@ -28,6 +28,7 @@ const ( PipelineService_StopPipeline_FullMethodName = "/redpanda.api.dataplane.v1.PipelineService/StopPipeline" PipelineService_StartPipeline_FullMethodName = "/redpanda.api.dataplane.v1.PipelineService/StartPipeline" PipelineService_GetPipelineServiceConfigSchema_FullMethodName = "/redpanda.api.dataplane.v1.PipelineService/GetPipelineServiceConfigSchema" + PipelineService_ListComponents_FullMethodName = "/redpanda.api.dataplane.v1.PipelineService/ListComponents" PipelineService_GetPipelinesForSecret_FullMethodName = "/redpanda.api.dataplane.v1.PipelineService/GetPipelinesForSecret" PipelineService_GetPipelinesBySecrets_FullMethodName = "/redpanda.api.dataplane.v1.PipelineService/GetPipelinesBySecrets" PipelineService_LintPipelineConfig_FullMethodName = "/redpanda.api.dataplane.v1.PipelineService/LintPipelineConfig" @@ -57,6 +58,8 @@ type PipelineServiceClient interface { StartPipeline(ctx context.Context, in *StartPipelineRequest, opts ...grpc.CallOption) (*StartPipelineResponse, error) // The configuration schema includes available [components and processors](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about) in this Redpanda Connect instance. GetPipelineServiceConfigSchema(ctx context.Context, in *GetPipelineServiceConfigSchemaRequest, opts ...grpc.CallOption) (*GetPipelineServiceConfigSchemaResponse, error) + // ListComponents returns a JSON containing lists of allowed components based on component type filter. + ListComponents(ctx context.Context, in *ListComponentsRequest, opts ...grpc.CallOption) (*ListComponentsResponse, error) // GetPipelinesForSecret implements the get pipelines for secret method which lists the pipelines // in the Redpanda cluster for the given secret. GetPipelinesForSecret(ctx context.Context, in *GetPipelinesForSecretRequest, opts ...grpc.CallOption) (*GetPipelinesForSecretResponse, error) @@ -156,6 +159,16 @@ func (c *pipelineServiceClient) GetPipelineServiceConfigSchema(ctx context.Conte return out, nil } +func (c *pipelineServiceClient) ListComponents(ctx context.Context, in *ListComponentsRequest, opts ...grpc.CallOption) (*ListComponentsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListComponentsResponse) + err := c.cc.Invoke(ctx, PipelineService_ListComponents_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *pipelineServiceClient) GetPipelinesForSecret(ctx context.Context, in *GetPipelinesForSecretRequest, opts ...grpc.CallOption) (*GetPipelinesForSecretResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetPipelinesForSecretResponse) @@ -210,6 +223,8 @@ type PipelineServiceServer interface { StartPipeline(context.Context, *StartPipelineRequest) (*StartPipelineResponse, error) // The configuration schema includes available [components and processors](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about) in this Redpanda Connect instance. GetPipelineServiceConfigSchema(context.Context, *GetPipelineServiceConfigSchemaRequest) (*GetPipelineServiceConfigSchemaResponse, error) + // ListComponents returns a JSON containing lists of allowed components based on component type filter. + ListComponents(context.Context, *ListComponentsRequest) (*ListComponentsResponse, error) // GetPipelinesForSecret implements the get pipelines for secret method which lists the pipelines // in the Redpanda cluster for the given secret. GetPipelinesForSecret(context.Context, *GetPipelinesForSecretRequest) (*GetPipelinesForSecretResponse, error) @@ -253,6 +268,9 @@ func (UnimplementedPipelineServiceServer) StartPipeline(context.Context, *StartP func (UnimplementedPipelineServiceServer) GetPipelineServiceConfigSchema(context.Context, *GetPipelineServiceConfigSchemaRequest) (*GetPipelineServiceConfigSchemaResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPipelineServiceConfigSchema not implemented") } +func (UnimplementedPipelineServiceServer) ListComponents(context.Context, *ListComponentsRequest) (*ListComponentsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListComponents not implemented") +} func (UnimplementedPipelineServiceServer) GetPipelinesForSecret(context.Context, *GetPipelinesForSecretRequest) (*GetPipelinesForSecretResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPipelinesForSecret not implemented") } @@ -427,6 +445,24 @@ func _PipelineService_GetPipelineServiceConfigSchema_Handler(srv interface{}, ct return interceptor(ctx, in, info, handler) } +func _PipelineService_ListComponents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListComponentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServiceServer).ListComponents(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PipelineService_ListComponents_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServiceServer).ListComponents(ctx, req.(*ListComponentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _PipelineService_GetPipelinesForSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetPipelinesForSecretRequest) if err := dec(in); err != nil { @@ -520,6 +556,10 @@ var PipelineService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetPipelineServiceConfigSchema", Handler: _PipelineService_GetPipelineServiceConfigSchema_Handler, }, + { + MethodName: "ListComponents", + Handler: _PipelineService_ListComponents_Handler, + }, { MethodName: "GetPipelinesForSecret", Handler: _PipelineService_GetPipelinesForSecret_Handler, diff --git a/frontend/src/protogen/redpanda/api/dataplane/v1/pipeline-PipelineService_connectquery.ts b/frontend/src/protogen/redpanda/api/dataplane/v1/pipeline-PipelineService_connectquery.ts index 265633527..6ac269640 100644 --- a/frontend/src/protogen/redpanda/api/dataplane/v1/pipeline-PipelineService_connectquery.ts +++ b/frontend/src/protogen/redpanda/api/dataplane/v1/pipeline-PipelineService_connectquery.ts @@ -61,6 +61,13 @@ export const startPipeline = PipelineService.method.startPipeline; */ export const getPipelineServiceConfigSchema = PipelineService.method.getPipelineServiceConfigSchema; +/** + * ListComponents returns a JSON containing lists of allowed components based on component type filter. + * + * @generated from rpc redpanda.api.dataplane.v1.PipelineService.ListComponents + */ +export const listComponents = PipelineService.method.listComponents; + /** * GetPipelinesForSecret implements the get pipelines for secret method which lists the pipelines * in the Redpanda cluster for the given secret. diff --git a/frontend/src/protogen/redpanda/api/dataplane/v1/pipeline_pb.ts b/frontend/src/protogen/redpanda/api/dataplane/v1/pipeline_pb.ts index 3e5eef094..f34c4252f 100644 --- a/frontend/src/protogen/redpanda/api/dataplane/v1/pipeline_pb.ts +++ b/frontend/src/protogen/redpanda/api/dataplane/v1/pipeline_pb.ts @@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file redpanda/api/dataplane/v1/pipeline.proto. */ export const file_redpanda_api_dataplane_v1_pipeline: GenFile = /*@__PURE__*/ - fileDesc("CihyZWRwYW5kYS9hcGkvZGF0YXBsYW5lL3YxL3BpcGVsaW5lLnByb3RvEhlyZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxIt0LCghQaXBlbGluZRIqCgJpZBgBIAEoCUIe4EECukgYyAEBchMyEV5bQS1aYS16MC05LV8vXSskEjoKDGRpc3BsYXlfbmFtZRgCIAEoCUIk4EECukgeyAEBchkQAxiAATISXltBLVphLXowLTktXyAvXSskEh0KC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiAAhL4AQoLY29uZmlnX3lhbWwYBCABKAlC4gGSQdUBMtIBVGhlIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBpbiBZQU1MIGZvcm1hdC4gU2VlIHRoZSBbUmVkcGFuZGEgQ29ubmVjdCBDb25maWd1cmF0aW9uXShodHRwczovL2RvY3MucmVkcGFuZGEuY29tL3JlZHBhbmRhLWNsb3VkL2RldmVsb3AvY29ubmVjdC9jb25maWd1cmF0aW9uL2Fib3V0KSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMu4EECukgDyAEBEvgBCglyZXNvdXJjZXMYCSABKAsyLS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lLlJlc291cmNlc0K1AZJBsQEyrgFUaGUgcmVxdWVzdGVkIGFtb3VudCBvZiByZXNvdXJjZXMgZm9yIHRoZSBwaXBlbGluZS4gRGVwZW5kaW5nIG9uIHRoZSBiYWNrZW5kLCB0aGUgcmVzb3VyY2VzIG1pZ2h0IGJlIGd1YXJhbnRlZWQsIG9yIG1pZ2h0IGJlIHR3ZWFrZWQgYmFzZWQgb24gdGhlIHV0aWxpemF0aW9uIG9mIHRoZSBwaXBlbGluZS4SPQoFc3RhdGUYByABKA4yKS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lLlN0YXRlQgPgQQMSPwoGc3RhdHVzGAggASgLMioucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5TdGF0dXNCA+BBAxILCgN1cmwYCiABKAkSagoEdGFncxgLIAMoCzItLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmUuVGFnc0VudHJ5Qi26SCqaAScQECojciEyH14oW1xwe0x9XHB7Wn1ccHtOfV8uOi89K1wtQF0qKSQSUAoPc2VydmljZV9hY2NvdW50GAwgASgLMjIucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5TZXJ2aWNlQWNjb3VudEID4EEBGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGkwKCVJlc291cmNlcxIgCg1tZW1vcnlfc2hhcmVzGAEgASgJQgngQQK6SAPIAQESHQoKY3B1X3NoYXJlcxgCIAEoCUIJ4EECukgDyAEBGhcKBlN0YXR1cxINCgVlcnJvchgCIAEoCRqFAQoOU2VydmljZUFjY291bnQSEQoJY2xpZW50X2lkGAEgASgJEmAKDWNsaWVudF9zZWNyZXQYAiABKAlCSbpIRnJEMkJeXCRce3NlY3JldHNcLltBLVphLXpfXVtBLVphLXowLTlfXSooXC5bQS1aYS16X11bQS1aYS16MC05X10qKT9cfSQikgEKBVN0YXRlEhUKEVNUQVRFX1VOU1BFQ0lGSUVEEAASEgoOU1RBVEVfU1RBUlRJTkcQARIRCg1TVEFURV9SVU5OSU5HEAISEgoOU1RBVEVfU1RPUFBJTkcQAxIRCg1TVEFURV9TVE9QUEVEEAQSDwoLU1RBVEVfRVJST1IQBRITCg9TVEFURV9DT01QTEVURUQQBjo86kE5CiJyZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxL1BpcGVsaW5lKglwaXBlbGluZXMyCHBpcGVsaW5lSgQIBRAGSgQIBhAHUgdyZXF1ZXN0UgVsaW1pdCKeBAoOUGlwZWxpbmVDcmVhdGUSOgoMZGlzcGxheV9uYW1lGAEgASgJQiTgQQK6SB7IAQFyGRADGIABMhJeW0EtWmEtejAtOS1fIC9dKyQSHQoLZGVzY3JpcHRpb24YAiABKAlCCLpIBXIDGIACEh4KC2NvbmZpZ195YW1sGAMgASgJQgngQQK6SAPIAQESQAoJcmVzb3VyY2VzGAYgASgLMi0ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5SZXNvdXJjZXMScAoEdGFncxgHIAMoCzIzLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVDcmVhdGUuVGFnc0VudHJ5Qi26SCqaAScQECojciEyH14oW1xwe0x9XHB7Wn1ccHtOfV8uOi89K1wtQF0qKSQSUAoPc2VydmljZV9hY2NvdW50GAggASgLMjIucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5TZXJ2aWNlQWNjb3VudEID4EEBGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOkLqQT8KKHJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEvUGlwZWxpbmVDcmVhdGUqCXBpcGVsaW5lczIIcGlwZWxpbmVKBAgEEAVKBAgFEAZSB3JlcXVlc3RSBWxpbWl0IlQKFUNyZWF0ZVBpcGVsaW5lUmVxdWVzdBI7CghwaXBlbGluZRgBIAEoCzIpLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVDcmVhdGUiTwoWQ3JlYXRlUGlwZWxpbmVSZXNwb25zZRI1CghwaXBlbGluZRgBIAEoCzIjLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmUiQAoSR2V0UGlwZWxpbmVSZXF1ZXN0EioKAmlkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVphLXowLTktXy9dKyQiTAoTR2V0UGlwZWxpbmVSZXNwb25zZRI1CghwaXBlbGluZRgBIAEoCzIjLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmUimwUKFExpc3RQaXBlbGluZXNSZXF1ZXN0EkYKBmZpbHRlchgBIAEoCzI2LnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuTGlzdFBpcGVsaW5lc1JlcXVlc3QuRmlsdGVyEp8BCglwYWdlX3NpemUYAiABKAVCiwGSQXUyYUxpbWl0IHRoZSBwYWdpbmF0ZWQgcmVzcG9uc2UgdG8gYSBudW1iZXIgb2YgaXRlbXMuIERlZmF1bHRzIHRvIDEwMC4gVXNlIC0xIHRvIGRpc2FibGUgcGFnaW5hdGlvbi5ZAAAAAABAj0BpAAAAAAAA8L+6SBAaDhjoByj///////////8BEhIKCnBhZ2VfdG9rZW4YAyABKAkahAMKBkZpbHRlchJ5Cg1uYW1lX2NvbnRhaW5zGAEgASgJQmKSQUAyPkFueSBwaXBlbGluZXMgdGhhdCBwYXJ0aWFsbHkgbWF0Y2ggdGhpcyBuYW1lIHdpbGwgYmUgcmV0dXJuZWQuukgc2AEBchcYgAEyEl5bQS1aYS16MC05LV8gL10rJBK+AQoEdGFncxgCIAMoCzJALnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuTGlzdFBpcGVsaW5lc1JlcXVlc3QuRmlsdGVyLlRhZ3NFbnRyeUJukkE+MjxQaXBlbGluZXMgdGhhdCBtYXRjaCBhbGwgdGhlIHByb3ZpZGVkIHRhZ3Mgd2lsbCBiZSByZXR1cm5lZC66SCqaAScQECojciEyH14oW1xwe0x9XHB7Wn1ccHtOfV8uOi89K1wtQF0qKSQSEQoJc2VjcmV0X2lkGAMgASgJGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBImgKFUxpc3RQaXBlbGluZXNSZXNwb25zZRI2CglwaXBlbGluZXMYASADKAsyIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKhBAoOUGlwZWxpbmVVcGRhdGUSOgoMZGlzcGxheV9uYW1lGAEgASgJQiTgQQK6SB7IAQFyGRADGIABMhJeW0EtWmEtejAtOS1fIC9dKyQSIAoLZGVzY3JpcHRpb24YAiABKAlCC7pICNgBAXIDGIACEh4KC2NvbmZpZ195YW1sGAMgASgJQgngQQK6SAPIAQESQAoJcmVzb3VyY2VzGAYgASgLMi0ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5SZXNvdXJjZXMScAoEdGFncxgHIAMoCzIzLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVVcGRhdGUuVGFnc0VudHJ5Qi26SCqaAScQECojciEyH14oW1xwe0x9XHB7Wn1ccHtOfV8uOi89K1wtQF0qKSQSUAoPc2VydmljZV9hY2NvdW50GAggASgLMjIucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5TZXJ2aWNlQWNjb3VudEID4EEBGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOkLqQT8KKHJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEvUGlwZWxpbmVVcGRhdGUqCXBpcGVsaW5lczIIcGlwZWxpbmVKBAgEEAVKBAgFEAZSB3JlcXVlc3RSBWxpbWl0IrwBChVVcGRhdGVQaXBlbGluZVJlcXVlc3QSKgoCaWQYASABKAlCHuBBArpIGMgBAXITMhFeW0EtWmEtejAtOS1fL10rJBJGCghwaXBlbGluZRgCIAEoCzIpLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVVcGRhdGVCCeBBArpIA8gBARIvCgt1cGRhdGVfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siTwoWVXBkYXRlUGlwZWxpbmVSZXNwb25zZRI1CghwaXBlbGluZRgBIAEoCzIjLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmUiQwoVRGVsZXRlUGlwZWxpbmVSZXF1ZXN0EioKAmlkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVphLXowLTktXy9dKyQiGAoWRGVsZXRlUGlwZWxpbmVSZXNwb25zZSJBChNTdG9wUGlwZWxpbmVSZXF1ZXN0EioKAmlkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVphLXowLTktXy9dKyQiTQoUU3RvcFBpcGVsaW5lUmVzcG9uc2USNQoIcGlwZWxpbmUYASABKAsyIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lIkIKFFN0YXJ0UGlwZWxpbmVSZXF1ZXN0EioKAmlkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVphLXowLTktXy9dKyQiTgoVU3RhcnRQaXBlbGluZVJlc3BvbnNlEjUKCHBpcGVsaW5lGAEgASgLMiMucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZSInCiVHZXRQaXBlbGluZVNlcnZpY2VDb25maWdTY2hlbWFSZXF1ZXN0Ij8KJkdldFBpcGVsaW5lU2VydmljZUNvbmZpZ1NjaGVtYVJlc3BvbnNlEhUKDWNvbmZpZ19zY2hlbWEYASABKAkiXwoSUGlwZWxpbmVzRm9yU2VjcmV0EhEKCXNlY3JldF9pZBgBIAEoCRI2CglwaXBlbGluZXMYAiADKAsyIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lIlEKHEdldFBpcGVsaW5lc0ZvclNlY3JldFJlcXVlc3QSMQoJc2VjcmV0X2lkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVpdW0EtWjAtOV9dKiQibAodR2V0UGlwZWxpbmVzRm9yU2VjcmV0UmVzcG9uc2USSwoUcGlwZWxpbmVzX2Zvcl9zZWNyZXQYASABKAsyLS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lc0ZvclNlY3JldCIeChxHZXRQaXBlbGluZXNCeVNlY3JldHNSZXF1ZXN0ImwKHUdldFBpcGVsaW5lc0J5U2VjcmV0c1Jlc3BvbnNlEksKFHBpcGVsaW5lc19mb3Jfc2VjcmV0GAEgAygLMi0ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZXNGb3JTZWNyZXQiOwoZTGludFBpcGVsaW5lQ29uZmlnUmVxdWVzdBIeCgtjb25maWdfeWFtbBgBIAEoCUIJ4EECukgDyAEBIlIKGkxpbnRQaXBlbGluZUNvbmZpZ1Jlc3BvbnNlEjQKCmxpbnRfaGludHMYASADKAsyIC5yZWRwYW5kYS5hcGkuY29tbW9uLnYxLkxpbnRIaW50MtwiCg9QaXBlbGluZVNlcnZpY2UStQIKDkNyZWF0ZVBpcGVsaW5lEjAucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5DcmVhdGVQaXBlbGluZVJlcXVlc3QaMS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkNyZWF0ZVBpcGVsaW5lUmVzcG9uc2UivQGSQYEBEiBDcmVhdGUgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZRonQ3JlYXRlIGEgbmV3IFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUuSjQKAzIwMRItCgJPSxInCiUaIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5liqYdBAgCEASC0+STAio6CHBpcGVsaW5lIh4vdjEvcmVkcGFuZGEtY29ubmVjdC9waXBlbGluZXMS0gIKC0dldFBpcGVsaW5lEi0ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5HZXRQaXBlbGluZVJlcXVlc3QaLi5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lUmVzcG9uc2Ui4wGSQawBEh1HZXQgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZRopR2V0IGEgc3BlY2lmaWMgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZS5KNAoDMjAwEi0KAk9LEicKJRojLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVKKgoDNDA0EiMKCU5vdCBGb3VuZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c4qmHQQIARAEgtPkkwIlEiMvdjEvcmVkcGFuZGEtY29ubmVjdC9waXBlbGluZXMve2lkfRLWAgoNTGlzdFBpcGVsaW5lcxIvLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuTGlzdFBpcGVsaW5lc1JlcXVlc3QaMC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkxpc3RQaXBlbGluZXNSZXNwb25zZSLhAZJBrwESH0xpc3QgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZXMaSUxpc3QgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZXMuIE9wdGlvbmFsOiBmaWx0ZXIgYmFzZWQgb24gcGlwZWxpbmUgbmFtZS5KQQoDMjAwEjoKAk9LEjQKMhowLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuTGlzdFBpcGVsaW5lc1Jlc3BvbnNliqYdBAgBEASC0+STAiASHi92MS9yZWRwYW5kYS1jb25uZWN0L3BpcGVsaW5lcxKeAwoOVXBkYXRlUGlwZWxpbmUSMC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlVwZGF0ZVBpcGVsaW5lUmVxdWVzdBoxLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuVXBkYXRlUGlwZWxpbmVSZXNwb25zZSKmApJB5QESIlVwZGF0ZSBhIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUaiAFVcGRhdGUgdGhlIFtjb25maWd1cmF0aW9uXShodHRwczovL2RvY3MucmVkcGFuZGEuY29tL3JlZHBhbmRhLWNsb3VkL2RldmVsb3AvY29ubmVjdC9jb25maWd1cmF0aW9uL2Fib3V0KSBvZiBhIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUuSjQKAzIwMBItCgJPSxInCiUaIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5liqYdBAgCEASC0+STAi86CHBpcGVsaW5lGiMvdjEvcmVkcGFuZGEtY29ubmVjdC9waXBlbGluZXMve2lkfRK4AgoORGVsZXRlUGlwZWxpbmUSMC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkRlbGV0ZVBpcGVsaW5lUmVxdWVzdBoxLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuRGVsZXRlUGlwZWxpbmVSZXNwb25zZSLAAZJBiQESIkRlbGV0ZSBhIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUaI0RlbGV0ZSBhIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUuShIKAzIwNBILCgdEZWxldGVkEgBKKgoDNDA0EiMKCU5vdCBGb3VuZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c4qmHQQIAhAEgtPkkwIlKiMvdjEvcmVkcGFuZGEtY29ubmVjdC9waXBlbGluZXMve2lkfRLjAgoMU3RvcFBpcGVsaW5lEi4ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5TdG9wUGlwZWxpbmVSZXF1ZXN0Gi8ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5TdG9wUGlwZWxpbmVSZXNwb25zZSLxAZJBtQESIVN0b3BzIGEgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZRopU3RvcCBhIHJ1bm5pbmcgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZS5KOQoDMjAwEjIKB1N0b3BwZWQSJwolGiMucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZUoqCgM0MDQSIwoJTm90IEZvdW5kEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVziqYdBAgCEASC0+STAioaKC92MS9yZWRwYW5kYS1jb25uZWN0L3BpcGVsaW5lcy97aWR9L3N0b3AS6AIKDVN0YXJ0UGlwZWxpbmUSLy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlN0YXJ0UGlwZWxpbmVSZXF1ZXN0GjAucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5TdGFydFBpcGVsaW5lUmVzcG9uc2Ui8wGSQbYBEiFTdGFydCBhIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUaKlN0YXJ0IGEgc3RvcHBlZCBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lLko5CgMyMDASMgoHU3RhcnRlZBInCiUaIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lSioKAzQwNBIjCglOb3QgRm91bmQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXOKph0ECAIQBILT5JMCKxopL3YxL3JlZHBhbmRhLWNvbm5lY3QvcGlwZWxpbmVzL3tpZH0vc3RhcnQSrAQKHkdldFBpcGVsaW5lU2VydmljZUNvbmZpZ1NjaGVtYRJALnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuR2V0UGlwZWxpbmVTZXJ2aWNlQ29uZmlnU2NoZW1hUmVxdWVzdBpBLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuR2V0UGlwZWxpbmVTZXJ2aWNlQ29uZmlnU2NoZW1hUmVzcG9uc2UihAOSQc4CEkBSZXRyaWV2ZSB0aGUgc2NoZW1hIGZvciBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lIGNvbmZpZ3VyYXRpb25zGrUBVGhlIGNvbmZpZ3VyYXRpb24gc2NoZW1hIGluY2x1ZGVzIGF2YWlsYWJsZSBbY29tcG9uZW50cyBhbmQgcHJvY2Vzc29yc10oaHR0cHM6Ly9kb2NzLnJlZHBhbmRhLmNvbS9yZWRwYW5kYS1jbG91ZC9kZXZlbG9wL2Nvbm5lY3QvY29tcG9uZW50cy9hYm91dCkgaW4gdGhpcyBSZWRwYW5kYSBDb25uZWN0IGluc3RhbmNlLkpSCgMyMDASSwoCT0sSRQpDGkEucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5HZXRQaXBlbGluZVNlcnZpY2VDb25maWdTY2hlbWFSZXNwb25zZYqmHQQIARAEgtPkkwIkEiIvdjEvcmVkcGFuZGEtY29ubmVjdC9jb25maWctc2NoZW1hEvQCChVHZXRQaXBlbGluZXNGb3JTZWNyZXQSNy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0ZvclNlY3JldFJlcXVlc3QaOC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0ZvclNlY3JldFJlc3BvbnNlIucBkkGqARIpR2V0IFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmVzIGZvciBzZWNyZXQaMkdldCBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lcyBmb3IgYSBnaXZlbiBzZWNyZXQuSkkKAzIwMBJCCgJPSxI8CjoaOC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0ZvclNlY3JldFJlc3BvbnNliqYdBAgBEASC0+STAisSKS92MS9yZWRwYW5kYS1jb25uZWN0L3BpcGVsaW5lcy1mb3Itc2VjcmV0EuwCChVHZXRQaXBlbGluZXNCeVNlY3JldHMSNy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0J5U2VjcmV0c1JlcXVlc3QaOC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0J5U2VjcmV0c1Jlc3BvbnNlIt8BkkGiARIpR2V0IFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmVzIGJ5IHNlY3JldHMaKkdldCBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lcyBieSBzZWNyZXRzLkpJCgMyMDASQgoCT0sSPAo6GjgucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5HZXRQaXBlbGluZXNCeVNlY3JldHNSZXNwb25zZYqmHQQIARAEgtPkkwIrEikvdjEvcmVkcGFuZGEtY29ubmVjdC9waXBlbGluZXMtYnktc2VjcmV0cxLyAwoSTGludFBpcGVsaW5lQ29uZmlnEjQucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5MaW50UGlwZWxpbmVDb25maWdSZXF1ZXN0GjUucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5MaW50UGlwZWxpbmVDb25maWdSZXNwb25zZSLuApJBrQISLkxpbnQgYSBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24ahQFWYWxpZGF0ZXMgYSBzdXBwbGllZCBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lIFlBTUwgYW5kIHJldHVybnMgYSBsaXN0IG9mIGxpbnRpbmcgaGludHMuIElmIG5vIHByb2JsZW1zIGFyZSBmb3VuZCwgdGhlIGxpc3QgaXMgZW1wdHkuSnMKAzIwMBJsCi9MaW50aW5nIGZpbmlzaGVkLiBTZWUgYGxpbnRfaGludHNgIGZvciBkZXRhaWxzLhI5CjcaNS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkxpbnRQaXBlbGluZUNvbmZpZ1Jlc3BvbnNliqYdBAgBEASC0+STAi86ASoiKi92MS9yZWRwYW5kYS1jb25uZWN0L3BpcGVsaW5lczpsaW50LWNvbmZpZxqrAZJBpwEKGlJlZHBhbmRhIENvbm5lY3QgUGlwZWxpbmVzEogBQ3JlYXRlIGFuZCBtYW5hZ2UgW1JlZHBhbmRhIENvbm5lY3RdKGh0dHBzOi8vZG9jcy5yZWRwYW5kYS5jb20vcmVkcGFuZGEtY2xvdWQvZGV2ZWxvcC9jb25uZWN0L2Fib3V0KSBwaXBlbGluZXMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zLkKSAgodY29tLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjFCDVBpcGVsaW5lUHJvdG9QAVpbZ2l0aHViLmNvbS9yZWRwYW5kYS1kYXRhL2NvbnNvbGUvYmFja2VuZC9wa2cvcHJvdG9nZW4vcmVkcGFuZGEvYXBpL2RhdGFwbGFuZS92MTtkYXRhcGxhbmV2MaICA1JBRKoCGVJlZHBhbmRhLkFwaS5EYXRhcGxhbmUuVjHKAhlSZWRwYW5kYVxBcGlcRGF0YXBsYW5lXFYx4gIlUmVkcGFuZGFcQXBpXERhdGFwbGFuZVxWMVxHUEJNZXRhZGF0YeoCHFJlZHBhbmRhOjpBcGk6OkRhdGFwbGFuZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_annotations, file_google_api_field_behavior, file_google_api_resource, file_google_protobuf_field_mask, file_protoc_gen_openapiv2_options_annotations, file_redpanda_api_auth_v1_authorization, file_redpanda_api_common_v1_linthint]); + fileDesc("CihyZWRwYW5kYS9hcGkvZGF0YXBsYW5lL3YxL3BpcGVsaW5lLnByb3RvEhlyZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxIt0LCghQaXBlbGluZRIqCgJpZBgBIAEoCUIe4EECukgYyAEBchMyEV5bQS1aYS16MC05LV8vXSskEjoKDGRpc3BsYXlfbmFtZRgCIAEoCUIk4EECukgeyAEBchkQAxiAATISXltBLVphLXowLTktXyAvXSskEh0KC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiAAhL4AQoLY29uZmlnX3lhbWwYBCABKAlC4gGSQdUBMtIBVGhlIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBpbiBZQU1MIGZvcm1hdC4gU2VlIHRoZSBbUmVkcGFuZGEgQ29ubmVjdCBDb25maWd1cmF0aW9uXShodHRwczovL2RvY3MucmVkcGFuZGEuY29tL3JlZHBhbmRhLWNsb3VkL2RldmVsb3AvY29ubmVjdC9jb25maWd1cmF0aW9uL2Fib3V0KSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMu4EECukgDyAEBEvgBCglyZXNvdXJjZXMYCSABKAsyLS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lLlJlc291cmNlc0K1AZJBsQEyrgFUaGUgcmVxdWVzdGVkIGFtb3VudCBvZiByZXNvdXJjZXMgZm9yIHRoZSBwaXBlbGluZS4gRGVwZW5kaW5nIG9uIHRoZSBiYWNrZW5kLCB0aGUgcmVzb3VyY2VzIG1pZ2h0IGJlIGd1YXJhbnRlZWQsIG9yIG1pZ2h0IGJlIHR3ZWFrZWQgYmFzZWQgb24gdGhlIHV0aWxpemF0aW9uIG9mIHRoZSBwaXBlbGluZS4SPQoFc3RhdGUYByABKA4yKS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lLlN0YXRlQgPgQQMSPwoGc3RhdHVzGAggASgLMioucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5TdGF0dXNCA+BBAxILCgN1cmwYCiABKAkSagoEdGFncxgLIAMoCzItLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmUuVGFnc0VudHJ5Qi26SCqaAScQECojciEyH14oW1xwe0x9XHB7Wn1ccHtOfV8uOi89K1wtQF0qKSQSUAoPc2VydmljZV9hY2NvdW50GAwgASgLMjIucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5TZXJ2aWNlQWNjb3VudEID4EEBGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGkwKCVJlc291cmNlcxIgCg1tZW1vcnlfc2hhcmVzGAEgASgJQgngQQK6SAPIAQESHQoKY3B1X3NoYXJlcxgCIAEoCUIJ4EECukgDyAEBGhcKBlN0YXR1cxINCgVlcnJvchgCIAEoCRqFAQoOU2VydmljZUFjY291bnQSEQoJY2xpZW50X2lkGAEgASgJEmAKDWNsaWVudF9zZWNyZXQYAiABKAlCSbpIRnJEMkJeXCRce3NlY3JldHNcLltBLVphLXpfXVtBLVphLXowLTlfXSooXC5bQS1aYS16X11bQS1aYS16MC05X10qKT9cfSQikgEKBVN0YXRlEhUKEVNUQVRFX1VOU1BFQ0lGSUVEEAASEgoOU1RBVEVfU1RBUlRJTkcQARIRCg1TVEFURV9SVU5OSU5HEAISEgoOU1RBVEVfU1RPUFBJTkcQAxIRCg1TVEFURV9TVE9QUEVEEAQSDwoLU1RBVEVfRVJST1IQBRITCg9TVEFURV9DT01QTEVURUQQBjo86kE5CiJyZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxL1BpcGVsaW5lKglwaXBlbGluZXMyCHBpcGVsaW5lSgQIBRAGSgQIBhAHUgdyZXF1ZXN0UgVsaW1pdCKeBAoOUGlwZWxpbmVDcmVhdGUSOgoMZGlzcGxheV9uYW1lGAEgASgJQiTgQQK6SB7IAQFyGRADGIABMhJeW0EtWmEtejAtOS1fIC9dKyQSHQoLZGVzY3JpcHRpb24YAiABKAlCCLpIBXIDGIACEh4KC2NvbmZpZ195YW1sGAMgASgJQgngQQK6SAPIAQESQAoJcmVzb3VyY2VzGAYgASgLMi0ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5SZXNvdXJjZXMScAoEdGFncxgHIAMoCzIzLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVDcmVhdGUuVGFnc0VudHJ5Qi26SCqaAScQECojciEyH14oW1xwe0x9XHB7Wn1ccHtOfV8uOi89K1wtQF0qKSQSUAoPc2VydmljZV9hY2NvdW50GAggASgLMjIucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5TZXJ2aWNlQWNjb3VudEID4EEBGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOkLqQT8KKHJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEvUGlwZWxpbmVDcmVhdGUqCXBpcGVsaW5lczIIcGlwZWxpbmVKBAgEEAVKBAgFEAZSB3JlcXVlc3RSBWxpbWl0IlQKFUNyZWF0ZVBpcGVsaW5lUmVxdWVzdBI7CghwaXBlbGluZRgBIAEoCzIpLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVDcmVhdGUiTwoWQ3JlYXRlUGlwZWxpbmVSZXNwb25zZRI1CghwaXBlbGluZRgBIAEoCzIjLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmUiQAoSR2V0UGlwZWxpbmVSZXF1ZXN0EioKAmlkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVphLXowLTktXy9dKyQiTAoTR2V0UGlwZWxpbmVSZXNwb25zZRI1CghwaXBlbGluZRgBIAEoCzIjLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmUimwUKFExpc3RQaXBlbGluZXNSZXF1ZXN0EkYKBmZpbHRlchgBIAEoCzI2LnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuTGlzdFBpcGVsaW5lc1JlcXVlc3QuRmlsdGVyEp8BCglwYWdlX3NpemUYAiABKAVCiwGSQXUyYUxpbWl0IHRoZSBwYWdpbmF0ZWQgcmVzcG9uc2UgdG8gYSBudW1iZXIgb2YgaXRlbXMuIERlZmF1bHRzIHRvIDEwMC4gVXNlIC0xIHRvIGRpc2FibGUgcGFnaW5hdGlvbi5ZAAAAAABAj0BpAAAAAAAA8L+6SBAaDhjoByj///////////8BEhIKCnBhZ2VfdG9rZW4YAyABKAkahAMKBkZpbHRlchJ5Cg1uYW1lX2NvbnRhaW5zGAEgASgJQmKSQUAyPkFueSBwaXBlbGluZXMgdGhhdCBwYXJ0aWFsbHkgbWF0Y2ggdGhpcyBuYW1lIHdpbGwgYmUgcmV0dXJuZWQuukgc2AEBchcYgAEyEl5bQS1aYS16MC05LV8gL10rJBK+AQoEdGFncxgCIAMoCzJALnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuTGlzdFBpcGVsaW5lc1JlcXVlc3QuRmlsdGVyLlRhZ3NFbnRyeUJukkE+MjxQaXBlbGluZXMgdGhhdCBtYXRjaCBhbGwgdGhlIHByb3ZpZGVkIHRhZ3Mgd2lsbCBiZSByZXR1cm5lZC66SCqaAScQECojciEyH14oW1xwe0x9XHB7Wn1ccHtOfV8uOi89K1wtQF0qKSQSEQoJc2VjcmV0X2lkGAMgASgJGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBImgKFUxpc3RQaXBlbGluZXNSZXNwb25zZRI2CglwaXBlbGluZXMYASADKAsyIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKhBAoOUGlwZWxpbmVVcGRhdGUSOgoMZGlzcGxheV9uYW1lGAEgASgJQiTgQQK6SB7IAQFyGRADGIABMhJeW0EtWmEtejAtOS1fIC9dKyQSIAoLZGVzY3JpcHRpb24YAiABKAlCC7pICNgBAXIDGIACEh4KC2NvbmZpZ195YW1sGAMgASgJQgngQQK6SAPIAQESQAoJcmVzb3VyY2VzGAYgASgLMi0ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5SZXNvdXJjZXMScAoEdGFncxgHIAMoCzIzLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVVcGRhdGUuVGFnc0VudHJ5Qi26SCqaAScQECojciEyH14oW1xwe0x9XHB7Wn1ccHtOfV8uOi89K1wtQF0qKSQSUAoPc2VydmljZV9hY2NvdW50GAggASgLMjIucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZS5TZXJ2aWNlQWNjb3VudEID4EEBGisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBOkLqQT8KKHJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEvUGlwZWxpbmVVcGRhdGUqCXBpcGVsaW5lczIIcGlwZWxpbmVKBAgEEAVKBAgFEAZSB3JlcXVlc3RSBWxpbWl0IrwBChVVcGRhdGVQaXBlbGluZVJlcXVlc3QSKgoCaWQYASABKAlCHuBBArpIGMgBAXITMhFeW0EtWmEtejAtOS1fL10rJBJGCghwaXBlbGluZRgCIAEoCzIpLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVVcGRhdGVCCeBBArpIA8gBARIvCgt1cGRhdGVfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siTwoWVXBkYXRlUGlwZWxpbmVSZXNwb25zZRI1CghwaXBlbGluZRgBIAEoCzIjLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmUiQwoVRGVsZXRlUGlwZWxpbmVSZXF1ZXN0EioKAmlkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVphLXowLTktXy9dKyQiGAoWRGVsZXRlUGlwZWxpbmVSZXNwb25zZSJBChNTdG9wUGlwZWxpbmVSZXF1ZXN0EioKAmlkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVphLXowLTktXy9dKyQiTQoUU3RvcFBpcGVsaW5lUmVzcG9uc2USNQoIcGlwZWxpbmUYASABKAsyIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lIkIKFFN0YXJ0UGlwZWxpbmVSZXF1ZXN0EioKAmlkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVphLXowLTktXy9dKyQiTgoVU3RhcnRQaXBlbGluZVJlc3BvbnNlEjUKCHBpcGVsaW5lGAEgASgLMiMucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZSInCiVHZXRQaXBlbGluZVNlcnZpY2VDb25maWdTY2hlbWFSZXF1ZXN0Ij8KJkdldFBpcGVsaW5lU2VydmljZUNvbmZpZ1NjaGVtYVJlc3BvbnNlEhUKDWNvbmZpZ19zY2hlbWEYASABKAkiRgoVTGlzdENvbXBvbmVudHNSZXF1ZXN0Ei0KCXJlYWRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siVgoWTGlzdENvbXBvbmVudHNSZXNwb25zZRI8Cgpjb21wb25lbnRzGAEgASgLMigucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5Db21wb25lbnRMaXN0IpAHCg1Db21wb25lbnRMaXN0Es8BCgd2ZXJzaW9uGAEgASgJQr0Buki5AXK2ATKzAV4oMHxbMS05XVxkKilcLigwfFsxLTldXGQqKVwuKDB8WzEtOV1cZCopKD86LSgoPzowfFsxLTldXGQqfFxkKlthLXpBLVotXVswLTlhLXpBLVotXSopKD86XC4oPzowfFsxLTldXGQqfFxkKlthLXpBLVotXVswLTlhLXpBLVotXSopKSopKT8oPzpcKyhbMC05YS16QS1aLV0rKD86XC5bMC05YS16QS1aLV0rKSopKT8kEjkKB2J1ZmZlcnMYAiADKAsyKC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkNvbXBvbmVudFNwZWMSOAoGY2FjaGVzGAMgAygLMigucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5Db21wb25lbnRTcGVjEjgKBmlucHV0cxgEIAMoCzIoLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuQ29tcG9uZW50U3BlYxI5CgdvdXRwdXRzGAUgAygLMigucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5Db21wb25lbnRTcGVjEjwKCnByb2Nlc3NvcnMYBiADKAsyKC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkNvbXBvbmVudFNwZWMSPQoLcmF0ZV9saW1pdHMYByADKAsyKC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkNvbXBvbmVudFNwZWMSOQoHbWV0cmljcxgIIAMoCzIoLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuQ29tcG9uZW50U3BlYxI5Cgd0cmFjZXJzGAkgAygLMigucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5Db21wb25lbnRTcGVjEjoKCHNjYW5uZXJzGAogAygLMigucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5Db21wb25lbnRTcGVjEksKEmJsb2JsYW5nX2Z1bmN0aW9ucxgLIAMoCzIvLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuQmxvYmxhbmdGdW5jdGlvblNwZWMSRwoQYmxvYmxhbmdfbWV0aG9kcxgMIAMoCzItLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuQmxvYmxhbmdNZXRob2RTcGVjIs4DCg1Db21wb25lbnRTcGVjEgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRI6CgZzdGF0dXMYAyABKA4yKi5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkNvbXBvbmVudFN0YXR1cxIPCgdzdW1tYXJ5GAQgASgJEhMKC2Rlc2NyaXB0aW9uGAUgASgJEhIKCmNhdGVnb3JpZXMYBiADKAkSzwEKB3ZlcnNpb24YByABKAlCvQG6SLkBcrYBMrMBXigwfFsxLTldXGQqKVwuKDB8WzEtOV1cZCopXC4oMHxbMS05XVxkKikoPzotKCg/OjB8WzEtOV1cZCp8XGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikoPzpcLig/OjB8WzEtOV1cZCp8XGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikpKikpPyg/OlwrKFswLTlhLXpBLVotXSsoPzpcLlswLTlhLXpBLVotXSspKikpPyQSNAoGY29uZmlnGAggASgLMiQucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5GaWVsZFNwZWMSEAoIZXhhbXBsZXMYCSADKAkSEQoJZm9vdG5vdGVzGAogASgJIpIECglGaWVsZFNwZWMSDAoEbmFtZRgBIAEoCRIMCgR0eXBlGAIgASgJEgwKBGtpbmQYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEAoIYWR2YW5jZWQYBSABKAgSEgoKZGVwcmVjYXRlZBgGIAEoCBIQCghvcHRpb25hbBgHIAEoCBIVCg1kZWZhdWx0X3ZhbHVlGAggASgJEhAKCGV4YW1wbGVzGAkgAygJEjYKCGNoaWxkcmVuGAogAygLMiQucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5GaWVsZFNwZWMSRQoRYW5ub3RhdGVkX29wdGlvbnMYCyADKAsyKi5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkFubm90YXRlZE9wdGlvbhIUCgxpbnRlcnBvbGF0ZWQYDCADKAkSzwEKB3ZlcnNpb24YDSABKAlCvQG6SLkBcrYBMrMBXigwfFsxLTldXGQqKVwuKDB8WzEtOV1cZCopXC4oMHxbMS05XVxkKikoPzotKCg/OjB8WzEtOV1cZCp8XGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikoPzpcLig/OjB8WzEtOV1cZCp8XGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikpKikpPyg/OlwrKFswLTlhLXpBLVotXSsoPzpcLlswLTlhLXpBLVotXSspKikpPyQiNQoPQW5ub3RhdGVkT3B0aW9uEg0KBXZhbHVlGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJIvcCChRCbG9ibGFuZ0Z1bmN0aW9uU3BlYxIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEg4KBnN0YXR1cxgDIAEoCRISCgpjYXRlZ29yaWVzGAQgAygJEjQKBnBhcmFtcxgFIAEoCzIkLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGFyYW1TcGVjEhAKCGV4YW1wbGVzGAYgAygJEs8BCgd2ZXJzaW9uGAcgASgJQr0Buki5AXK2ATKzAV4oMHxbMS05XVxkKilcLigwfFsxLTldXGQqKVwuKDB8WzEtOV1cZCopKD86LSgoPzowfFsxLTldXGQqfFxkKlthLXpBLVotXVswLTlhLXpBLVotXSopKD86XC4oPzowfFsxLTldXGQqfFxkKlthLXpBLVotXVswLTlhLXpBLVotXSopKSopKT8oPzpcKyhbMC05YS16QS1aLV0rKD86XC5bMC05YS16QS1aLV0rKSopKT8kIvUCChJCbG9ibGFuZ01ldGhvZFNwZWMSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIOCgZzdGF0dXMYAyABKAkSEgoKY2F0ZWdvcmllcxgEIAMoCRI0CgZwYXJhbXMYBSABKAsyJC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBhcmFtU3BlYxIQCghleGFtcGxlcxgGIAMoCRLPAQoHdmVyc2lvbhgHIAEoCUK9AbpIuQFytgEyswFeKDB8WzEtOV1cZCopXC4oMHxbMS05XVxkKilcLigwfFsxLTldXGQqKSg/Oi0oKD86MHxbMS05XVxkKnxcZCpbYS16QS1aLV1bMC05YS16QS1aLV0qKSg/OlwuKD86MHxbMS05XVxkKnxcZCpbYS16QS1aLV1bMC05YS16QS1aLV0qKSkqKSk/KD86XCsoWzAtOWEtekEtWi1dKyg/OlwuWzAtOWEtekEtWi1dKykqKSk/JCJMCglQYXJhbVNwZWMSPwoLZGVmaW5pdGlvbnMYASADKAsyKi5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBhcmFtRGVmaW5pdGlvbiJZCg9QYXJhbURlZmluaXRpb24SDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIMCgR0eXBlGAMgASgJEhUKDWRlZmF1bHRfdmFsdWUYBCABKAkiXwoSUGlwZWxpbmVzRm9yU2VjcmV0EhEKCXNlY3JldF9pZBgBIAEoCRI2CglwaXBlbGluZXMYAiADKAsyIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lIlEKHEdldFBpcGVsaW5lc0ZvclNlY3JldFJlcXVlc3QSMQoJc2VjcmV0X2lkGAEgASgJQh7gQQK6SBjIAQFyEzIRXltBLVpdW0EtWjAtOV9dKiQibAodR2V0UGlwZWxpbmVzRm9yU2VjcmV0UmVzcG9uc2USSwoUcGlwZWxpbmVzX2Zvcl9zZWNyZXQYASABKAsyLS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lc0ZvclNlY3JldCIeChxHZXRQaXBlbGluZXNCeVNlY3JldHNSZXF1ZXN0ImwKHUdldFBpcGVsaW5lc0J5U2VjcmV0c1Jlc3BvbnNlEksKFHBpcGVsaW5lc19mb3Jfc2VjcmV0GAEgAygLMi0ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZXNGb3JTZWNyZXQiOwoZTGludFBpcGVsaW5lQ29uZmlnUmVxdWVzdBIeCgtjb25maWdfeWFtbBgBIAEoCUIJ4EECukgDyAEBIlIKGkxpbnRQaXBlbGluZUNvbmZpZ1Jlc3BvbnNlEjQKCmxpbnRfaGludHMYASADKAsyIC5yZWRwYW5kYS5hcGkuY29tbW9uLnYxLkxpbnRIaW50Kq8BCg9Db21wb25lbnRTdGF0dXMSIAocQ09NUE9ORU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEhsKF0NPTVBPTkVOVF9TVEFUVVNfU1RBQkxFEAESGQoVQ09NUE9ORU5UX1NUQVRVU19CRVRBEAISIQodQ09NUE9ORU5UX1NUQVRVU19FWFBFUklNRU5UQUwQAxIfChtDT01QT05FTlRfU1RBVFVTX0RFUFJFQ0FURUQQBDKRJgoPUGlwZWxpbmVTZXJ2aWNlErUCCg5DcmVhdGVQaXBlbGluZRIwLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuQ3JlYXRlUGlwZWxpbmVSZXF1ZXN0GjEucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5DcmVhdGVQaXBlbGluZVJlc3BvbnNlIr0BkkGBARIgQ3JlYXRlIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUaJ0NyZWF0ZSBhIG5ldyBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lLko0CgMyMDESLQoCT0sSJwolGiMucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZYqmHQQIAhAEgtPkkwIqOghwaXBlbGluZSIeL3YxL3JlZHBhbmRhLWNvbm5lY3QvcGlwZWxpbmVzEtICCgtHZXRQaXBlbGluZRItLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuR2V0UGlwZWxpbmVSZXF1ZXN0Gi4ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5HZXRQaXBlbGluZVJlc3BvbnNlIuMBkkGsARIdR2V0IFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUaKUdldCBhIHNwZWNpZmljIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUuSjQKAzIwMBItCgJPSxInCiUaIy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlBpcGVsaW5lSioKAzQwNBIjCglOb3QgRm91bmQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXOKph0ECAEQBILT5JMCJRIjL3YxL3JlZHBhbmRhLWNvbm5lY3QvcGlwZWxpbmVzL3tpZH0S1gIKDUxpc3RQaXBlbGluZXMSLy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkxpc3RQaXBlbGluZXNSZXF1ZXN0GjAucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5MaXN0UGlwZWxpbmVzUmVzcG9uc2Ui4QGSQa8BEh9MaXN0IFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmVzGklMaXN0IFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmVzLiBPcHRpb25hbDogZmlsdGVyIGJhc2VkIG9uIHBpcGVsaW5lIG5hbWUuSkEKAzIwMBI6CgJPSxI0CjIaMC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkxpc3RQaXBlbGluZXNSZXNwb25zZYqmHQQIARAEgtPkkwIgEh4vdjEvcmVkcGFuZGEtY29ubmVjdC9waXBlbGluZXMSngMKDlVwZGF0ZVBpcGVsaW5lEjAucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5VcGRhdGVQaXBlbGluZVJlcXVlc3QaMS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLlVwZGF0ZVBpcGVsaW5lUmVzcG9uc2UipgKSQeUBEiJVcGRhdGUgYSBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lGogBVXBkYXRlIHRoZSBbY29uZmlndXJhdGlvbl0oaHR0cHM6Ly9kb2NzLnJlZHBhbmRhLmNvbS9yZWRwYW5kYS1jbG91ZC9kZXZlbG9wL2Nvbm5lY3QvY29uZmlndXJhdGlvbi9hYm91dCkgb2YgYSBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lLko0CgMyMDASLQoCT0sSJwolGiMucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZYqmHQQIAhAEgtPkkwIvOghwaXBlbGluZRojL3YxL3JlZHBhbmRhLWNvbm5lY3QvcGlwZWxpbmVzL3tpZH0SuAIKDkRlbGV0ZVBpcGVsaW5lEjAucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5EZWxldGVQaXBlbGluZVJlcXVlc3QaMS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkRlbGV0ZVBpcGVsaW5lUmVzcG9uc2UiwAGSQYkBEiJEZWxldGUgYSBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lGiNEZWxldGUgYSBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lLkoSCgMyMDQSCwoHRGVsZXRlZBIASioKAzQwNBIjCglOb3QgRm91bmQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXOKph0ECAIQBILT5JMCJSojL3YxL3JlZHBhbmRhLWNvbm5lY3QvcGlwZWxpbmVzL3tpZH0S4wIKDFN0b3BQaXBlbGluZRIuLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuU3RvcFBpcGVsaW5lUmVxdWVzdBovLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuU3RvcFBpcGVsaW5lUmVzcG9uc2Ui8QGSQbUBEiFTdG9wcyBhIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUaKVN0b3AgYSBydW5uaW5nIFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmUuSjkKAzIwMBIyCgdTdG9wcGVkEicKJRojLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuUGlwZWxpbmVKKgoDNDA0EiMKCU5vdCBGb3VuZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c4qmHQQIAhAEgtPkkwIqGigvdjEvcmVkcGFuZGEtY29ubmVjdC9waXBlbGluZXMve2lkfS9zdG9wEugCCg1TdGFydFBpcGVsaW5lEi8ucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5TdGFydFBpcGVsaW5lUmVxdWVzdBowLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuU3RhcnRQaXBlbGluZVJlc3BvbnNlIvMBkkG2ARIhU3RhcnQgYSBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lGipTdGFydCBhIHN0b3BwZWQgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZS5KOQoDMjAwEjIKB1N0YXJ0ZWQSJwolGiMucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5QaXBlbGluZUoqCgM0MDQSIwoJTm90IEZvdW5kEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVziqYdBAgCEASC0+STAisaKS92MS9yZWRwYW5kYS1jb25uZWN0L3BpcGVsaW5lcy97aWR9L3N0YXJ0EqwECh5HZXRQaXBlbGluZVNlcnZpY2VDb25maWdTY2hlbWESQC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lU2VydmljZUNvbmZpZ1NjaGVtYVJlcXVlc3QaQS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lU2VydmljZUNvbmZpZ1NjaGVtYVJlc3BvbnNlIoQDkkHOAhJAUmV0cmlldmUgdGhlIHNjaGVtYSBmb3IgUmVkcGFuZGEgQ29ubmVjdCBwaXBlbGluZSBjb25maWd1cmF0aW9ucxq1AVRoZSBjb25maWd1cmF0aW9uIHNjaGVtYSBpbmNsdWRlcyBhdmFpbGFibGUgW2NvbXBvbmVudHMgYW5kIHByb2Nlc3NvcnNdKGh0dHBzOi8vZG9jcy5yZWRwYW5kYS5jb20vcmVkcGFuZGEtY2xvdWQvZGV2ZWxvcC9jb25uZWN0L2NvbXBvbmVudHMvYWJvdXQpIGluIHRoaXMgUmVkcGFuZGEgQ29ubmVjdCBpbnN0YW5jZS5KUgoDMjAwEksKAk9LEkUKQxpBLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuR2V0UGlwZWxpbmVTZXJ2aWNlQ29uZmlnU2NoZW1hUmVzcG9uc2WKph0ECAEQBILT5JMCJBIiL3YxL3JlZHBhbmRhLWNvbm5lY3QvY29uZmlnLXNjaGVtYRKyAwoOTGlzdENvbXBvbmVudHMSMC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkxpc3RDb21wb25lbnRzUmVxdWVzdBoxLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuTGlzdENvbXBvbmVudHNSZXNwb25zZSK6ApJBhwISKVJldHJpZXZlIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBjb21wb25lbnRzGpUBUmV0dXJucyBhIEpTT04gbGlzdCBvZiBhdmFpbGFibGUgW2NvbXBvbmVudHNdKGh0dHBzOi8vZG9jcy5yZWRwYW5kYS5jb20vcmVkcGFuZGEtY2xvdWQvZGV2ZWxvcC9jb25uZWN0L2NvbXBvbmVudHMvYWJvdXQpLCBmaWx0ZXJlZCBieSBjb21wb25lbnQgdHlwZS5KQgoDMjAwEjsKAk9LEjUKMxoxLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjEuTGlzdENvbXBvbmVudHNSZXNwb25zZYqmHQQIARAEgtPkkwIhEh8vdjEvcmVkcGFuZGEtY29ubmVjdC9jb21wb25lbnRzEvQCChVHZXRQaXBlbGluZXNGb3JTZWNyZXQSNy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0ZvclNlY3JldFJlcXVlc3QaOC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0ZvclNlY3JldFJlc3BvbnNlIucBkkGqARIpR2V0IFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmVzIGZvciBzZWNyZXQaMkdldCBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lcyBmb3IgYSBnaXZlbiBzZWNyZXQuSkkKAzIwMBJCCgJPSxI8CjoaOC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0ZvclNlY3JldFJlc3BvbnNliqYdBAgBEASC0+STAisSKS92MS9yZWRwYW5kYS1jb25uZWN0L3BpcGVsaW5lcy1mb3Itc2VjcmV0EuwCChVHZXRQaXBlbGluZXNCeVNlY3JldHMSNy5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0J5U2VjcmV0c1JlcXVlc3QaOC5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkdldFBpcGVsaW5lc0J5U2VjcmV0c1Jlc3BvbnNlIt8BkkGiARIpR2V0IFJlZHBhbmRhIENvbm5lY3QgcGlwZWxpbmVzIGJ5IHNlY3JldHMaKkdldCBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lcyBieSBzZWNyZXRzLkpJCgMyMDASQgoCT0sSPAo6GjgucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5HZXRQaXBlbGluZXNCeVNlY3JldHNSZXNwb25zZYqmHQQIARAEgtPkkwIrEikvdjEvcmVkcGFuZGEtY29ubmVjdC9waXBlbGluZXMtYnktc2VjcmV0cxLyAwoSTGludFBpcGVsaW5lQ29uZmlnEjQucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5MaW50UGlwZWxpbmVDb25maWdSZXF1ZXN0GjUucmVkcGFuZGEuYXBpLmRhdGFwbGFuZS52MS5MaW50UGlwZWxpbmVDb25maWdSZXNwb25zZSLuApJBrQISLkxpbnQgYSBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24ahQFWYWxpZGF0ZXMgYSBzdXBwbGllZCBSZWRwYW5kYSBDb25uZWN0IHBpcGVsaW5lIFlBTUwgYW5kIHJldHVybnMgYSBsaXN0IG9mIGxpbnRpbmcgaGludHMuIElmIG5vIHByb2JsZW1zIGFyZSBmb3VuZCwgdGhlIGxpc3QgaXMgZW1wdHkuSnMKAzIwMBJsCi9MaW50aW5nIGZpbmlzaGVkLiBTZWUgYGxpbnRfaGludHNgIGZvciBkZXRhaWxzLhI5CjcaNS5yZWRwYW5kYS5hcGkuZGF0YXBsYW5lLnYxLkxpbnRQaXBlbGluZUNvbmZpZ1Jlc3BvbnNliqYdBAgBEASC0+STAi86ASoiKi92MS9yZWRwYW5kYS1jb25uZWN0L3BpcGVsaW5lczpsaW50LWNvbmZpZxqrAZJBpwEKGlJlZHBhbmRhIENvbm5lY3QgUGlwZWxpbmVzEogBQ3JlYXRlIGFuZCBtYW5hZ2UgW1JlZHBhbmRhIENvbm5lY3RdKGh0dHBzOi8vZG9jcy5yZWRwYW5kYS5jb20vcmVkcGFuZGEtY2xvdWQvZGV2ZWxvcC9jb25uZWN0L2Fib3V0KSBwaXBlbGluZXMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zLkKSAgodY29tLnJlZHBhbmRhLmFwaS5kYXRhcGxhbmUudjFCDVBpcGVsaW5lUHJvdG9QAVpbZ2l0aHViLmNvbS9yZWRwYW5kYS1kYXRhL2NvbnNvbGUvYmFja2VuZC9wa2cvcHJvdG9nZW4vcmVkcGFuZGEvYXBpL2RhdGFwbGFuZS92MTtkYXRhcGxhbmV2MaICA1JBRKoCGVJlZHBhbmRhLkFwaS5EYXRhcGxhbmUuVjHKAhlSZWRwYW5kYVxBcGlcRGF0YXBsYW5lXFYx4gIlUmVkcGFuZGFcQXBpXERhdGFwbGFuZVxWMVxHUEJNZXRhZGF0YeoCHFJlZHBhbmRhOjpBcGk6OkRhdGFwbGFuZTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_annotations, file_google_api_field_behavior, file_google_api_resource, file_google_protobuf_field_mask, file_protoc_gen_openapiv2_options_annotations, file_redpanda_api_auth_v1_authorization, file_redpanda_api_common_v1_linthint]); /** * Defines the pipeline resource. @@ -699,6 +699,434 @@ export type GetPipelineServiceConfigSchemaResponse = Message<"redpanda.api.datap export const GetPipelineServiceConfigSchemaResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_redpanda_api_dataplane_v1_pipeline, 18); +/** + * @generated from message redpanda.api.dataplane.v1.ListComponentsRequest + */ +export type ListComponentsRequest = Message<"redpanda.api.dataplane.v1.ListComponentsRequest"> & { + /** + * @generated from field: google.protobuf.FieldMask read_mask = 1; + */ + readMask?: FieldMask; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.ListComponentsRequest. + * Use `create(ListComponentsRequestSchema)` to create a new message. + */ +export const ListComponentsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 19); + +/** + * @generated from message redpanda.api.dataplane.v1.ListComponentsResponse + */ +export type ListComponentsResponse = Message<"redpanda.api.dataplane.v1.ListComponentsResponse"> & { + /** + * Structured component list data instead of JSON string. + * + * @generated from field: redpanda.api.dataplane.v1.ComponentList components = 1; + */ + components?: ComponentList; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.ListComponentsResponse. + * Use `create(ListComponentsResponseSchema)` to create a new message. + */ +export const ListComponentsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 20); + +/** + * ComponentList contains the structured component data. + * + * @generated from message redpanda.api.dataplane.v1.ComponentList + */ +export type ComponentList = Message<"redpanda.api.dataplane.v1.ComponentList"> & { + /** + * @generated from field: string version = 1; + */ + version: string; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec buffers = 2; + */ + buffers: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec caches = 3; + */ + caches: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec inputs = 4; + */ + inputs: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec outputs = 5; + */ + outputs: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec processors = 6; + */ + processors: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec rate_limits = 7; + */ + rateLimits: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec metrics = 8; + */ + metrics: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec tracers = 9; + */ + tracers: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ComponentSpec scanners = 10; + */ + scanners: ComponentSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.BloblangFunctionSpec bloblang_functions = 11; + */ + bloblangFunctions: BloblangFunctionSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.BloblangMethodSpec bloblang_methods = 12; + */ + bloblangMethods: BloblangMethodSpec[]; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.ComponentList. + * Use `create(ComponentListSchema)` to create a new message. + */ +export const ComponentListSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 21); + +/** + * ComponentSpec represents a component specification. + * + * @generated from message redpanda.api.dataplane.v1.ComponentSpec + */ +export type ComponentSpec = Message<"redpanda.api.dataplane.v1.ComponentSpec"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + + /** + * @generated from field: string type = 2; + */ + type: string; + + /** + * @generated from field: redpanda.api.dataplane.v1.ComponentStatus status = 3; + */ + status: ComponentStatus; + + /** + * @generated from field: string summary = 4; + */ + summary: string; + + /** + * @generated from field: string description = 5; + */ + description: string; + + /** + * @generated from field: repeated string categories = 6; + */ + categories: string[]; + + /** + * @generated from field: string version = 7; + */ + version: string; + + /** + * @generated from field: redpanda.api.dataplane.v1.FieldSpec config = 8; + */ + config?: FieldSpec; + + /** + * @generated from field: repeated string examples = 9; + */ + examples: string[]; + + /** + * @generated from field: string footnotes = 10; + */ + footnotes: string; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.ComponentSpec. + * Use `create(ComponentSpecSchema)` to create a new message. + */ +export const ComponentSpecSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 22); + +/** + * FieldSpec represents a field specification. + * + * @generated from message redpanda.api.dataplane.v1.FieldSpec + */ +export type FieldSpec = Message<"redpanda.api.dataplane.v1.FieldSpec"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + + /** + * @generated from field: string type = 2; + */ + type: string; + + /** + * @generated from field: string kind = 3; + */ + kind: string; + + /** + * @generated from field: string description = 4; + */ + description: string; + + /** + * @generated from field: bool advanced = 5; + */ + advanced: boolean; + + /** + * @generated from field: bool deprecated = 6; + */ + deprecated: boolean; + + /** + * @generated from field: bool optional = 7; + */ + optional: boolean; + + /** + * @generated from field: string default_value = 8; + */ + defaultValue: string; + + /** + * @generated from field: repeated string examples = 9; + */ + examples: string[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.FieldSpec children = 10; + */ + children: FieldSpec[]; + + /** + * @generated from field: repeated redpanda.api.dataplane.v1.AnnotatedOption annotated_options = 11; + */ + annotatedOptions: AnnotatedOption[]; + + /** + * @generated from field: repeated string interpolated = 12; + */ + interpolated: string[]; + + /** + * @generated from field: string version = 13; + */ + version: string; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.FieldSpec. + * Use `create(FieldSpecSchema)` to create a new message. + */ +export const FieldSpecSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 23); + +/** + * AnnotatedOption represents an annotated option + * + * @generated from message redpanda.api.dataplane.v1.AnnotatedOption + */ +export type AnnotatedOption = Message<"redpanda.api.dataplane.v1.AnnotatedOption"> & { + /** + * @generated from field: string value = 1; + */ + value: string; + + /** + * @generated from field: string description = 2; + */ + description: string; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.AnnotatedOption. + * Use `create(AnnotatedOptionSchema)` to create a new message. + */ +export const AnnotatedOptionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 24); + +/** + * BloblangFunctionSpec represents a Bloblang function specification. + * + * @generated from message redpanda.api.dataplane.v1.BloblangFunctionSpec + */ +export type BloblangFunctionSpec = Message<"redpanda.api.dataplane.v1.BloblangFunctionSpec"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + + /** + * @generated from field: string description = 2; + */ + description: string; + + /** + * @generated from field: string status = 3; + */ + status: string; + + /** + * @generated from field: repeated string categories = 4; + */ + categories: string[]; + + /** + * @generated from field: redpanda.api.dataplane.v1.ParamSpec params = 5; + */ + params?: ParamSpec; + + /** + * @generated from field: repeated string examples = 6; + */ + examples: string[]; + + /** + * @generated from field: string version = 7; + */ + version: string; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.BloblangFunctionSpec. + * Use `create(BloblangFunctionSpecSchema)` to create a new message. + */ +export const BloblangFunctionSpecSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 25); + +/** + * BloblangMethodSpec represents a Bloblang method specification. + * + * @generated from message redpanda.api.dataplane.v1.BloblangMethodSpec + */ +export type BloblangMethodSpec = Message<"redpanda.api.dataplane.v1.BloblangMethodSpec"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + + /** + * @generated from field: string description = 2; + */ + description: string; + + /** + * @generated from field: string status = 3; + */ + status: string; + + /** + * @generated from field: repeated string categories = 4; + */ + categories: string[]; + + /** + * @generated from field: redpanda.api.dataplane.v1.ParamSpec params = 5; + */ + params?: ParamSpec; + + /** + * @generated from field: repeated string examples = 6; + */ + examples: string[]; + + /** + * @generated from field: string version = 7; + */ + version: string; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.BloblangMethodSpec. + * Use `create(BloblangMethodSpecSchema)` to create a new message. + */ +export const BloblangMethodSpecSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 26); + +/** + * ParamSpec represents parameter specifications. + * + * @generated from message redpanda.api.dataplane.v1.ParamSpec + */ +export type ParamSpec = Message<"redpanda.api.dataplane.v1.ParamSpec"> & { + /** + * @generated from field: repeated redpanda.api.dataplane.v1.ParamDefinition definitions = 1; + */ + definitions: ParamDefinition[]; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.ParamSpec. + * Use `create(ParamSpecSchema)` to create a new message. + */ +export const ParamSpecSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 27); + +/** + * ParamDefinition represents a parameter definition. + * + * @generated from message redpanda.api.dataplane.v1.ParamDefinition + */ +export type ParamDefinition = Message<"redpanda.api.dataplane.v1.ParamDefinition"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + + /** + * @generated from field: string description = 2; + */ + description: string; + + /** + * @generated from field: string type = 3; + */ + type: string; + + /** + * @generated from field: string default_value = 4; + */ + defaultValue: string; +}; + +/** + * Describes the message redpanda.api.dataplane.v1.ParamDefinition. + * Use `create(ParamDefinitionSchema)` to create a new message. + */ +export const ParamDefinitionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 28); + /** * @generated from message redpanda.api.dataplane.v1.PipelinesForSecret */ @@ -719,7 +1147,7 @@ export type PipelinesForSecret = Message<"redpanda.api.dataplane.v1.PipelinesFor * Use `create(PipelinesForSecretSchema)` to create a new message. */ export const PipelinesForSecretSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_redpanda_api_dataplane_v1_pipeline, 19); + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 29); /** * @generated from message redpanda.api.dataplane.v1.GetPipelinesForSecretRequest @@ -738,7 +1166,7 @@ export type GetPipelinesForSecretRequest = Message<"redpanda.api.dataplane.v1.Ge * Use `create(GetPipelinesForSecretRequestSchema)` to create a new message. */ export const GetPipelinesForSecretRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_redpanda_api_dataplane_v1_pipeline, 20); + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 30); /** * @generated from message redpanda.api.dataplane.v1.GetPipelinesForSecretResponse @@ -755,7 +1183,7 @@ export type GetPipelinesForSecretResponse = Message<"redpanda.api.dataplane.v1.G * Use `create(GetPipelinesForSecretResponseSchema)` to create a new message. */ export const GetPipelinesForSecretResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_redpanda_api_dataplane_v1_pipeline, 21); + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 31); /** * @generated from message redpanda.api.dataplane.v1.GetPipelinesBySecretsRequest @@ -768,7 +1196,7 @@ export type GetPipelinesBySecretsRequest = Message<"redpanda.api.dataplane.v1.Ge * Use `create(GetPipelinesBySecretsRequestSchema)` to create a new message. */ export const GetPipelinesBySecretsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_redpanda_api_dataplane_v1_pipeline, 22); + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 32); /** * @generated from message redpanda.api.dataplane.v1.GetPipelinesBySecretsResponse @@ -785,7 +1213,7 @@ export type GetPipelinesBySecretsResponse = Message<"redpanda.api.dataplane.v1.G * Use `create(GetPipelinesBySecretsResponseSchema)` to create a new message. */ export const GetPipelinesBySecretsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_redpanda_api_dataplane_v1_pipeline, 23); + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 33); /** * @generated from message redpanda.api.dataplane.v1.LintPipelineConfigRequest @@ -806,7 +1234,7 @@ export type LintPipelineConfigRequest = Message<"redpanda.api.dataplane.v1.LintP * Use `create(LintPipelineConfigRequestSchema)` to create a new message. */ export const LintPipelineConfigRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_redpanda_api_dataplane_v1_pipeline, 24); + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 34); /** * @generated from message redpanda.api.dataplane.v1.LintPipelineConfigResponse @@ -825,7 +1253,45 @@ export type LintPipelineConfigResponse = Message<"redpanda.api.dataplane.v1.Lint * Use `create(LintPipelineConfigResponseSchema)` to create a new message. */ export const LintPipelineConfigResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_redpanda_api_dataplane_v1_pipeline, 25); + messageDesc(file_redpanda_api_dataplane_v1_pipeline, 35); + +/** + * ComponentStatus represents the stability level of a component. + * + * @generated from enum redpanda.api.dataplane.v1.ComponentStatus + */ +export enum ComponentStatus { + /** + * @generated from enum value: COMPONENT_STATUS_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: COMPONENT_STATUS_STABLE = 1; + */ + STABLE = 1, + + /** + * @generated from enum value: COMPONENT_STATUS_BETA = 2; + */ + BETA = 2, + + /** + * @generated from enum value: COMPONENT_STATUS_EXPERIMENTAL = 3; + */ + EXPERIMENTAL = 3, + + /** + * @generated from enum value: COMPONENT_STATUS_DEPRECATED = 4; + */ + DEPRECATED = 4, +} + +/** + * Describes the enum redpanda.api.dataplane.v1.ComponentStatus. + */ +export const ComponentStatusSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_redpanda_api_dataplane_v1_pipeline, 0); /** * PipelineService is the service for Redpanda Connect. @@ -915,6 +1381,16 @@ export const PipelineService: GenService<{ input: typeof GetPipelineServiceConfigSchemaRequestSchema; output: typeof GetPipelineServiceConfigSchemaResponseSchema; }, + /** + * ListComponents returns a JSON containing lists of allowed components based on component type filter. + * + * @generated from rpc redpanda.api.dataplane.v1.PipelineService.ListComponents + */ + listComponents: { + methodKind: "unary"; + input: typeof ListComponentsRequestSchema; + output: typeof ListComponentsResponseSchema; + }, /** * GetPipelinesForSecret implements the get pipelines for secret method which lists the pipelines * in the Redpanda cluster for the given secret. diff --git a/proto/gen/openapi/openapi.json b/proto/gen/openapi/openapi.json index 8b47e5a65..98a0b3af2 100644 --- a/proto/gen/openapi/openapi.json +++ b/proto/gen/openapi/openapi.json @@ -1 +1 @@ -{"components":{"schemas":{"ACL.Operation":{"description":"The operation that is allowed or denied (e.g. READ).","enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"},"Action":{"enum":["ACTION_PREPARE","ACTION_EXECUTE","ACTION_FINISH","ACTION_CANCEL"],"type":"string"},"AddPartitionsToTopicsRequest":{"properties":{"partition_count":{"description":"The number of partitions to add for the topics.","format":"int32","type":"integer"},"topic_names":{"description":"The topic names.","items":{"type":"string"},"type":"array"},"validate_only":{"description":"Validate the request only, do not execute it.","type":"boolean"}},"type":"object"},"AddPartitionsToTopicsResponse":{"properties":{"statuses":{"description":"The status of the operation for each topic.","items":{"$ref":"#/components/schemas/AlterTopicPartitionStatus"},"type":"array"}},"type":"object"},"AddTopicPartitionsBody":{"properties":{"partition_count":{"description":"The number of partitions to add to the topic.","format":"int32","type":"integer"},"validate_only":{"description":"Validate the request only, do not execute it.","type":"boolean"}},"type":"object"},"AddTopicPartitionsResponse":{"type":"object"},"AlterTopicPartitionStatus":{"properties":{"error":{"description":"The error if any.","type":"string"},"success":{"description":"Whether the operation was successful.","type":"boolean"},"topic_name":{"description":"The topic name.","type":"string"}},"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\n - AUTHENTICATION_MECHANISM_SASL_SCRAM: SASL SCRAM\n - AUTHENTICATION_MECHANISM_SASL_OAUTHBEARER: SASL OAUTHBEARER (OAuth 2.0 / OpenID Connect)\n - AUTHENTICATION_MECHANISM_SASL_PLAIN: SASL PLAIN (username/password in plaintext)\n - 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\nsyntactic aspects of the request.","properties":{"field_violations":{"description":"Describes all violations in a client request.","items":{"$ref":"#/components/schemas/FieldViolation"},"type":"array"}},"title":"BadRequest","type":"object"},"BatchDeleteQuotaRequest":{"properties":{"deletions":{"items":{"$ref":"#/components/schemas/QuotaDeletion"},"type":"array"}},"type":"object"},"BatchDeleteQuotaResponse":{"properties":{"failed_entities":{"items":{"$ref":"#/components/schemas/FailedEntity"},"type":"array"},"successful_entities":{"items":{"$ref":"#/components/schemas/SuccessfulEntity"},"type":"array"}},"type":"object"},"BatchSetQuotaRequest":{"properties":{"settings":{"description":"A list of quota settings to apply. Each setting pairs an entity\nwith the specific values to be set for it.","items":{"$ref":"#/components/schemas/QuotaSetting"},"type":"array"}},"type":"object"},"BatchSetQuotaResponse":{"properties":{"failed_entities":{"items":{"$ref":"#/components/schemas/FailedEntity"},"type":"array"},"successful_entities":{"items":{"$ref":"#/components/schemas/SuccessfulEntity"},"type":"array"}},"type":"object"},"Config":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"ConfigAlterOperation":{"enum":["CONFIG_ALTER_OPERATION_SET","CONFIG_ALTER_OPERATION_DELETE","CONFIG_ALTER_OPERATION_APPEND","CONFIG_ALTER_OPERATION_SUBTRACT"],"type":"string"},"ConfigSource":{"enum":["CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG","CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG","CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG","CONFIG_SOURCE_STATIC_BROKER_CONFIG","CONFIG_SOURCE_DEFAULT_CONFIG","CONFIG_SOURCE_DYNAMIC_BROKER_LOGGER_CONFIG"],"type":"string"},"ConfigSynonym":{"properties":{"name":{"type":"string"},"source":{"$ref":"#/components/schemas/ConfigSource"},"value":{"nullable":true,"type":"string"}},"type":"object"},"ConfigType":{"enum":["CONFIG_TYPE_BOOLEAN","CONFIG_TYPE_STRING","CONFIG_TYPE_INT","CONFIG_TYPE_SHORT","CONFIG_TYPE_LONG","CONFIG_TYPE_DOUBLE","CONFIG_TYPE_LIST","CONFIG_TYPE_CLASS","CONFIG_TYPE_PASSWORD"],"type":"string"},"Configuration":{"properties":{"config_synonyms":{"description":"If no config value is set at the topic level, it will inherit the value\nset at the broker or cluster level. `name` is the corresponding config\nkey whose value is inherited. `source` indicates whether the inherited\nconfig is default, broker, etc.","items":{"$ref":"#/components/schemas/ConfigSynonym"},"type":"array"},"documentation":{"description":"Config documentation.","nullable":true,"type":"string"},"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"read_only":{"description":"Whether the config is read-only, or is dynamic and can be altered.","type":"boolean"},"sensitive":{"description":"Whether this is a sensitive config key and value.","type":"boolean"},"source":{"$ref":"#/components/schemas/ConfigSource"},"type":{"$ref":"#/components/schemas/ConfigType"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"ConnectCluster":{"properties":{"address":{"description":"The host address of the Kafka Connect cluster.","type":"string"},"info":{"$ref":"#/components/schemas/ConnectCluster.Info"},"name":{"description":"Unique name of connect cluster. For Redpanda Cloud, the value is `redpanda`.","type":"string"},"plugins":{"items":{"$ref":"#/components/schemas/ConnectorPlugin"},"type":"array"}},"type":"object"},"ConnectCluster.Info":{"properties":{"commit":{"description":"The git commit ID of the connect worker source code.","type":"string"},"kafka_cluster_id":{"description":"Cluster ID.","type":"string"},"version":{"description":"Connect worker version.","type":"string"}},"type":"object"},"Connector":{"properties":{"state":{"description":"State of the connector instance.","type":"string"},"trace":{"description":"String value of stack trace.","type":"string"},"worker_id":{"description":"ID of worker that the connector is assigned to.","type":"string"}},"type":"object"},"ConnectorError":{"properties":{"content":{"description":"Detailed description of the error.","type":"string"},"title":{"description":"Short description of the error.","type":"string"},"type":{"$ref":"#/components/schemas/ConnectorError.Type"}},"title":"ConnectorError is the error of a connector, this is holistic error\nabstraction, made parsing the error trace of connector or Task","type":"object"},"ConnectorError.Type":{"description":"Error level.","enum":["TYPE_ERROR","TYPE_WARNING"],"type":"string"},"ConnectorHolisticState":{"description":"State of a connector or one of its tasks, as described in the [Kafka Connect documentation](https://kafka.apache.org/documentation.html#connect_administration). Takes into account not just the state of the connector instance itself, but also the tasks within the connector.\n\n - CONNECTOR_HOLISTIC_STATE_PAUSED: The connector or task has been administratively paused.\n - CONNECTOR_HOLISTIC_STATE_RESTARTING: The connector or task is restarting.\n - CONNECTOR_HOLISTIC_STATE_DESTROYED: The connector is destroyed, regardless of any tasks.\n - CONNECTOR_HOLISTIC_STATE_STOPPED: The connector or task has been stopped.\n - CONNECTOR_HOLISTIC_STATE_UNASSIGNED: - The connector or task has not yet been assigned to a worker,\n- THe connector is running, but there are unassigned tasks.\n - CONNECTOR_HOLISTIC_STATE_HEALTHY: The connector is running, \u003e 0 tasks, all of them in running state.\n - CONNECTOR_HOLISTIC_STATE_UNHEALTHY: - The connector has failed,\n- The connector is running, but has no tasks,\n- Connector is running and has tasks, but all tasks have failed.\n - CONNECTOR_HOLISTIC_STATE_DEGRADED: The connector is running and has tasks, and at least one task, but not all, have failed.\n - CONNECTOR_HOLISTIC_STATE_UNKNOWN: The connector or task state could not be determined.","enum":["CONNECTOR_HOLISTIC_STATE_PAUSED","CONNECTOR_HOLISTIC_STATE_RESTARTING","CONNECTOR_HOLISTIC_STATE_DESTROYED","CONNECTOR_HOLISTIC_STATE_STOPPED","CONNECTOR_HOLISTIC_STATE_UNASSIGNED","CONNECTOR_HOLISTIC_STATE_HEALTHY","CONNECTOR_HOLISTIC_STATE_UNHEALTHY","CONNECTOR_HOLISTIC_STATE_DEGRADED","CONNECTOR_HOLISTIC_STATE_UNKNOWN"],"type":"string"},"ConnectorInfoStatus":{"properties":{"info":{"$ref":"#/components/schemas/ConnectorSpec"},"name":{"description":"Name of connector.","type":"string"},"status":{"$ref":"#/components/schemas/ConnectorStatus"}},"type":"object"},"ConnectorPlugin":{"properties":{"class":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"}},"type":"object"},"ConnectorSpec":{"description":"Connector specifications as defined in the Kafka Connect\nAPI. You may include this in the request body when creating a new connector.","properties":{"config":{"additionalProperties":{"type":"string"},"description":"Connector configuration properties.","type":"object"},"name":{"description":"Name of connector.","type":"string"},"tasks":{"items":{"$ref":"#/components/schemas/TaskInfo"},"readOnly":true,"type":"array"},"type":{"readOnly":true,"type":"string"}},"required":["name","config"],"type":"object"},"ConnectorStatus":{"properties":{"connector":{"$ref":"#/components/schemas/Connector"},"errors":{"description":"List of parsed connectors' and tasks' errors.","items":{"$ref":"#/components/schemas/ConnectorError"},"type":"array"},"holistic_state":{"$ref":"#/components/schemas/ConnectorHolisticState"},"name":{"description":"Name of connector.","type":"string"},"tasks":{"description":"Status of connector tasks. For more information, see the [https://docs.redpanda.com/current/deploy/deployment-option/cloud/managed-connectors/monitor-connectors/#connector-tasks](Monitor Connectors) documentation.","items":{"$ref":"#/components/schemas/TaskStatus"},"type":"array"},"type":{"description":"Type of connector (sink or source).","type":"string"}},"type":"object"},"CreateACLRequest":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.\nFor requests with resource_type CLUSTER, this will default to \"kafka-cluster\".","type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"required":["resource_type","resource_pattern_type","principal","host","operation","permission_type"],"type":"object"},"CreateACLResponse":{"type":"object"},"CreateConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"CreateKafkaConnectSecretBody":{"description":"CreateKafkaConnectSecretRequest is the request of CreateKafkaConnectSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"name":{"description":"Name of connector.","type":"string"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["name","secret_data"],"type":"object"},"CreateKafkaConnectSecretResponse":{"description":"CreateKafkaConnectSecretResponse is the response of CreateKafkaConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"CreatePipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"CreateRoleResponse":{"description":"CreateRoleResponse is the response for CreateRole.","properties":{"role":{"$ref":"#/components/schemas/Role"}},"type":"object"},"CreateSecretRequest":{"description":"CreateSecretRequest is the request of CreateSecret.","properties":{"id":{"description":"Secret identifier.","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"CreateSecretResponse":{"description":"CreateSecretResponse is the response of CreateSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"CreateTopicRequest.Topic":{"properties":{"configs":{"description":"An array of key-value config pairs for a topic.\nThese correspond to Kafka topic-level configs.","items":{"$ref":"#/components/schemas/Config"},"type":"array"},"name":{"description":"Name of topic.","type":"string"},"partition_count":{"description":"The number of partitions to give the topic. If specifying\npartitions manually (see `replica_assignments`), set to -1.\nOr, to use the cluster default partition count, set to null.","format":"int32","nullable":true,"type":"integer"},"replica_assignments":{"description":"Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both `replication_factor` and\n`partition_count` must be -1.","items":{"$ref":"#/components/schemas/ReplicaAssignment"},"type":"array"},"replication_factor":{"description":"The number of replicas every partition must have.\nIf specifying partitions manually (see `replica_assignments`), set to -1.\nOr, to use the cluster default replication factor, set to null.","format":"int32","nullable":true,"type":"integer"}},"type":"object"},"CreateTopicResponse":{"properties":{"partition_count":{"description":"The number of partitions created for the topic.\nThis field has a default value of -1, which may be returned if the broker\ndoes not support v5+ of this request which added support for returning\nthis information.","format":"int32","type":"integer"},"replication_factor":{"description":"The number of replicas per topic partition.\nThis field has a default of -1, which may be returned if the broker\ndoes not support v5+ of this request which added support for returning\nthis information.","format":"int32","type":"integer"},"topic_name":{"description":"Name of topic.","type":"string"}},"type":"object"},"CreateUserRequest.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"},"password":{"description":"Password.","type":"string"}},"type":"object"},"CreateUserResponse":{"properties":{"user":{"$ref":"#/components/schemas/CreateUserResponse.User"}},"type":"object"},"CreateUserResponse.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"title":"Name of newly-created user","type":"string"}},"type":"object"},"DeleteACLsRequest.Filter":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","nullable":true,"type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","nullable":true,"type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.","nullable":true,"type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"required":["resource_type","resource_pattern_type","operation","permission_type"],"type":"object"},"DeleteACLsResponse":{"properties":{"matching_acls":{"items":{"$ref":"#/components/schemas/MatchingACL"},"type":"array"}},"type":"object"},"DeleteKafkaConnectSecretResponse":{"description":"DeleteKafkaConnectSecretResponse is the response of DeleteKafkaConnectSecret.","type":"object"},"DeleteMountTaskResponse":{"type":"object"},"DeletePipelineResponse":{"type":"object"},"DeleteQuotaRequest":{"properties":{"entity":{"$ref":"#/components/schemas/RequestQuotaEntity"},"value_type":{"$ref":"#/components/schemas/ValueType"}},"type":"object"},"DeleteQuotaResponse":{"type":"object"},"DeleteRoleResponse":{"description":"DeleteRoleResponse is the response for DeleteRole.","type":"object"},"DeleteSecretResponse":{"description":"DeleteSecretResponse is the response of DeleteSecret.","type":"object"},"DeleteTopicResponse":{"type":"object"},"DeleteTransformResponse":{"type":"object"},"DeleteUserResponse":{"type":"object"},"DeployTransformRequest":{"description":"Metadata required to deploy a new Wasm\ntransform in a Redpanda cluster.","properties":{"environment_variables":{"description":"The environment variables you want to apply to your transform's environment","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":"array"},"input_topic_name":{"description":"The input topic to apply the transform to.","example":"orders","type":"string"},"name":{"description":"Name of the transform.","example":"redact-payment-details-in-orders","type":"string"},"output_topic_names":{"description":"Output topic to write the transform results to.","example":"orders-redacted","items":{"type":"string"},"type":"array"}},"required":["name","input_topic_name","output_topic_names"],"type":"object"},"Entity":{"properties":{"entity_name":{"type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"}},"type":"object"},"EntityType":{"description":"The type of entity that the quota applies to.\n\n - ENTITY_TYPE_USER: Not supported in Redpanda\n - ENTITY_TYPE_IP: Not supported in Redpanda","enum":["ENTITY_TYPE_CLIENT_ID","ENTITY_TYPE_CLIENT_ID_PREFIX","ENTITY_TYPE_USER","ENTITY_TYPE_IP"],"type":"string"},"EnvironmentVariable":{"properties":{"key":{"description":"The key of your environment variable.","example":"LOG_LEVEL","type":"string"},"value":{"description":"The value of your environment variable.","example":"DEBUG","type":"string"}},"required":["key","value"],"type":"object"},"ErrorInfo":{"description":"Describes the cause of the error with structured details.\n\nExample of an error when contacting the \"pubsub.googleapis.com\" API when it\nis not enabled:\n\n { \"reason\": \"API_DISABLED\"\n \"domain\": \"googleapis.com\"\n \"metadata\": {\n \"resource\": \"projects/123\",\n \"service\": \"pubsub.googleapis.com\"\n }\n }\n\nThis response indicates that the pubsub.googleapis.com API is not enabled.\n\nExample of an error that is returned when attempting to create a Spanner\ninstance in a region that is out of stock:\n\n { \"reason\": \"STOCKOUT\"\n \"domain\": \"spanner.googleapis.com\",\n \"metadata\": {\n \"availableRegions\": \"us-central1,us-east2\"\n }\n }","properties":{"domain":{"description":"The logical grouping to which the \"reason\" belongs. The error domain\nis typically the registered service name of the tool or product that\ngenerates the error. Example: \"pubsub.googleapis.com\". If the error is\ngenerated by some common infrastructure, the error domain must be a\nglobally unique value that identifies the infrastructure. For Google API\ninfrastructure, the error domain is \"googleapis.com\".","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Additional structured details about this error.\n\nKeys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should\nideally be lowerCamelCase. Also, they must be limited to 64 characters in\nlength. When identifying the current value of an exceeded limit, the units\nshould be contained in the key, not the value. For example, rather than\n`{\"instanceLimit\": \"100/request\"}`, should be returned as,\n`{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of\ninstances that can be created in a single (batch) request.","type":"object"},"reason":{"description":"The reason of the error. This is a constant value that identifies the\nproximate cause of the error. Error reasons are unique within a particular\ndomain of errors. This should be at most 63 characters and match a\nregular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents\nUPPER_SNAKE_CASE.","type":"string"}},"title":"ErrorInfo","type":"object"},"FailedEntity":{"properties":{"entity_name":{"type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"},"error_code":{"format":"int32","type":"integer"},"error_message":{"type":"string"}},"type":"object"},"FieldViolation":{"description":"A message type used to describe a single bad request field.","properties":{"description":{"description":"A description of why the request element is bad.","type":"string"},"field":{"description":"A path that leads to a field in the request body. The value will be a\nsequence of dot-separated identifiers that identify a protocol buffer\nfield.\n\nConsider the following:\n\n message CreateContactRequest {\n message EmailAddress {\n enum Type {\n TYPE_UNSPECIFIED = 0;\n HOME = 1;\n WORK = 2;\n }\n\n optional string email = 1;\n repeated EmailType type = 2;\n }\n\n string full_name = 1;\n repeated EmailAddress email_addresses = 2;\n }\n\nIn this example, in proto `field` could take one of the following values:\n\n* `full_name` for a violation in the `full_name` value\n* `email_addresses[1].email` for a violation in the `email` field of the\n first `email_addresses` message\n* `email_addresses[3].type[2]` for a violation in the second `type`\n value in the third `email_addresses` message.\n\nIn JSON, the same values are represented as:\n\n* `fullName` for a violation in the `fullName` value\n* `emailAddresses[1].email` for a violation in the `email` field of the\n first `emailAddresses` message\n* `emailAddresses[3].type[2]` for a violation in the second `type`\n value in the third `emailAddresses` message.","type":"string"},"localized_message":{"$ref":"#/components/schemas/LocalizedMessage"},"reason":{"description":"The reason of the field-level error. This is a constant value that\nidentifies the proximate cause of the field-level error. It should\nuniquely identify the type of the FieldViolation within the scope of the\ngoogle.rpc.ErrorInfo.domain. This should be at most 63\ncharacters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`,\nwhich represents UPPER_SNAKE_CASE.","type":"string"}},"type":"object"},"GetConnectClusterResponse":{"properties":{"cluster":{"$ref":"#/components/schemas/ConnectCluster"}},"type":"object"},"GetConnectorConfigResponse":{"properties":{"config":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"GetConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"GetConnectorStatusResponse":{"properties":{"status":{"$ref":"#/components/schemas/ConnectorStatus"}},"type":"object"},"GetKafkaConnectSecretResponse":{"description":"GetKafkaConnectSecretResponse is the response of GetKafkaConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"GetMountTaskResponse":{"properties":{"task":{"$ref":"#/components/schemas/MountTask"}},"type":"object"},"GetPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"GetPipelineServiceConfigSchemaResponse":{"properties":{"config_schema":{"description":"JSON schema of the configuration components that are allowed for Connect pipelines.","type":"string"}},"type":"object"},"GetPipelinesBySecretsResponse":{"properties":{"pipelines_for_secret":{"items":{"$ref":"#/components/schemas/PipelinesForSecret"},"type":"array"}},"type":"object"},"GetPipelinesForSecretResponse":{"properties":{"pipelines_for_secret":{"$ref":"#/components/schemas/PipelinesForSecret"}},"type":"object"},"GetRoleResponse":{"description":"GetRoleResponse is the response to GetRole.","properties":{"members":{"description":"Members assigned to the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"role":{"$ref":"#/components/schemas/Role"}},"type":"object"},"GetSecretResponse":{"description":"GetSecretResponse is the response of GetSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"GetTopicConfigurationsResponse":{"properties":{"configurations":{"items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"GetTransformResponse":{"properties":{"transform":{"$ref":"#/components/schemas/TransformMetadata"}},"type":"object"},"Help":{"description":"Provides links to documentation or for performing an out of band action.\n\nFor example, if a quota check failed with an error indicating the calling\nproject hasn't enabled the accessed service, this can contain a URL pointing\ndirectly to the right place in the developer console to flip the bit.","properties":{"links":{"description":"URL(s) pointing to additional information on handling the current error.","items":{"$ref":"#/components/schemas/Link"},"type":"array"}},"title":"Help","type":"object"},"InFlightRequests":{"properties":{"has_more_requests":{"description":"Whether there are more in-flight requests than those in\n`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\nin requests on this connection. It can be useful for understanding which\nprotocol versions a client supports or has negotiated with the broker.\nOnly APIs that were actually used (i.e. at least one request was seen)\nare included.\n\nExample:\n { 0: 11, 1: 13 }\nmeans that for API key 0 (Produce), version 11 was the highest seen,\nand for API key 1 (Fetch), version 13 was the highest seen.\n\nReference:\n- https://kafka.apache.org/0101/protocol.html#protocol_api_keys\n- 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.\nThis is typically a configurable property (client.id) set by the\napplication when creating a producer or consumer, and is often used for\nmetrics, quotas, and debugging.","type":"string"},"client_software_name":{"description":"Name of the client library, reported automatically in ApiVersions v3+\nrequests. This is set by the client implementation and is not typically\nconfigurable by applications.","type":"string"},"client_software_version":{"description":"Version of the client library, reported automatically in ApiVersions v3+\nrequests. Like client_software_name, this is set by the\nclient and not usually configurable by applications.","type":"string"},"close_time":{"description":"When the connection was closed. This field is set only when the\nconnection state is \"closed\".","format":"date-time","type":"string"},"group_id":{"description":"Most recent group ID seen in requests sent over this connection. This\ntypically refers to a consumer group, but the Kafka group protocol is\nmore general and may also be used by other types of clients that\ncoordinate membership and assignments through the broker.","type":"string"},"group_instance_id":{"description":"Most recent group instance ID seen in requests sent over this connection.\nThis is used when static membership is enabled, allowing a specific\nclient 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.\nThis is the unique identifier assigned by the broker to a particular\nmember 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.\nA listener is a named broker endpoint (for example, \"internal\",\n\"external\", or \"sasl_tls\"). Each listener defines its network address and\nenforces 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.\n - KAFKA_CONNECTION_STATE_ABORTING: The connection is aborting ongoing requests and about to be closed.\nThis is a transient state between open and closed that should rarely be\nobservable under normal circumstances.\n - 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":{"description":{"description":"Describes what the link offers.","type":"string"},"url":{"description":"The URL of the link.","type":"string"}},"type":"object"},"LintHint":{"description":"LintHint is a generic linting hint.","properties":{"column":{"description":"Column number of the lint.","format":"int32","type":"integer"},"hint":{"description":"The hint message.","type":"string"},"line":{"description":"Line number of the lint.","format":"int32","type":"integer"},"lint_type":{"description":"Optional lint type or enum.","type":"string"}},"type":"object"},"LintPipelineConfigRequest":{"properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format.\nSee the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation\nfor more details.","type":"string"}},"required":["config_yaml"],"type":"object"},"LintPipelineConfigResponse":{"properties":{"lint_hints":{"description":"A list of linting issues.","items":{"$ref":"#/components/schemas/LintHint"},"type":"array"}},"type":"object"},"ListACLsRequest.Filter":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","nullable":true,"type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","nullable":true,"type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.","nullable":true,"type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"type":"object"},"ListACLsResponse":{"properties":{"resources":{"items":{"$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"},"ListConnectClustersResponse":{"properties":{"clusters":{"items":{"$ref":"#/components/schemas/ConnectCluster"},"type":"array"}},"type":"object"},"ListConnectorTopicsResponse":{"properties":{"topics":{"description":"Topic names.","items":{"type":"string"},"type":"array"}},"type":"object"},"ListConnectorsResponse":{"properties":{"connectors":{"description":"List of connectors, where the parent key is the connector name.","items":{"$ref":"#/components/schemas/ConnectorInfoStatus"},"type":"array"},"next_page_token":{"description":"Page Token to fetch the next page. The value can be used as page_token in the next call to this endpoint.","type":"string"}},"type":"object"},"ListKafkaConnectSecretsResponse":{"description":"ListKafkaConnectSecretsResponse is the response of ListKafkaConnectSecrets.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"secrets":{"description":"Secrets retrieved.","items":{"$ref":"#/components/schemas/Secret"},"type":"array"}},"type":"object"},"ListKafkaConnectionsResponse":{"description":"ListKafkaConnectionsResponse is the response from the ListKafkaConnections\nRPC.","properties":{"connections":{"description":"The list of connections matching the request.\nNote that in addition to open connections, some recently-closed\nconnections may also be included here. If you don't want to include\nclosed connections, set the filter in the request to `state =\nKAFKA_CONNECTION_STATE_OPEN`.","items":{"$ref":"#/components/schemas/KafkaConnection"},"type":"array"},"total_size":{"format":"uint64","title":"Total number of connections matching the request.\nThis may be greater than `len(connections)` if some connections were\nomitted from the response due to the specified (or default) `page_size`.\nExample:\n request.page_size = 10\n response.connections = [\u003c10 items\u003e]\n response.total_size = 13","type":"string"}},"type":"object"},"ListMountTasksResponse":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/MountTask"},"type":"array"}},"type":"object"},"ListMountableTopicsResponse":{"properties":{"topics":{"items":{"$ref":"#/components/schemas/TopicLocation"},"type":"array"}},"type":"object"},"ListPipelinesRequest.Filter":{"properties":{"name_contains":{"description":"Any pipelines that partially match this name will be returned.","type":"string"},"secret_id":{"type":"string"},"tags[string]":{"additionalProperties":{"type":"string"},"description":"Pipelines that match all the provided tags will be returned.","type":"object"}},"type":"object"},"ListPipelinesResponse":{"properties":{"next_page_token":{"type":"string"},"pipelines":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"}},"type":"object"},"ListQuotasRequest.Filter":{"properties":{"entity_name":{"description":"Filter by entity name. If unspecified will return all entities for specified entity type.","type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"},"match_default":{"description":"If true, the entity_name will match the default entity (e.g., default client-id).","type":"boolean"}},"type":"object"},"ListQuotasResponse":{"properties":{"page_token":{"description":"Token to retrieve the next page of results. If empty, there are no more results.","type":"string"},"quotas":{"items":{"$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":{"name_contains":{"description":"Filter results to only members with names which contain the string.","type":"string"}},"type":"object"},"ListRoleMembersResponse":{"description":"ListRoleMembersResponse is the response for ListRoleMembers.","properties":{"members":{"description":"Members assigned to the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"role_name":{"description":"The role name.","type":"string"}},"type":"object"},"ListRolesRequest.Filter":{"description":"Filter options.","properties":{"name_contains":{"description":"Filter results to only roles with names which contain the string.","type":"string"},"name_prefix":{"description":"Filter results only roles named with the prefix.","type":"string"},"principal":{"description":"Return only roles assigned to this principal.","type":"string"}},"type":"object"},"ListRolesResponse":{"description":"ListRolesResponse is the response for ListRoles.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"roles":{"description":"The roles in the system.","items":{"$ref":"#/components/schemas/Role"},"type":"array"}},"type":"object"},"ListSecretScopesResponse":{"description":"ListSecretScopesResponse is the response of ListSecretScopes.","properties":{"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"type":"array"}},"type":"object"},"ListSecretsFilter":{"description":"ListSecretsFilter are the filter options for listing secrets.","properties":{"labels[string][string]":{"additionalProperties":{"type":"string"},"description":"The secret labels to search for.","type":"object"},"name_contains":{"description":"Substring match on secret name. Case-sensitive.","type":"string"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes to search for","type":"array"}},"type":"object"},"ListSecretsResponse":{"description":"ListSecretsResponse is the response of ListSecrets.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"secrets":{"description":"Secrets retrieved.","items":{"$ref":"#/components/schemas/Secret"},"type":"array"}},"type":"object"},"ListTopicsRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on topic name. Case-sensitive.","type":"string"}},"type":"object"},"ListTopicsResponse":{"properties":{"next_page_token":{"type":"string"},"topics":{"items":{"$ref":"#/components/schemas/ListTopicsResponse.Topic"},"type":"array"}},"type":"object"},"ListTopicsResponse.Topic":{"properties":{"internal":{"description":"Whether topic is internal only.","type":"boolean"},"name":{"description":"Topic name.","type":"string"},"partition_count":{"description":"Topic partition count.","format":"int32","type":"integer"},"replication_factor":{"description":"Topic replication factor.","format":"int32","type":"integer"}},"type":"object"},"ListTransformsRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on transform name. Case-sensitive.","type":"string"}},"type":"object"},"ListTransformsResponse":{"properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"transforms":{"items":{"$ref":"#/components/schemas/TransformMetadata"},"type":"array"}},"type":"object"},"ListUsersRequest.Filter":{"properties":{"name":{"description":"Username.","type":"string"},"name_contains":{"description":"Substring match on username. Case-sensitive.","type":"string"}},"type":"object"},"ListUsersResponse":{"properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"users":{"items":{"$ref":"#/components/schemas/ListUsersResponse.User"},"type":"array"}},"type":"object"},"ListUsersResponse.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"}},"type":"object"},"LocalizedMessage":{"description":"Provides a localized error message that is safe to return to the user\nwhich can be attached to an RPC error.","properties":{"locale":{"title":"The locale used following the specification defined at\nhttps://www.rfc-editor.org/rfc/bcp/bcp47.txt.\nExamples are: \"en-US\", \"fr-CH\", \"es-MX\"","type":"string"},"message":{"description":"The localized error message in the above locale.","type":"string"}},"type":"object"},"MatchingACL":{"properties":{"error":{"$ref":"#/components/schemas/rpc.Status"},"host":{"description":"The host address to use for this ACL.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies.","type":"string"},"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"},"MountTask":{"properties":{"id":{"description":"Unique identifier for this mount task.","format":"int32","type":"integer"},"state":{"$ref":"#/components/schemas/MountTask.State"},"topics":{"description":"List of topics that are being mounted or unmounted.","items":{"$ref":"#/components/schemas/MountTask.Topic"},"type":"array"},"type":{"$ref":"#/components/schemas/MountTask.Type"}},"type":"object"},"MountTask.State":{"description":" - STATE_PLANNED: Planned: The mount task has been created and is awaiting further actions.\n - STATE_PREPARING: Preparing: The mount task is gathering resources and preparing for execution.\n - STATE_PREPARED: Prepared: All preparations are complete, and the mount task is ready to be executed.\n - STATE_EXECUTING: Executing: The mount task is actively transferring or transforming data.\n - STATE_EXECUTED: Executed: The core mount task actions are complete, but the mount task has not yet cut over or finalized.\n - STATE_CUT_OVER: Cut Over: The mount task has reached a critical point where ownership is transferred or final adjustments are made.\n - STATE_FINISHED: Finished: The mount task has been successfully completed, and no further actions are required.\n - STATE_CANCELING: Canceling: The mount task is in the process of being canceled, and rollback or cleanup actions may be in progress.\n - STATE_CANCELLED: Cancelled: The mount task has been fully canceled, and no further actions will be taken.","enum":["STATE_PLANNED","STATE_PREPARING","STATE_PREPARED","STATE_EXECUTING","STATE_EXECUTED","STATE_CUT_OVER","STATE_FINISHED","STATE_CANCELING","STATE_CANCELLED"],"type":"string"},"MountTask.Topic":{"properties":{"source_topic_reference":{"description":"The topic reference in the object storage bucket.\nThis field is only set for tasks of type MOUNT.","type":"string"},"topic_reference":{"description":"The topic reference within the current cluster, which may be either a simple topic name or a full reference\nin the form: cluster-uuid/topic-name/revision.","type":"string"}},"type":"object"},"MountTask.Type":{"description":" - TYPE_MOUNT: Mount represents the process of making topics available in a cluster by loading them from object storage.\n - TYPE_UNMOUNT: Unmount represents the process of offloading topics back to object storage.","enum":["TYPE_MOUNT","TYPE_UNMOUNT"],"type":"string"},"MountTopicsResponse":{"properties":{"mount_task_id":{"format":"int32","title":"ID of mount","type":"integer"}},"type":"object"},"Options":{"properties":{"include_tasks":{"description":"Restart connector's tasks.","type":"boolean"},"only_failed":{"description":"Restart only connectors that have failed.","type":"boolean"}},"type":"object"},"PartitionStatus":{"enum":["PARTITION_STATUS_RUNNING","PARTITION_STATUS_INACTIVE","PARTITION_STATUS_ERRORED","PARTITION_STATUS_UNKNOWN"],"type":"string"},"PartitionTransformStatus":{"properties":{"broker_id":{"format":"int32","type":"integer"},"lag":{"format":"int32","type":"integer"},"partition_id":{"format":"int32","type":"integer"},"status":{"$ref":"#/components/schemas/PartitionStatus"}},"type":"object"},"PermissionType":{"description":"Whether the operation should be allowed or denied.","enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"},"Pipeline":{"description":"Defines the pipeline resource.","properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","title":"The pipeline configuration in YAML.\nSee https://docs.redpanda.com/redpanda-connect/configuration/about/","type":"string"},"description":{"description":"Optional pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"id":{"description":"Pipeline ID.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"},"state":{"$ref":"#/components/schemas/Pipeline.State"},"status":{"$ref":"#/components/schemas/Pipeline.Status"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags are key-value pairs that can be assigned to a pipeline resource.\nThey help organize pipelines and enable filtering when listing them.","type":"object"},"url":{"description":"URL to connect to the pipeline, for example, via http_server.\nMay be empty if no http_server is used.","type":"string"}},"required":["id","display_name","config_yaml"],"type":"object"},"Pipeline.State":{"description":"State of the pipeline.\n\n - STATE_STARTING: The pipeline is starting.\n - STATE_RUNNING: The pipeline is running.\n - STATE_STOPPING: The pipeline is in the process of stopping.\n - STATE_STOPPED: The pipeline is stopped and in paused state.\n - STATE_ERROR: The pipeline encountered an error. See [Error Handling](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/error_handling/) for further guidance.\n - STATE_COMPLETED: The pipeline has completed the job successfully.","enum":["STATE_STARTING","STATE_RUNNING","STATE_STOPPING","STATE_STOPPED","STATE_ERROR","STATE_COMPLETED"],"type":"string"},"Pipeline.Status":{"description":"Pipeline status may contain an error message.","properties":{"error":{"type":"string"}},"type":"object"},"PipelineCreate":{"description":"PipelineCreate contains the details for the pipeline creation request.","properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","type":"string"},"description":{"description":"Pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"},"tags":{"additionalProperties":{"type":"string"},"description":"Optional list of tags to attach to a pipeline.","type":"object"}},"required":["display_name","config_yaml"],"type":"object"},"PipelineUpdate":{"properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","type":"string"},"description":{"description":"Pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags to add, update or delete.\nIf a tag's value is empty, the server interprets that as a deletion.","type":"object"}},"required":["display_name","config_yaml"],"type":"object"},"PipelinesForSecret":{"properties":{"pipelines":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"},"secret_id":{"type":"string"}},"type":"object"},"Policy":{"properties":{"host":{"description":"The host address for this ACL.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies.","type":"string"}},"type":"object"},"Quota.Value":{"properties":{"value":{"format":"double","type":"number"},"value_type":{"$ref":"#/components/schemas/ValueType"}},"type":"object"},"QuotaDeletion":{"properties":{"entity":{"$ref":"#/components/schemas/RequestQuotaEntity"},"value_types":{"items":{"$ref":"#/components/schemas/ValueType"},"title":"Value that should be deleted for the specified entity","type":"array"}},"type":"object"},"QuotaEntry":{"description":"QuotaEntry represents the quota for a specific entity type.","properties":{"entity":{"$ref":"#/components/schemas/Entity"},"values":{"items":{"$ref":"#/components/schemas/Quota.Value"},"type":"array"}},"type":"object"},"QuotaFailure":{"description":"Describes how a quota check failed.\n\nFor example if a daily limit was exceeded for the calling project,\na service could respond with a QuotaFailure detail containing the project\nid and the description of the quota limit that was exceeded. If the\ncalling project hasn't enabled the service in the developer console, then\na service could respond with the project id and set `service_disabled`\nto true.\n\nAlso see RetryInfo and Help types for other details about handling a\nquota failure.","properties":{"violations":{"description":"Describes all quota violations.","items":{"$ref":"#/components/schemas/QuotaFailure.Violation"},"type":"array"}},"title":"QuotaFailure","type":"object"},"QuotaFailure.Violation":{"description":"A message type used to describe a single quota violation. For example, a\ndaily quota or a custom quota that was exceeded.","properties":{"api_service":{"description":"The API Service from which the `QuotaFailure.Violation` orginates. In\nsome cases, Quota issues originate from an API Service other than the one\nthat was called. In other words, a dependency of the called API Service\ncould be the cause of the `QuotaFailure`, and this field would have the\ndependency API service name.\n\nFor example, if the called API is Kubernetes Engine API\n(container.googleapis.com), and a quota violation occurs in the\nKubernetes Engine API itself, this field would be\n\"container.googleapis.com\". On the other hand, if the quota violation\noccurs when the Kubernetes Engine API creates VMs in the Compute Engine\nAPI (compute.googleapis.com), this field would be\n\"compute.googleapis.com\".","type":"string"},"description":{"description":"A description of how the quota check failed. Clients can use this\ndescription to find more about the quota configuration in the service's\npublic documentation, or find the relevant quota limit to adjust through\ndeveloper console.\n\nFor example: \"Service disabled\" or \"Daily Limit for read operations\nexceeded\".","type":"string"},"future_quota_value":{"description":"The new quota value being rolled out at the time of the violation. At the\ncompletion of the rollout, this value will be enforced in place of\nquota_value. If no rollout is in progress at the time of the violation,\nthis field is not set.\n\nFor example, if at the time of the violation a rollout is in progress\nchanging the number of CPUs quota from 10 to 20, 20 would be the value of\nthis field.","format":"int64","nullable":true,"type":"string"},"quota_dimensions":{"additionalProperties":{"type":"string"},"description":"The dimensions of the violated quota. Every non-global quota is enforced\non a set of dimensions. While quota metric defines what to count, the\ndimensions specify for what aspects the counter should be increased.\n\nFor example, the quota \"CPUs per region per VM family\" enforces a limit\non the metric \"compute.googleapis.com/cpus_per_vm_family\" on dimensions\n\"region\" and \"vm_family\". And if the violation occurred in region\n\"us-central1\" and for VM family \"n1\", the quota_dimensions would be,\n\n{\n \"region\": \"us-central1\",\n \"vm_family\": \"n1\",\n}\n\nWhen a quota is enforced globally, the quota_dimensions would always be\nempty.","type":"object"},"quota_id":{"description":"The id of the violated quota. Also know as \"limit name\", this is the\nunique identifier of a quota in the context of an API service.\n\nFor example, \"CPUS-PER-VM-FAMILY-per-project-region\".","type":"string"},"quota_metric":{"description":"The metric of the violated quota. A quota metric is a named counter to\nmeasure usage, such as API requests or CPUs. When an activity occurs in a\nservice, such as Virtual Machine allocation, one or more quota metrics\nmay be affected.\n\nFor example, \"compute.googleapis.com/cpus_per_vm_family\",\n\"storage.googleapis.com/internet_egress_bandwidth\".","type":"string"},"quota_value":{"description":"The enforced quota value at the time of the `QuotaFailure`.\n\nFor example, if the enforced quota value at the time of the\n`QuotaFailure` on the number of CPUs is \"10\", then the value of this\nfield would reflect this quantity.","format":"int64","type":"string"},"subject":{"description":"The subject on which the quota check failed.\nFor example, \"clientip:\u003cip address of client\u003e\" or \"project:\u003cGoogle\ndeveloper project id\u003e\".","type":"string"}},"type":"object"},"QuotaSetting":{"properties":{"entity":{"$ref":"#/components/schemas/RequestQuotaEntity"},"values":{"items":{"$ref":"#/components/schemas/RequestQuotaValue"},"type":"array"}},"type":"object"},"ReplicaAssignment":{"properties":{"partition_id":{"description":"A partition to create.","format":"int32","type":"integer"},"replica_ids":{"description":"The broker IDs the partition replicas are assigned to.","items":{"format":"int32","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)\nhttps://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":{"description":"Entity name is the name of the entity type specified.\nIf left empty, the entity will be treated as a default entity (e.g., all clients).\nIf entity_type is ENTITY_TYPE_CLIENT_ID_PREFIX, this field must be set.","type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"}},"type":"object"},"RequestQuotaValue":{"properties":{"value":{"format":"double","type":"number"},"value_type":{"$ref":"#/components/schemas/ValueType"}},"type":"object"},"RequestStatistics":{"properties":{"fetch_bytes":{"description":"Sum of bytes fetched.","format":"uint64","type":"string"},"produce_batch_count":{"format":"uint64","title":"Number of produced batches.\nAverage 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"}},"type":"object"},"ResourcePatternType":{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"},"ResourceType":{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER","RESOURCE_TYPE_REGISTRY","RESOURCE_TYPE_SUBJECT"],"type":"string"},"Resources":{"properties":{"cpu_shares":{"description":"`cpu_shares` is a string specifying the amount of CPU to allocate for the\npipeline.\n\nThis follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable\nunits include:\n- Decimal SI units: \"m\" (e.g., \"500m\" for 500 millicores, \"2\" for 2 cores)\nCPU shares can be specified in millicores (1 core = 1000 millicores).\nIf you don't specify a unit, the value is interpreted as the number of cores.","type":"string"},"memory_shares":{"description":"`memory_shares` is a string specifying the amount of memory to allocate for\nthe pipeline.\n\nThis follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable units\ninclude:\n- Decimal SI units: \"K\", \"M\", \"G\", \"T\", \"P\", \"E\" (e.g., \"128M\" for 128\n megabytes)\n- Binary SI units: \"Ki\", \"Mi\", \"Gi\", \"Ti\", \"Pi\", \"Ei\" (e.g., \"512Mi\" for\n512 mebibytes) If you don't specify a unit, the value is interpreted as\nbytes.","type":"string"}},"required":["memory_shares","cpu_shares"],"type":"object"},"Role":{"description":"Role defines a role in the system.","properties":{"name":{"description":"The name of the role.","type":"string"}},"type":"object"},"RoleMembership":{"description":"RoleMembership is the role membership.","properties":{"principal":{"description":"The name of the principal assigned to the role.","type":"string"}},"type":"object"},"SASLMechanism":{"description":"SASL mechanism to use for authentication.","enum":["SASL_MECHANISM_SCRAM_SHA_256","SASL_MECHANISM_SCRAM_SHA_512"],"type":"string"},"Scope":{"description":"Defines the scope of a secret.","enum":["SCOPE_REDPANDA_CONNECT","SCOPE_REDPANDA_CLUSTER","SCOPE_MCP_SERVER","SCOPE_AI_AGENT"],"type":"string"},"Secret":{"description":"Defines the secret resource.","properties":{"id":{"description":"Secret identifier.","readOnly":true,"type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"}},"type":"object"},"ServiceAccount":{"properties":{"client_id":{"type":"string"},"client_secret":{"type":"string"}},"type":"object"},"SetConfiguration":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"SetPartitionsToTopicsRequest":{"properties":{"partition_count":{"description":"The number of partitions to set for the topics.","format":"int32","type":"integer"},"topic_names":{"description":"The topic names.","items":{"type":"string"},"type":"array"},"validate_only":{"description":"Validate the request only, do not execute it.","type":"boolean"}},"type":"object"},"SetPartitionsToTopicsResponse":{"properties":{"statuses":{"description":"The status of the operation for each topic.","items":{"$ref":"#/components/schemas/AlterTopicPartitionStatus"},"type":"array"}},"type":"object"},"SetQuotaRequest":{"properties":{"entity":{"$ref":"#/components/schemas/RequestQuotaEntity"},"value":{"$ref":"#/components/schemas/RequestQuotaValue"}},"type":"object"},"SetQuotaResponse":{"type":"object"},"SetTopicConfigurationsResponse":{"properties":{"configurations":{"description":"Topic's complete set of configurations after this update.","items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"SetTopicPartitionsBody":{"properties":{"partition_count":{"description":"The number of partitions to set for the topic.","format":"int32","type":"integer"},"validate_only":{"description":"Validate the request only, do not execute it.","type":"boolean"}},"type":"object"},"SetTopicPartitionsResponse":{"type":"object"},"Source":{"properties":{"ip_address":{"type":"string"},"port":{"format":"int64","type":"integer"}},"type":"object"},"StartPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"StopPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"SuccessfulEntity":{"properties":{"entity_name":{"type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"}},"type":"object"},"TLSInfo":{"properties":{"enabled":{"title":"Whether TLS is in use","type":"boolean"}},"type":"object"},"TaskInfo":{"properties":{"connector":{"description":"Name of connector.","type":"string"},"task":{"description":"The connector task ID.","format":"int32","type":"integer"}},"type":"object"},"TaskStatus":{"properties":{"id":{"description":"The connector task ID.","format":"int32","type":"integer"},"state":{"description":"State of connector task.","type":"string"},"trace":{"description":"String value of stack trace.","type":"string"},"worker_id":{"description":"ID of worker that the task is assigned to.","type":"string"}},"type":"object"},"TopicLocation":{"properties":{"topic_location":{"description":"Full reference for the unmounted topic in this format: `topic-name/cluster-uuid/revision`.\nUse this as unique identifier for mounting a topic if there are multiple topics available\nwith the same name.","type":"string"},"topic_name":{"description":"Topic name.","type":"string"}},"type":"object"},"TopicMount":{"description":"TopicMount defines the migration of a topic from the cloud storage into this cluster,\nso that it becomes available via the Kafka API.","properties":{"alias":{"description":"Alias may be provided to mount the topic under a different name. Leave\nblank to re-use the source topic name. The alias does not persist if you\nunmount the topic again.","type":"string"},"source_topic_reference":{"description":"The topic name or full reference of the topic to mount. The full reference\nmust be used in case the same topic exists more than once. This may be the case if\nthe same topic has been unmounted multiple times. List all mountable topics to\nfind the full reference (contains topic name, cluster uuid and revision).","type":"string"}},"required":["source_topic_reference"],"type":"object"},"TransformMetadata":{"properties":{"environment_variables":{"description":"The environment variables you want to apply to your transform's environment","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":"array"},"input_topic_name":{"description":"Input topic to apply the transform to.","type":"string"},"name":{"description":"Name of transform.","type":"string"},"output_topic_names":{"description":"Output topics to write the transform results to.","items":{"type":"string"},"type":"array"},"statuses":{"items":{"$ref":"#/components/schemas/PartitionTransformStatus"},"type":"array"}},"type":"object"},"UnmountTopicsResponse":{"properties":{"mount_task_id":{"format":"int32","title":"ID of unmount","type":"integer"}},"type":"object"},"UpdateConfiguration":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"operation":{"$ref":"#/components/schemas/ConfigAlterOperation"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"UpdateKafkaConnectSecretBody":{"description":"UpdateKafkaConnectSecretRequest is the request of UpdateKafkaConnectSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"UpdateKafkaConnectSecretResponse":{"description":"UpdateKafkaConnectSecretResponse is the response of UpdateKafkaConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"UpdateMountTaskBody":{"properties":{"action":{"$ref":"#/components/schemas/Action"}},"required":["action"],"type":"object"},"UpdateMountTaskResponse":{"type":"object"},"UpdatePipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"UpdateRoleMembershipBody":{"description":"UpdateRoleMembershipRequest is the request to UpdateRoleMembership.","properties":{"add":{"description":"Members to assign to the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"create":{"description":"Create the role if it doesn't already exist.\nIf the role is created in this way, the “add” list will be respected, but the “remove” list will be ignored.","type":"boolean"},"remove":{"description":"Members to remove from the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"}},"type":"object"},"UpdateRoleMembershipResponse":{"description":"UpdateRoleMembershipResponse is the response for UpdateRoleMembership.","properties":{"added":{"description":"Members assigned to the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"removed":{"description":"Members removed from the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"role_name":{"description":"The role name.","type":"string"}},"type":"object"},"UpdateSecretBody":{"description":"UpdateSecretRequest is the request of UpdateSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"type":"object"},"UpdateSecretResponse":{"description":"UpdateSecretResponse is the response of UpdateSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"UpdateTopicConfigurationsResponse":{"properties":{"configurations":{"description":"Topic's complete set of configurations after applying this partial patch.","items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"UpdateUserRequest.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"},"password":{"description":"Password.","type":"string"}},"type":"object"},"UpdateUserResponse":{"properties":{"user":{"$ref":"#/components/schemas/UpdateUserResponse.User"}},"type":"object"},"UpdateUserResponse.User":{"description":"Updated user's name and SASL mechanism.","properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"type":"string"}},"type":"object"},"UpsertConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"ValueType":{"description":"The type of value that the quota represents.\n\n - VALUE_TYPE_PRODUCER_BYTE_RATE: The rate at which producers can send data.\n - VALUE_TYPE_CONSUMER_BYTE_RATE: The rate at which consumers can fetch data.\n - VALUE_TYPE_CONTROLLER_MUTATION_RATE: The rate at which topic mutation requests can be made.\n - VALUE_TYPE_REQUEST_PERCENTAGE: The percentage of the total throughput that can be used by the entity.\n\nNot supported in Redpanda","enum":["VALUE_TYPE_PRODUCER_BYTE_RATE","VALUE_TYPE_CONSUMER_BYTE_RATE","VALUE_TYPE_CONTROLLER_MUTATION_RATE","VALUE_TYPE_REQUEST_PERCENTAGE"],"type":"string"},"rpc.Status":{"description":"The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).","properties":{"code":{"description":"RPC status code, as described [here](https://github.com/googleapis/googleapis/blob/b4c238feaa1097c53798ed77035bbfeb7fc72e96/google/rpc/code.proto#L32).","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"],"format":"int32","type":"string"},"details":{"items":{"description":"Details of the error.","oneOf":[{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.BadRequest"],"type":"string"}}},{"$ref":"#/components/schemas/BadRequest"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.ErrorInfo"],"type":"string"}}},{"$ref":"#/components/schemas/ErrorInfo"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.QuotaFailure"],"type":"string"}}},{"$ref":"#/components/schemas/QuotaFailure"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.Help"],"type":"string"}}},{"$ref":"#/components/schemas/Help"}]}]},"type":"array"},"message":{"description":"Detailed error message. No compatibility guarantees are given for the text contained in this message.","type":"string"}},"type":"object"}},"securitySchemes":{"auth0":{"description":"RedpandaCloud","flows":{"implicit":{"authorizationUrl":"https://auth.prd.cloud.redpanda.com/oauth/authorize","scopes":{},"x-client-id":"dQjapNIAHhF7EQqQToRla3yEII9sUSap"}},"type":"oauth2"}}},"info":{"title":"Redpanda Cloud Data Plane API","version":"v1"},"openapi":"3.0.3","paths":{"/v1/acls":{"delete":{"description":"Delete all ACLs that match the filter criteria. The `filter.` query string parameters find matching ACLs that meet all specified conditions.","operationId":"ACLService_DeleteACLs","parameters":[{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","in":"query","name":"filter.resource_type","required":true,"schema":{"enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER","RESOURCE_TYPE_REGISTRY","RESOURCE_TYPE_SUBJECT"],"type":"string"}},{"description":"The name of the resource this ACL targets.","in":"query","name":"filter.resource_name","schema":{"type":"string"}},{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","in":"query","name":"filter.resource_pattern_type","required":true,"schema":{"enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"}},{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","in":"query","name":"filter.host","schema":{"type":"string"}},{"description":"The operation that is allowed or denied (e.g. READ).","in":"query","name":"filter.operation","required":true,"schema":{"enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"}},{"description":"Whether the operation should be allowed or denied.","in":"query","name":"filter.permission_type","required":true,"schema":{"enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteACLsResponse"}}},"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":"Delete ACLs","tags":["Redpanda ACLs"]},"get":{"description":"List all ACLs. The `filter.` query string parameters find matching ACLs that meet all specified conditions.","operationId":"ACLService_ListACLs","parameters":[{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","in":"query","name":"filter.resource_type","schema":{"enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER","RESOURCE_TYPE_REGISTRY","RESOURCE_TYPE_SUBJECT"],"type":"string"}},{"description":"The name of the resource this ACL targets.","in":"query","name":"filter.resource_name","schema":{"type":"string"}},{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","in":"query","name":"filter.resource_pattern_type","schema":{"enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"}},{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","in":"query","name":"filter.host","schema":{"type":"string"}},{"description":"The operation that is allowed or denied (e.g. READ).","in":"query","name":"filter.operation","schema":{"enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"}},{"description":"Whether the operation should be allowed or denied.","in":"query","name":"filter.permission_type","schema":{"enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListACLsResponse"}}},"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":"List ACLs","tags":["Redpanda ACLs"]},"post":{"description":"Create a new ACL.","operationId":"ACLService_CreateACL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateACLRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateACLResponse"}}},"description":"Created"},"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":"Create ACL","tags":["Redpanda ACLs"]}},"/v1/cloud-storage/mount-tasks":{"get":{"description":"This operation retrieves the status of a task responsible for mounting or unmounting topics. It provides details on the task’s type (mount or unmount), its current state, and the topics involved.","operationId":"CloudStorageService_ListMountTasks","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMountTasksResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Retrieve the mount task status","tags":["Cloud Storage"]}},"/v1/cloud-storage/mount-tasks/{id}":{"delete":{"description":"Delete a mount or unmount by ID.","operationId":"CloudStorageService_DeleteMountTask","parameters":[{"description":"Unique identifier of the mount or unmount task to delete.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete a mount or unmount","tags":["Cloud Storage"]},"get":{"description":"Retrieves the status of a mount or unmount by ID. The response provides details on the operation type (mount or unmount), its current state, and the topics involved. Use the ID returned when you start the mount or unmount, or use the ListMountTasks endpoint to retrieve a list of IDs.","operationId":"CloudStorageService_GetMountTask","parameters":[{"description":"Unique identifier of the mount or unmount task to retrieve.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get the status of a mount or unmount by ID","tags":["Cloud Storage"]},"post":{"description":"This operation allows performing an action on an ongoing mount task.","operationId":"CloudStorageService_UpdateMountTask","parameters":[{"description":"ID is the unique identifier of the mount or unmount to update.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMountTaskBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update a mount or unmount","tags":["Cloud Storage"]}},"/v1/cloud-storage/topics/mount":{"post":{"description":"Attach mountable topics from object storage to a cluster, making them available for consumption and production again. Mounting a topic reloads its data and state to the local brokers, allowing active use of the topic.","operationId":"CloudStorageService_MountTopics","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TopicMount"},"required":["topics"],"type":"array"}}},"required":true,"x-originalParamName":"topics"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MountTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Mount topics from object storage","tags":["Cloud Storage"]}},"/v1/cloud-storage/topics/mountable":{"get":{"description":"Retrieve all topics that are currently unmounted and available to be mounted to the cluster. These topics reside in object storage and can be mounted for consumption or production within the cluster.","operationId":"CloudStorageService_ListMountableTopics","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMountableTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"List mountable topics","tags":["Cloud Storage"]}},"/v1/cloud-storage/topics/unmount":{"post":{"description":"Unmount topics to object storage, freeing up all local cluster resources. Once you unmount a topic, it can no longer be consumed or produced to. It detaches from the active cluster while its data remains safely stored in the external object storage.","operationId":"CloudStorageService_UnmountTopics","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"required":["topics"],"type":"array"}}},"description":"List of topics to unmount.","required":true,"x-originalParamName":"topics"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnmountTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Unmount topics to object storage","tags":["Cloud Storage"]}},"/v1/kafka-connect/clusters":{"get":{"description":"List Connect clusters available in Console.","operationId":"KafkaConnectService_ListConnectClusters","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectClustersResponse"}}},"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":"List Connect clusters","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}":{"get":{"description":"Get information about an available Kafka Connect cluster.","operationId":"KafkaConnectService_GetConnectCluster","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectCluster"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Connect cluster not found"},"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 Connect cluster","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors":{"get":{"description":"List connectors managed by the Kafka Connect service.","operationId":"KafkaConnectService_ListConnectors","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectorsResponse"}}},"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":"List connectors","tags":["Kafka Connect"]},"post":{"description":"Create a connector with the specified configuration.","operationId":"KafkaConnectService_CreateConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"required":true,"x-originalParamName":"connector"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Created"},"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":"Create connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}":{"delete":{"description":"Delete a connector. This operation force stops all tasks and also deletes the connector configuration.","operationId":"KafkaConnectService_DeleteConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Deleted"},"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":"Delete connector","tags":["Kafka Connect"]},"get":{"description":"Get information about a connector in a specific cluster.","operationId":"KafkaConnectService_GetConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"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 connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/config":{"get":{"description":"Get the configuration for the connector.","operationId":"KafkaConnectService_GetConnectorConfig","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"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 connector configuration","tags":["Kafka Connect"]},"put":{"description":"Update the configuration for an existing connector with the specified name, or create a new connector using the given configuration. Returns information about the connector after the change has been made.","operationId":"KafkaConnectService_UpsertConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector. If a connector with this name does not already exist, a new connector is created.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"required":["config"],"type":"object"}}},"description":"Connector configuration property.","required":true,"x-originalParamName":"config"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Updated"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Created"},"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":"Upsert connector configuration","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/pause":{"put":{"description":"Pause the connector and its tasks, which stops messages from processing until the connector is resumed. This call is asynchronous and may take some time to process.","operationId":"KafkaConnectService_PauseConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Pause request accepted"},"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":"Pause connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/restart":{"post":{"description":"Triggers a connector restart. You must specify whether or not tasks are also restarted, and whether only failed connectors are restarted.","operationId":"KafkaConnectService_RestartConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Options"}}},"required":true,"x-originalParamName":"options"},"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Restart connector request success"},"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":"Restart connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/resume":{"put":{"description":"Resume a paused connector and its tasks, and resumes message processing. This call is asynchronous and may take some time to process. If the connector was not paused, this operation does not do anything.","operationId":"KafkaConnectService_ResumeConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Resume request accepted"},"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":"Resume connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/status":{"get":{"description":"Gets the current status of the connector, including the state for each of its tasks, error information, etc.","operationId":"KafkaConnectService_GetConnectorStatus","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorStatus"}}},"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 connector status","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/stop":{"put":{"description":"Stops a connector, but does not delete it. All tasks for the connector are shut down completely. This call is asynchronous and may take some time to process.","operationId":"KafkaConnectService_StopConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Request accepted"},"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":"Stop connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics":{"get":{"description":"Returns a list of connector topic names. If the connector is inactive, this call returns an empty list.","operationId":"KafkaConnectService_ListConnectorTopics","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectorTopicsResponse"}}},"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":"List connector topics","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics/reset":{"put":{"description":"Resets the set of topic names that the connector is using.","operationId":"KafkaConnectService_ResetConnectorTopics","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector using the topics to be reset.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"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":"Reset connector topics","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/secrets":{"get":{"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`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Substring match on secret name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"filter.labels[string][string]","schema":{"type":"string"}},{"description":"Secret scopes to search for","in":"query","name":"filter.scopes","schema":{"items":{"enum":["SCOPE_REDPANDA_CONNECT","SCOPE_REDPANDA_CLUSTER","SCOPE_MCP_SERVER","SCOPE_AI_AGENT"],"type":"string"},"type":"array"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}},"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":"List Connect cluster secrets","tags":["Secrets"]},"post":{"description":"Create a Kafka Connect cluster secret.","operationId":"SecretService_CreateKafkaConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKafkaConnectSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetKafkaConnectSecretResponse"}}},"description":"Secret created"},"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":"Create Connect cluster secret","tags":["Secrets"]}},"/v1/kafka-connect/clusters/{cluster_name}/secrets/{id}":{"delete":{"description":"Delete a Kafka Connect cluster secret.","operationId":"SecretService_DeleteKafkaConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"ID of the secret to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Secret deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete Connect cluster secret","tags":["Secrets"]},"get":{"description":"Get a specific Kafka Connect cluster secret.","operationId":"SecretService_GetKafkaConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"The ID of the secret to retrieve.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetKafkaConnectSecretResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Connect cluster secret","tags":["Secrets"]},"put":{"description":"Update a Kafka Connect cluster secret.","operationId":"SecretService_UpdateKafkaConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"ID of the secret to update.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateKafkaConnectSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateKafkaConnectSecretResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"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\ndefault value may be applied. Note that paging is currently not fully\nsupported, and this field only acts as a limit for the first page of data\nreturned. 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.\nUses a subset of AIP-160 filter syntax supporting:\n- Field comparisons (`=`, `!=`, `\u003c`, `\u003e`, `\u003c=`, `\u003e=`)\n- Logical AND chaining: condition1 AND condition2\n- Nested field access: parent.child = value\n- Escape sequences: field = \"string with \\\"quotes\\\"\"\n- Enum types\n- RFC3339 timestamps and ISO-like duration\n\nLimitations (not supported):\n- Logical OR chaining\n- Parentheses `(` `)` for grouping\n- Map and repeated types\n- HAS (:) operator\n- Negation (-, NOT)\n- Bare literal matching\n\nExample filters:\n- `state = KAFKA_CONNECTION_STATE_OPEN`\n- `idle_duration \u003e 30s AND total_request_statistics.request_count \u003e 100`\n- `authentication_info.user_principal = \"my-producer\"`\n- `recent_request_statistics.produce_bytes \u003e 1000 AND\nclient_software_name = \"kgo\"`\n- `open_time \u003e= 2025-09-01T10:22:54Z`\n\nReference: https://google.aip.dev/160","in":"query","name":"filter","schema":{"type":"string"}},{"description":"Field-based ordering specification following AIP-132 syntax.\nSupports multiple fields with `asc`/`desc` direction indicators.\nExamples:\n- `idle_duration desc` - longest idle connections first\n- `open_time desc, total_request_statistics.request_count desc` - newest\nconnections first, then most active\n- `recent_request_statistics.produce_bytes desc` - connections with\nhighest current produce throughput first\n\nReference: 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.","operationId":"QuotaService_ListQuotas","parameters":[{"description":"The type of entity to filter by. If unspecified, all entities will be returned.\n\n - ENTITY_TYPE_USER: Not supported in Redpanda\n - ENTITY_TYPE_IP: Not supported in Redpanda","in":"query","name":"filter.entity_type","schema":{"enum":["ENTITY_TYPE_CLIENT_ID","ENTITY_TYPE_CLIENT_ID_PREFIX","ENTITY_TYPE_USER","ENTITY_TYPE_IP"],"type":"string"}},{"description":"Filter by entity name. If unspecified will return all entities for specified entity type.","in":"query","name":"filter.entity_name","schema":{"type":"string"}},{"description":"If true, the entity_name will match the default entity (e.g., default client-id).","in":"query","name":"filter.match_default","schema":{"type":"boolean"}},{"description":"Limit the paginated response to a number of items. Defaults to 100. Use -1 to disable pagination.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListQuotasResponse"}}},"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":"List quotas","tags":["Quotas"]},"post":{"description":"Create or update client throughput quotas for a single entity. This operation is an upsert.","operationId":"QuotaService_SetQuota","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetQuotaRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetQuotaResponse"}}},"description":"Quota Set"},"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":"Set a quota","tags":["Quotas"]}},"/v1/quotas:batchDelete":{"post":{"description":"Delete client quotas for multiple entities and values in a single request.","operationId":"QuotaService_BatchDeleteQuota","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDeleteQuotaRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDeleteQuotaResponse"}}},"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":"Delete multiple quotas","tags":["Quotas"]}},"/v1/quotas:batchSet":{"post":{"description":"Create or update client throughput quotas for multiple entities in a single request.","operationId":"QuotaService_BatchSetQuota","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSetQuotaRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSetQuotaResponse"}}},"description":"Quotas Set"},"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":"Set multiple quotas","tags":["Quotas"]}},"/v1/quotas:delete":{"post":{"description":"Delete client quotas for single entity and value.","operationId":"QuotaService_DeleteQuota","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteQuotaRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteQuotaResponse"}}},"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":"Delete a quota","tags":["Quotas"]}},"/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.","operationId":"PipelineService_GetPipelineServiceConfigSchema","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelineServiceConfigSchemaResponse"}}},"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 schema for Redpanda Connect pipeline configurations","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines":{"get":{"description":"List Redpanda Connect pipelines. Optional: filter based on pipeline name.","operationId":"PipelineService_ListPipelines","parameters":[{"description":"Any pipelines that partially match this name will be returned.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPipelinesResponse"}}},"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":"List Redpanda Connect pipelines","tags":["Redpanda Connect Pipelines"]},"post":{"description":"Create a new Redpanda Connect pipeline.","operationId":"PipelineService_CreatePipeline","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineCreate"}}},"required":true,"x-originalParamName":"pipeline"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"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":"Create Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines-by-secrets":{"get":{"description":"Get Redpanda Connect pipelines by secrets.","operationId":"PipelineService_GetPipelinesBySecrets","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelinesBySecretsResponse"}}},"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 Redpanda Connect pipelines by secrets","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines-for-secret":{"get":{"description":"Get Redpanda Connect pipelines for a given secret.","operationId":"PipelineService_GetPipelinesForSecret","parameters":[{"description":"Secret ID.","in":"query","name":"secret_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelinesForSecretResponse"}}},"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 Redpanda Connect pipelines for secret","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines/{id}":{"delete":{"description":"Delete a Redpanda Connect pipeline.","operationId":"PipelineService_DeletePipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete a Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]},"get":{"description":"Get a specific Redpanda Connect pipeline.","operationId":"PipelineService_GetPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]},"put":{"description":"Update the [configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) of a Redpanda Connect pipeline.","operationId":"PipelineService_UpdatePipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Specifies which fields should be updated. If not provided,\nall fields will be updated.","in":"query","name":"update_mask","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineUpdate"}}},"required":true,"x-originalParamName":"pipeline"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"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":"Update a Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines/{id}/start":{"put":{"description":"Start a stopped Redpanda Connect pipeline.","operationId":"PipelineService_StartPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"Started"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Start a Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines/{id}/stop":{"put":{"description":"Stop a running Redpanda Connect pipeline.","operationId":"PipelineService_StopPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"Stopped"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Stops a Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines:lint-config":{"post":{"description":"Validates a supplied Redpanda Connect pipeline YAML and returns a list of linting hints. If no problems are found, the list is empty.","operationId":"PipelineService_LintPipelineConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LintPipelineConfigRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LintPipelineConfigResponse"}}},"description":"Linting finished. See `lint_hints` for details."},"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":"Lint a Redpanda Connect pipeline configuration","tags":["Redpanda Connect Pipelines"]}},"/v1/roles":{"get":{"description":"List roles. Optional: filter based on role name and principal.","operationId":"SecurityService_ListRoles","parameters":[{"description":"Filter results only roles named with the prefix.","in":"query","name":"filter.name_prefix","schema":{"type":"string"}},{"description":"Filter results to only roles with names which contain the string.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"Return only roles assigned to this principal.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"Page size.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRolesResponse"}}},"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":"List roles","tags":["Security"]},"post":{"description":"Create a role.","operationId":"SecurityService_CreateRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}},"description":"The role to create.","required":true,"x-originalParamName":"role"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleResponse"}}},"description":"Role created"},"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":"Create role","tags":["Security"]}},"/v1/roles/{role_name}":{"delete":{"description":"Delete a role.","operationId":"SecurityService_DeleteRole","parameters":[{"description":"The role name.","in":"path","name":"role_name","required":true,"schema":{"type":"string"}},{"description":"Whether to delete the ACLs bound to the role.","in":"query","name":"delete_acls","schema":{"type":"boolean"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Role deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete role","tags":["Security"]},"get":{"description":"Get a role.","operationId":"SecurityService_GetRole","parameters":[{"description":"The role name.","in":"path","name":"role_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRoleResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get role","tags":["Security"]},"put":{"description":"Update a role.","operationId":"SecurityService_UpdateRoleMembership","parameters":[{"description":"The role name.","in":"path","name":"role_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoleMembershipBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoleMembershipResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update role","tags":["Security"]}},"/v1/roles/{role_name}/members":{"get":{"description":"List members assigned to a role.","operationId":"SecurityService_ListRoleMembers","parameters":[{"description":"The role name.","in":"path","name":"role_name","required":true,"schema":{"type":"string"}},{"description":"Filter results to only members with names which contain the string.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"Page size.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRoleMembersResponse"}}},"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":"List role members","tags":["Security"]}},"/v1/secret-scopes":{"get":{"description":"List supported secret scopes.","operationId":"SecretService_ListSecretScopes","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretScopesResponse"}}},"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":"List secret scopes","tags":["Secrets"]}},"/v1/secrets":{"get":{"description":"List secrets. Optional: filter based on secret name and labels.","operationId":"SecretService_ListSecrets","parameters":[{"description":"Substring match on secret name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"filter.labels[string]","schema":{"type":"string"}},{"description":"Secret scopes to search for","in":"query","name":"filter.scopes","schema":{"items":{"enum":["SCOPE_REDPANDA_CONNECT","SCOPE_REDPANDA_CLUSTER","SCOPE_MCP_SERVER","SCOPE_AI_AGENT"],"type":"string"},"type":"array"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}},{"description":"Limit the paginated response to a number of items.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}},"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":"List secrets","tags":["Secrets"]},"post":{"description":"Create a secret.","operationId":"SecretService_CreateSecret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecretRequest"}}},"description":"CreateSecretRequest is the request of CreateSecret.","required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecretResponse"}}},"description":"Secret created"},"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":"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.","operationId":"SecretService_DeleteSecret","parameters":[{"description":"The id of the secret to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Secret deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete secret","tags":["Secrets"]},"get":{"description":"Get a secret.","operationId":"SecretService_GetSecret","parameters":[{"description":"The id of the secret to retrieve.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSecretResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get secret","tags":["Secrets"]},"put":{"description":"Update a secret.","operationId":"SecretService_UpdateSecret","parameters":[{"description":"Secret identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSecretResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update secret","tags":["Secrets"]}},"/v1/topics":{"get":{"description":"List topics, with partition count and replication factor. Optional: filter based on topic name.","operationId":"TopicService_ListTopics","parameters":[{"description":"Substring match on topic name. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTopicsResponse"}}},"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":"List topics","tags":["Topics"]},"post":{"description":"Create a [topic](https://docs.redpanda.com/redpanda-cloud/get-started/create-topic/).","operationId":"TopicService_CreateTopic","parameters":[{"description":"If true, makes this request a dry run; everything is validated but\nno topics are actually created.","in":"query","name":"validate_only","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicRequest.Topic"}}},"description":"The topic to create.","required":true,"x-originalParamName":"topic"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicResponse"}}},"description":"Topic created"},"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":"Create topic","tags":["Topics"]}},"/v1/topics-partitions":{"patch":{"description":"Add partitions to existing topics. Depending on the partitioning strategy used, this may impact ordering guarantees.","operationId":"TopicService_AddPartitionsToTopics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPartitionsToTopicsRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPartitionsToTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Add topic partitions","tags":["Topics"]},"put":{"description":"Set partition counts for existing topics. New value must be equal to or larger than the current count of partitions in the topic. All topics will have the same final count of partitions. Depending on the partitioning strategy used, this may impact ordering guarantees.","operationId":"TopicService_SetPartitionsToTopics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPartitionsToTopicsRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPartitionsToTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Set topic partitions","tags":["Topics"]}},"/v1/topics/{topic_name}":{"delete":{"description":"Delete the Kafka topic with the requested name.","operationId":"TopicService_DeleteTopic","parameters":[{"description":"Topic name.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Topic deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Requested topic does not exist"},"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":"Delete topic","tags":["Topics"]}},"/v1/topics/{topic_name}/configurations":{"get":{"description":"Get key-value configs for a topic.","operationId":"TopicService_GetTopicConfigurations","parameters":[{"description":"Topic name","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get topic configurations","tags":["Topics"]},"patch":{"description":"Update a subset of the topic configurations.","operationId":"TopicService_UpdateTopicConfigurations","parameters":[{"description":"Topic name","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateConfiguration"},"type":"array"}}},"required":true,"x-originalParamName":"configurations"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update topic configuration","tags":["Topics"]},"put":{"description":"Update the entire set of key-value configurations for a topic. Config entries that are not provided in the request are removed and will fall back to their default values.","operationId":"TopicService_SetTopicConfigurations","parameters":[{"description":"Name of topic.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SetConfiguration"},"type":"array"}}},"required":true,"x-originalParamName":"configurations"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Set topic configurations","tags":["Topics"]}},"/v1/topics/{topic_name}/partitions":{"patch":{"description":"Add partitions to an existing topic. Depending on the partitioning strategy used, this may impact ordering guarantees.","operationId":"TopicService_AddTopicPartitions","parameters":[{"description":"The topic name.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTopicPartitionsBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTopicPartitionsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Add topic partitions","tags":["Topics"]},"put":{"description":"Set partitions to an existing topic. New value must be equal to or larger than the current count of partitions in the topic. Depending on the partitioning strategy used, this may impact ordering guarantees.","operationId":"TopicService_SetTopicPartitions","parameters":[{"description":"The topic name.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTopicPartitionsBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTopicPartitionsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Set topic partitions","tags":["Topics"]}},"/v1/transforms":{"get":{"description":"Retrieve a list of Wasm transforms. Optional: filter based on transform name.","operationId":"TransformService_ListTransforms","parameters":[{"description":"Substring match on transform name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"example":{"next_page_token":"","transforms":[{"environment_variables":[],"input_topic_name":"topic1","name":"transform1","output_topic_names":["output-topic11","output-topic12"],"statuses":[{"broker_id":1,"lag":1,"partition_id":1,"status":"PARTITION_STATUS_RUNNING"}]},{"environment_variables":[],"input_topic_name":"topic2","name":"transform2","output_topic_names":["output-topic21","output-topic22"],"statuses":[{"broker_id":2,"lag":2,"partition_id":2,"status":"PARTITION_STATUS_RUNNING"}]}]},"schema":{"$ref":"#/components/schemas/ListTransformsResponse"}}},"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":"List transforms","tags":["Wasm Transforms"]},"put":{"description":"Initiate deployment of a new Wasm transform. This endpoint uses multipart/form-data encoding. Following deployment, a brief period is required before the Wasm transform becomes operational. Monitor the partition statuses to check whether the transform is active. This usually takes around 3s, but no longer than 10s.","operationId":"TransformService_DeployTransform","requestBody":{"content":{"multipart/form-data":{"schema":{"example":"{\"name\":\"redact-orders\",\"input_topic_name\":\"orders\",\"output_topic_names\":[\"orders-redacted\"],\"environment_variables\":[{\"key\":\"LOGGER_LEVEL\",\"value\":\"DEBUG\"}]}","properties":{"metadata":{"$ref":"#/components/schemas/DeployTransformRequest"},"wasm_binary":{"description":"Binary file containing the compiled WASM transform. The maximum size for this file is 10MiB.","format":"binary","type":"string"}},"type":"object"}}},"description":"Transform metadata as well as the WASM binary","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransformMetadata"}}},"description":"Created"}},"summary":"Deploy Transform","tags":["Wasm Transforms"]}},"/v1/transforms/{name}":{"delete":{"description":"Delete a Wasm transform with the requested name.","operationId":"TransformService_DeleteTransform","parameters":[{"description":"Name of transform.","example":{"name":"transform1"},"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"example":{},"schema":{}}},"description":"Transform deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete transform","tags":["Wasm Transforms"]},"get":{"description":"Get a specific Wasm transform.","operationId":"TransformService_GetTransform","parameters":[{"description":"Name of transform.","example":{"name":"transform1"},"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"transform":{"environment_variables":[],"input_topic_name":"topic1","name":"transform1","output_topic_names":["output-topic1","output-topic2"],"statuses":[{"broker_id":1,"lag":1,"partition_id":1,"status":"PARTITION_STATUS_RUNNING"}]}},"schema":{"$ref":"#/components/schemas/GetTransformResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get transform","tags":["Wasm Transforms"]}},"/v1/users":{"get":{"description":"List users. Optional: filter based on username.","operationId":"UserService_ListUsers","parameters":[{"description":"Username.","in":"query","name":"filter.name","schema":{"type":"string"}},{"description":"Substring match on username. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"next_page_token":"","users":[{"name":"payment-service"},{"name":"jane"}]},"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}},"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":"List users","tags":["Redpanda Users"]},"post":{"description":"Create a new user.","operationId":"UserService_CreateUser","requestBody":{"content":{"application/json":{"example":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service","password":"secure-password"},"schema":{"$ref":"#/components/schemas/CreateUserRequest.User"}}},"required":true,"x-originalParamName":"user"},"responses":{"201":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service"}},"schema":{"$ref":"#/components/schemas/CreateUserRequest.User"}}},"description":"User created"},"400":{"content":{"application/json":{"example":{"code":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_INVALID_INPUT"},{"@type":"type.googleapis.com/google.rpc.BadRequest","field_violations":[{"description":"value length must be at least 3 characters","field":"user.password","localized_message":null,"reason":""},{"description":"value is required","field":"user.mechanism","localized_message":null,"reason":""}]}],"message":"provided parameters are invalid"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Bad request. Check API documentation and update request."},"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":"Create user","tags":["Redpanda Users"]}},"/v1/users/{name}":{"delete":{"description":"Delete the specified user","operationId":"UserService_DeleteUser","parameters":[{"description":"Username","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"example":{},"schema":{}}},"description":"User deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"example":{"code":"NOT_FOUND","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_RESOURCE_NOT_FOUND"}],"message":"user not found"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Not Found"},"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":"Delete user","tags":["Redpanda Users"]}},"/v1/users/{user.name}":{"put":{"description":"Update a user's credentials.","operationId":"UserService_UpdateUser","parameters":[{"description":"Username.","in":"path","name":"user.name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","password":"new-password"}},"schema":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"password":{"description":"Password.","type":"string"}},"type":"object"}}},"required":true,"x-originalParamName":"user"},"responses":{"200":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service"}},"schema":{"$ref":"#/components/schemas/UpdateUserResponse.User"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"code":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_INVALID_INPUT"},{"@type":"type.googleapis.com/google.rpc.BadRequest","field_violations":[{"description":"value length must be at least 3 characters","field":"user.password","localized_message":null,"reason":""},{"description":"value is required","field":"user.mechanism","localized_message":null,"reason":""}]}],"message":"provided parameters are invalid"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Bad request. Check API documentation and update request."},"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":"Update user","tags":["Redpanda Users"]}}},"security":[{"auth0":[]}],"servers":[{"description":"Data Plane API","url":"{dataplane_api_url}","variables":{"dataplane_api_url":{"default":"https://{dataplane_api_url}","description":"Find the Data Plane API base URL of a cluster by calling the Get Cluster endpoint of the Control Plane API. The dataplane_api.url field is returned in the response body.\u003cbr\u003e\u003cbr\u003e\n\t\t\t\t\tExample (Dedicated): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.fmc.prd.cloud.redpanda.com\"\u003cbr\u003e\n\t\t\t\t\tExample (BYOC): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.byoc.prd.cloud.redpanda.com\""}}}],"tags":[{"description":"Manage Redpanda access control lists (ACLs). See [Redpanda Cloud Authorization](https://docs.redpanda.com/redpanda-cloud/security/authorization/cloud-authorization/) for more information.","name":"Redpanda ACLs"},{"description":"Manage Redpanda topics stored in object storage. See: [Mountable Topics](https://docs.redpanda.com/redpanda-cloud/manage/mountable-topics/)","name":"Cloud Storage"},{"description":"Manage Wasm transforms in Redpanda.","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.","name":"Quotas"},{"description":"Manage [secrets](https://docs.redpanda.com/redpanda-cloud/security/secrets) for Redpanda Cloud.","name":"Secrets"},{"description":"Manage Redpanda roles.","name":"Security"},{"description":"Manage Redpanda topics.","name":"Topics"},{"description":"Manage Redpanda users. For more information, see [Role-Based Access Control](https://docs.redpanda.com/redpanda-cloud/security/authorization/rbac/).","name":"Redpanda Users"}]} \ No newline at end of file +{"components":{"schemas":{"ACL.Operation":{"description":"The operation that is allowed or denied (e.g. READ).","enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"},"Action":{"enum":["ACTION_PREPARE","ACTION_EXECUTE","ACTION_FINISH","ACTION_CANCEL"],"type":"string"},"AddPartitionsToTopicsRequest":{"properties":{"partition_count":{"description":"The number of partitions to add for the topics.","format":"int32","type":"integer"},"topic_names":{"description":"The topic names.","items":{"type":"string"},"type":"array"},"validate_only":{"description":"Validate the request only, do not execute it.","type":"boolean"}},"type":"object"},"AddPartitionsToTopicsResponse":{"properties":{"statuses":{"description":"The status of the operation for each topic.","items":{"$ref":"#/components/schemas/AlterTopicPartitionStatus"},"type":"array"}},"type":"object"},"AddTopicPartitionsBody":{"properties":{"partition_count":{"description":"The number of partitions to add to the topic.","format":"int32","type":"integer"},"validate_only":{"description":"Validate the request only, do not execute it.","type":"boolean"}},"type":"object"},"AddTopicPartitionsResponse":{"type":"object"},"AlterTopicPartitionStatus":{"properties":{"error":{"description":"The error if any.","type":"string"},"success":{"description":"Whether the operation was successful.","type":"boolean"},"topic_name":{"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\n - AUTHENTICATION_MECHANISM_SASL_SCRAM: SASL SCRAM\n - AUTHENTICATION_MECHANISM_SASL_OAUTHBEARER: SASL OAUTHBEARER (OAuth 2.0 / OpenID Connect)\n - AUTHENTICATION_MECHANISM_SASL_PLAIN: SASL PLAIN (username/password in plaintext)\n - 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\nsyntactic aspects of the request.","properties":{"field_violations":{"description":"Describes all violations in a client request.","items":{"$ref":"#/components/schemas/FieldViolation"},"type":"array"}},"title":"BadRequest","type":"object"},"BatchDeleteQuotaRequest":{"properties":{"deletions":{"items":{"$ref":"#/components/schemas/QuotaDeletion"},"type":"array"}},"type":"object"},"BatchDeleteQuotaResponse":{"properties":{"failed_entities":{"items":{"$ref":"#/components/schemas/FailedEntity"},"type":"array"},"successful_entities":{"items":{"$ref":"#/components/schemas/SuccessfulEntity"},"type":"array"}},"type":"object"},"BatchSetQuotaRequest":{"properties":{"settings":{"description":"A list of quota settings to apply. Each setting pairs an entity\nwith the specific values to be set for it.","items":{"$ref":"#/components/schemas/QuotaSetting"},"type":"array"}},"type":"object"},"BatchSetQuotaResponse":{"properties":{"failed_entities":{"items":{"$ref":"#/components/schemas/FailedEntity"},"type":"array"},"successful_entities":{"items":{"$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":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"ConfigAlterOperation":{"enum":["CONFIG_ALTER_OPERATION_SET","CONFIG_ALTER_OPERATION_DELETE","CONFIG_ALTER_OPERATION_APPEND","CONFIG_ALTER_OPERATION_SUBTRACT"],"type":"string"},"ConfigSource":{"enum":["CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG","CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG","CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG","CONFIG_SOURCE_STATIC_BROKER_CONFIG","CONFIG_SOURCE_DEFAULT_CONFIG","CONFIG_SOURCE_DYNAMIC_BROKER_LOGGER_CONFIG"],"type":"string"},"ConfigSynonym":{"properties":{"name":{"type":"string"},"source":{"$ref":"#/components/schemas/ConfigSource"},"value":{"nullable":true,"type":"string"}},"type":"object"},"ConfigType":{"enum":["CONFIG_TYPE_BOOLEAN","CONFIG_TYPE_STRING","CONFIG_TYPE_INT","CONFIG_TYPE_SHORT","CONFIG_TYPE_LONG","CONFIG_TYPE_DOUBLE","CONFIG_TYPE_LIST","CONFIG_TYPE_CLASS","CONFIG_TYPE_PASSWORD"],"type":"string"},"Configuration":{"properties":{"config_synonyms":{"description":"If no config value is set at the topic level, it will inherit the value\nset at the broker or cluster level. `name` is the corresponding config\nkey whose value is inherited. `source` indicates whether the inherited\nconfig is default, broker, etc.","items":{"$ref":"#/components/schemas/ConfigSynonym"},"type":"array"},"documentation":{"description":"Config documentation.","nullable":true,"type":"string"},"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"read_only":{"description":"Whether the config is read-only, or is dynamic and can be altered.","type":"boolean"},"sensitive":{"description":"Whether this is a sensitive config key and value.","type":"boolean"},"source":{"$ref":"#/components/schemas/ConfigSource"},"type":{"$ref":"#/components/schemas/ConfigType"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"ConnectCluster":{"properties":{"address":{"description":"The host address of the Kafka Connect cluster.","type":"string"},"info":{"$ref":"#/components/schemas/ConnectCluster.Info"},"name":{"description":"Unique name of connect cluster. For Redpanda Cloud, the value is `redpanda`.","type":"string"},"plugins":{"items":{"$ref":"#/components/schemas/ConnectorPlugin"},"type":"array"}},"type":"object"},"ConnectCluster.Info":{"properties":{"commit":{"description":"The git commit ID of the connect worker source code.","type":"string"},"kafka_cluster_id":{"description":"Cluster ID.","type":"string"},"version":{"description":"Connect worker version.","type":"string"}},"type":"object"},"Connector":{"properties":{"state":{"description":"State of the connector instance.","type":"string"},"trace":{"description":"String value of stack trace.","type":"string"},"worker_id":{"description":"ID of worker that the connector is assigned to.","type":"string"}},"type":"object"},"ConnectorError":{"properties":{"content":{"description":"Detailed description of the error.","type":"string"},"title":{"description":"Short description of the error.","type":"string"},"type":{"$ref":"#/components/schemas/ConnectorError.Type"}},"title":"ConnectorError is the error of a connector, this is holistic error\nabstraction, made parsing the error trace of connector or Task","type":"object"},"ConnectorError.Type":{"description":"Error level.","enum":["TYPE_ERROR","TYPE_WARNING"],"type":"string"},"ConnectorHolisticState":{"description":"State of a connector or one of its tasks, as described in the [Kafka Connect documentation](https://kafka.apache.org/documentation.html#connect_administration). Takes into account not just the state of the connector instance itself, but also the tasks within the connector.\n\n - CONNECTOR_HOLISTIC_STATE_PAUSED: The connector or task has been administratively paused.\n - CONNECTOR_HOLISTIC_STATE_RESTARTING: The connector or task is restarting.\n - CONNECTOR_HOLISTIC_STATE_DESTROYED: The connector is destroyed, regardless of any tasks.\n - CONNECTOR_HOLISTIC_STATE_STOPPED: The connector or task has been stopped.\n - CONNECTOR_HOLISTIC_STATE_UNASSIGNED: - The connector or task has not yet been assigned to a worker,\n- THe connector is running, but there are unassigned tasks.\n - CONNECTOR_HOLISTIC_STATE_HEALTHY: The connector is running, \u003e 0 tasks, all of them in running state.\n - CONNECTOR_HOLISTIC_STATE_UNHEALTHY: - The connector has failed,\n- The connector is running, but has no tasks,\n- Connector is running and has tasks, but all tasks have failed.\n - CONNECTOR_HOLISTIC_STATE_DEGRADED: The connector is running and has tasks, and at least one task, but not all, have failed.\n - CONNECTOR_HOLISTIC_STATE_UNKNOWN: The connector or task state could not be determined.","enum":["CONNECTOR_HOLISTIC_STATE_PAUSED","CONNECTOR_HOLISTIC_STATE_RESTARTING","CONNECTOR_HOLISTIC_STATE_DESTROYED","CONNECTOR_HOLISTIC_STATE_STOPPED","CONNECTOR_HOLISTIC_STATE_UNASSIGNED","CONNECTOR_HOLISTIC_STATE_HEALTHY","CONNECTOR_HOLISTIC_STATE_UNHEALTHY","CONNECTOR_HOLISTIC_STATE_DEGRADED","CONNECTOR_HOLISTIC_STATE_UNKNOWN"],"type":"string"},"ConnectorInfoStatus":{"properties":{"info":{"$ref":"#/components/schemas/ConnectorSpec"},"name":{"description":"Name of connector.","type":"string"},"status":{"$ref":"#/components/schemas/ConnectorStatus"}},"type":"object"},"ConnectorPlugin":{"properties":{"class":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"}},"type":"object"},"ConnectorSpec":{"description":"Connector specifications as defined in the Kafka Connect\nAPI. You may include this in the request body when creating a new connector.","properties":{"config":{"additionalProperties":{"type":"string"},"description":"Connector configuration properties.","type":"object"},"name":{"description":"Name of connector.","type":"string"},"tasks":{"items":{"$ref":"#/components/schemas/TaskInfo"},"readOnly":true,"type":"array"},"type":{"readOnly":true,"type":"string"}},"required":["name","config"],"type":"object"},"ConnectorStatus":{"properties":{"connector":{"$ref":"#/components/schemas/Connector"},"errors":{"description":"List of parsed connectors' and tasks' errors.","items":{"$ref":"#/components/schemas/ConnectorError"},"type":"array"},"holistic_state":{"$ref":"#/components/schemas/ConnectorHolisticState"},"name":{"description":"Name of connector.","type":"string"},"tasks":{"description":"Status of connector tasks. For more information, see the [https://docs.redpanda.com/current/deploy/deployment-option/cloud/managed-connectors/monitor-connectors/#connector-tasks](Monitor Connectors) documentation.","items":{"$ref":"#/components/schemas/TaskStatus"},"type":"array"},"type":{"description":"Type of connector (sink or source).","type":"string"}},"type":"object"},"CreateACLRequest":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.\nFor requests with resource_type CLUSTER, this will default to \"kafka-cluster\".","type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"required":["resource_type","resource_pattern_type","principal","host","operation","permission_type"],"type":"object"},"CreateACLResponse":{"type":"object"},"CreateConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"CreateKafkaConnectSecretBody":{"description":"CreateKafkaConnectSecretRequest is the request of CreateKafkaConnectSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"name":{"description":"Name of connector.","type":"string"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["name","secret_data"],"type":"object"},"CreateKafkaConnectSecretResponse":{"description":"CreateKafkaConnectSecretResponse is the response of CreateKafkaConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"CreatePipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"CreateRoleResponse":{"description":"CreateRoleResponse is the response for CreateRole.","properties":{"role":{"$ref":"#/components/schemas/Role"}},"type":"object"},"CreateSecretRequest":{"description":"CreateSecretRequest is the request of CreateSecret.","properties":{"id":{"description":"Secret identifier.","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"CreateSecretResponse":{"description":"CreateSecretResponse is the response of CreateSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"CreateTopicRequest.Topic":{"properties":{"configs":{"description":"An array of key-value config pairs for a topic.\nThese correspond to Kafka topic-level configs.","items":{"$ref":"#/components/schemas/Config"},"type":"array"},"name":{"description":"Name of topic.","type":"string"},"partition_count":{"description":"The number of partitions to give the topic. If specifying\npartitions manually (see `replica_assignments`), set to -1.\nOr, to use the cluster default partition count, set to null.","format":"int32","nullable":true,"type":"integer"},"replica_assignments":{"description":"Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both `replication_factor` and\n`partition_count` must be -1.","items":{"$ref":"#/components/schemas/ReplicaAssignment"},"type":"array"},"replication_factor":{"description":"The number of replicas every partition must have.\nIf specifying partitions manually (see `replica_assignments`), set to -1.\nOr, to use the cluster default replication factor, set to null.","format":"int32","nullable":true,"type":"integer"}},"type":"object"},"CreateTopicResponse":{"properties":{"partition_count":{"description":"The number of partitions created for the topic.\nThis field has a default value of -1, which may be returned if the broker\ndoes not support v5+ of this request which added support for returning\nthis information.","format":"int32","type":"integer"},"replication_factor":{"description":"The number of replicas per topic partition.\nThis field has a default of -1, which may be returned if the broker\ndoes not support v5+ of this request which added support for returning\nthis information.","format":"int32","type":"integer"},"topic_name":{"description":"Name of topic.","type":"string"}},"type":"object"},"CreateUserRequest.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"},"password":{"description":"Password.","type":"string"}},"type":"object"},"CreateUserResponse":{"properties":{"user":{"$ref":"#/components/schemas/CreateUserResponse.User"}},"type":"object"},"CreateUserResponse.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"title":"Name of newly-created user","type":"string"}},"type":"object"},"DeleteACLsRequest.Filter":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","nullable":true,"type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","nullable":true,"type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.","nullable":true,"type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"required":["resource_type","resource_pattern_type","operation","permission_type"],"type":"object"},"DeleteACLsResponse":{"properties":{"matching_acls":{"items":{"$ref":"#/components/schemas/MatchingACL"},"type":"array"}},"type":"object"},"DeleteKafkaConnectSecretResponse":{"description":"DeleteKafkaConnectSecretResponse is the response of DeleteKafkaConnectSecret.","type":"object"},"DeleteMountTaskResponse":{"type":"object"},"DeletePipelineResponse":{"type":"object"},"DeleteQuotaRequest":{"properties":{"entity":{"$ref":"#/components/schemas/RequestQuotaEntity"},"value_type":{"$ref":"#/components/schemas/ValueType"}},"type":"object"},"DeleteQuotaResponse":{"type":"object"},"DeleteRoleResponse":{"description":"DeleteRoleResponse is the response for DeleteRole.","type":"object"},"DeleteSecretResponse":{"description":"DeleteSecretResponse is the response of DeleteSecret.","type":"object"},"DeleteTopicResponse":{"type":"object"},"DeleteTransformResponse":{"type":"object"},"DeleteUserResponse":{"type":"object"},"DeployTransformRequest":{"description":"Metadata required to deploy a new Wasm\ntransform in a Redpanda cluster.","properties":{"environment_variables":{"description":"The environment variables you want to apply to your transform's environment","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":"array"},"input_topic_name":{"description":"The input topic to apply the transform to.","example":"orders","type":"string"},"name":{"description":"Name of the transform.","example":"redact-payment-details-in-orders","type":"string"},"output_topic_names":{"description":"Output topic to write the transform results to.","example":"orders-redacted","items":{"type":"string"},"type":"array"}},"required":["name","input_topic_name","output_topic_names"],"type":"object"},"Entity":{"properties":{"entity_name":{"type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"}},"type":"object"},"EntityType":{"description":"The type of entity that the quota applies to.\n\n - ENTITY_TYPE_USER: Not supported in Redpanda\n - ENTITY_TYPE_IP: Not supported in Redpanda","enum":["ENTITY_TYPE_CLIENT_ID","ENTITY_TYPE_CLIENT_ID_PREFIX","ENTITY_TYPE_USER","ENTITY_TYPE_IP"],"type":"string"},"EnvironmentVariable":{"properties":{"key":{"description":"The key of your environment variable.","example":"LOG_LEVEL","type":"string"},"value":{"description":"The value of your environment variable.","example":"DEBUG","type":"string"}},"required":["key","value"],"type":"object"},"ErrorInfo":{"description":"Describes the cause of the error with structured details.\n\nExample of an error when contacting the \"pubsub.googleapis.com\" API when it\nis not enabled:\n\n { \"reason\": \"API_DISABLED\"\n \"domain\": \"googleapis.com\"\n \"metadata\": {\n \"resource\": \"projects/123\",\n \"service\": \"pubsub.googleapis.com\"\n }\n }\n\nThis response indicates that the pubsub.googleapis.com API is not enabled.\n\nExample of an error that is returned when attempting to create a Spanner\ninstance in a region that is out of stock:\n\n { \"reason\": \"STOCKOUT\"\n \"domain\": \"spanner.googleapis.com\",\n \"metadata\": {\n \"availableRegions\": \"us-central1,us-east2\"\n }\n }","properties":{"domain":{"description":"The logical grouping to which the \"reason\" belongs. The error domain\nis typically the registered service name of the tool or product that\ngenerates the error. Example: \"pubsub.googleapis.com\". If the error is\ngenerated by some common infrastructure, the error domain must be a\nglobally unique value that identifies the infrastructure. For Google API\ninfrastructure, the error domain is \"googleapis.com\".","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Additional structured details about this error.\n\nKeys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should\nideally be lowerCamelCase. Also, they must be limited to 64 characters in\nlength. When identifying the current value of an exceeded limit, the units\nshould be contained in the key, not the value. For example, rather than\n`{\"instanceLimit\": \"100/request\"}`, should be returned as,\n`{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of\ninstances that can be created in a single (batch) request.","type":"object"},"reason":{"description":"The reason of the error. This is a constant value that identifies the\nproximate cause of the error. Error reasons are unique within a particular\ndomain of errors. This should be at most 63 characters and match a\nregular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents\nUPPER_SNAKE_CASE.","type":"string"}},"title":"ErrorInfo","type":"object"},"FailedEntity":{"properties":{"entity_name":{"type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"},"error_code":{"format":"int32","type":"integer"},"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":{"description":{"description":"A description of why the request element is bad.","type":"string"},"field":{"description":"A path that leads to a field in the request body. The value will be a\nsequence of dot-separated identifiers that identify a protocol buffer\nfield.\n\nConsider the following:\n\n message CreateContactRequest {\n message EmailAddress {\n enum Type {\n TYPE_UNSPECIFIED = 0;\n HOME = 1;\n WORK = 2;\n }\n\n optional string email = 1;\n repeated EmailType type = 2;\n }\n\n string full_name = 1;\n repeated EmailAddress email_addresses = 2;\n }\n\nIn this example, in proto `field` could take one of the following values:\n\n* `full_name` for a violation in the `full_name` value\n* `email_addresses[1].email` for a violation in the `email` field of the\n first `email_addresses` message\n* `email_addresses[3].type[2]` for a violation in the second `type`\n value in the third `email_addresses` message.\n\nIn JSON, the same values are represented as:\n\n* `fullName` for a violation in the `fullName` value\n* `emailAddresses[1].email` for a violation in the `email` field of the\n first `emailAddresses` message\n* `emailAddresses[3].type[2]` for a violation in the second `type`\n value in the third `emailAddresses` message.","type":"string"},"localized_message":{"$ref":"#/components/schemas/LocalizedMessage"},"reason":{"description":"The reason of the field-level error. This is a constant value that\nidentifies the proximate cause of the field-level error. It should\nuniquely identify the type of the FieldViolation within the scope of the\ngoogle.rpc.ErrorInfo.domain. This should be at most 63\ncharacters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`,\nwhich represents UPPER_SNAKE_CASE.","type":"string"}},"type":"object"},"GetConnectClusterResponse":{"properties":{"cluster":{"$ref":"#/components/schemas/ConnectCluster"}},"type":"object"},"GetConnectorConfigResponse":{"properties":{"config":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"GetConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"GetConnectorStatusResponse":{"properties":{"status":{"$ref":"#/components/schemas/ConnectorStatus"}},"type":"object"},"GetKafkaConnectSecretResponse":{"description":"GetKafkaConnectSecretResponse is the response of GetKafkaConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"GetMountTaskResponse":{"properties":{"task":{"$ref":"#/components/schemas/MountTask"}},"type":"object"},"GetPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"GetPipelineServiceConfigSchemaResponse":{"properties":{"config_schema":{"description":"JSON schema of the configuration components that are allowed for Connect pipelines.","type":"string"}},"type":"object"},"GetPipelinesBySecretsResponse":{"properties":{"pipelines_for_secret":{"items":{"$ref":"#/components/schemas/PipelinesForSecret"},"type":"array"}},"type":"object"},"GetPipelinesForSecretResponse":{"properties":{"pipelines_for_secret":{"$ref":"#/components/schemas/PipelinesForSecret"}},"type":"object"},"GetRoleResponse":{"description":"GetRoleResponse is the response to GetRole.","properties":{"members":{"description":"Members assigned to the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"role":{"$ref":"#/components/schemas/Role"}},"type":"object"},"GetSecretResponse":{"description":"GetSecretResponse is the response of GetSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"GetTopicConfigurationsResponse":{"properties":{"configurations":{"items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"GetTransformResponse":{"properties":{"transform":{"$ref":"#/components/schemas/TransformMetadata"}},"type":"object"},"Help":{"description":"Provides links to documentation or for performing an out of band action.\n\nFor example, if a quota check failed with an error indicating the calling\nproject hasn't enabled the accessed service, this can contain a URL pointing\ndirectly to the right place in the developer console to flip the bit.","properties":{"links":{"description":"URL(s) pointing to additional information on handling the current error.","items":{"$ref":"#/components/schemas/Link"},"type":"array"}},"title":"Help","type":"object"},"InFlightRequests":{"properties":{"has_more_requests":{"description":"Whether there are more in-flight requests than those in\n`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\nin requests on this connection. It can be useful for understanding which\nprotocol versions a client supports or has negotiated with the broker.\nOnly APIs that were actually used (i.e. at least one request was seen)\nare included.\n\nExample:\n { 0: 11, 1: 13 }\nmeans that for API key 0 (Produce), version 11 was the highest seen,\nand for API key 1 (Fetch), version 13 was the highest seen.\n\nReference:\n- https://kafka.apache.org/0101/protocol.html#protocol_api_keys\n- 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.\nThis is typically a configurable property (client.id) set by the\napplication when creating a producer or consumer, and is often used for\nmetrics, quotas, and debugging.","type":"string"},"client_software_name":{"description":"Name of the client library, reported automatically in ApiVersions v3+\nrequests. This is set by the client implementation and is not typically\nconfigurable by applications.","type":"string"},"client_software_version":{"description":"Version of the client library, reported automatically in ApiVersions v3+\nrequests. Like client_software_name, this is set by the\nclient and not usually configurable by applications.","type":"string"},"close_time":{"description":"When the connection was closed. This field is set only when the\nconnection state is \"closed\".","format":"date-time","type":"string"},"group_id":{"description":"Most recent group ID seen in requests sent over this connection. This\ntypically refers to a consumer group, but the Kafka group protocol is\nmore general and may also be used by other types of clients that\ncoordinate membership and assignments through the broker.","type":"string"},"group_instance_id":{"description":"Most recent group instance ID seen in requests sent over this connection.\nThis is used when static membership is enabled, allowing a specific\nclient 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.\nThis is the unique identifier assigned by the broker to a particular\nmember 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.\nA listener is a named broker endpoint (for example, \"internal\",\n\"external\", or \"sasl_tls\"). Each listener defines its network address and\nenforces 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.\n - KAFKA_CONNECTION_STATE_ABORTING: The connection is aborting ongoing requests and about to be closed.\nThis is a transient state between open and closed that should rarely be\nobservable under normal circumstances.\n - 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":{"description":{"description":"Describes what the link offers.","type":"string"},"url":{"description":"The URL of the link.","type":"string"}},"type":"object"},"LintHint":{"description":"LintHint is a generic linting hint.","properties":{"column":{"description":"Column number of the lint.","format":"int32","type":"integer"},"hint":{"description":"The hint message.","type":"string"},"line":{"description":"Line number of the lint.","format":"int32","type":"integer"},"lint_type":{"description":"Optional lint type or enum.","type":"string"}},"type":"object"},"LintPipelineConfigRequest":{"properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format.\nSee the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation\nfor more details.","type":"string"}},"required":["config_yaml"],"type":"object"},"LintPipelineConfigResponse":{"properties":{"lint_hints":{"description":"A list of linting issues.","items":{"$ref":"#/components/schemas/LintHint"},"type":"array"}},"type":"object"},"ListACLsRequest.Filter":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","nullable":true,"type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","nullable":true,"type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.","nullable":true,"type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"type":"object"},"ListACLsResponse":{"properties":{"resources":{"items":{"$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":{"items":{"$ref":"#/components/schemas/ConnectCluster"},"type":"array"}},"type":"object"},"ListConnectorTopicsResponse":{"properties":{"topics":{"description":"Topic names.","items":{"type":"string"},"type":"array"}},"type":"object"},"ListConnectorsResponse":{"properties":{"connectors":{"description":"List of connectors, where the parent key is the connector name.","items":{"$ref":"#/components/schemas/ConnectorInfoStatus"},"type":"array"},"next_page_token":{"description":"Page Token to fetch the next page. The value can be used as page_token in the next call to this endpoint.","type":"string"}},"type":"object"},"ListKafkaConnectSecretsResponse":{"description":"ListKafkaConnectSecretsResponse is the response of ListKafkaConnectSecrets.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"secrets":{"description":"Secrets retrieved.","items":{"$ref":"#/components/schemas/Secret"},"type":"array"}},"type":"object"},"ListKafkaConnectionsResponse":{"description":"ListKafkaConnectionsResponse is the response from the ListKafkaConnections\nRPC.","properties":{"connections":{"description":"The list of connections matching the request.\nNote that in addition to open connections, some recently-closed\nconnections may also be included here. If you don't want to include\nclosed connections, set the filter in the request to `state =\nKAFKA_CONNECTION_STATE_OPEN`.","items":{"$ref":"#/components/schemas/KafkaConnection"},"type":"array"},"total_size":{"format":"uint64","title":"Total number of connections matching the request.\nThis may be greater than `len(connections)` if some connections were\nomitted from the response due to the specified (or default) `page_size`.\nExample:\n request.page_size = 10\n response.connections = [\u003c10 items\u003e]\n response.total_size = 13","type":"string"}},"type":"object"},"ListMountTasksResponse":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/MountTask"},"type":"array"}},"type":"object"},"ListMountableTopicsResponse":{"properties":{"topics":{"items":{"$ref":"#/components/schemas/TopicLocation"},"type":"array"}},"type":"object"},"ListPipelinesRequest.Filter":{"properties":{"name_contains":{"description":"Any pipelines that partially match this name will be returned.","type":"string"},"secret_id":{"type":"string"},"tags[string]":{"additionalProperties":{"type":"string"},"description":"Pipelines that match all the provided tags will be returned.","type":"object"}},"type":"object"},"ListPipelinesResponse":{"properties":{"next_page_token":{"type":"string"},"pipelines":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"}},"type":"object"},"ListQuotasRequest.Filter":{"properties":{"entity_name":{"description":"Filter by entity name. If unspecified will return all entities for specified entity type.","type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"},"match_default":{"description":"If true, the entity_name will match the default entity (e.g., default client-id).","type":"boolean"}},"type":"object"},"ListQuotasResponse":{"properties":{"page_token":{"description":"Token to retrieve the next page of results. If empty, there are no more results.","type":"string"},"quotas":{"items":{"$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":{"name_contains":{"description":"Filter results to only members with names which contain the string.","type":"string"}},"type":"object"},"ListRoleMembersResponse":{"description":"ListRoleMembersResponse is the response for ListRoleMembers.","properties":{"members":{"description":"Members assigned to the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"role_name":{"description":"The role name.","type":"string"}},"type":"object"},"ListRolesRequest.Filter":{"description":"Filter options.","properties":{"name_contains":{"description":"Filter results to only roles with names which contain the string.","type":"string"},"name_prefix":{"description":"Filter results only roles named with the prefix.","type":"string"},"principal":{"description":"Return only roles assigned to this principal.","type":"string"}},"type":"object"},"ListRolesResponse":{"description":"ListRolesResponse is the response for ListRoles.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"roles":{"description":"The roles in the system.","items":{"$ref":"#/components/schemas/Role"},"type":"array"}},"type":"object"},"ListSecretScopesResponse":{"description":"ListSecretScopesResponse is the response of ListSecretScopes.","properties":{"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"type":"array"}},"type":"object"},"ListSecretsFilter":{"description":"ListSecretsFilter are the filter options for listing secrets.","properties":{"labels[string][string]":{"additionalProperties":{"type":"string"},"description":"The secret labels to search for.","type":"object"},"name_contains":{"description":"Substring match on secret name. Case-sensitive.","type":"string"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes to search for","type":"array"}},"type":"object"},"ListSecretsResponse":{"description":"ListSecretsResponse is the response of ListSecrets.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"secrets":{"description":"Secrets retrieved.","items":{"$ref":"#/components/schemas/Secret"},"type":"array"}},"type":"object"},"ListTopicsRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on topic name. Case-sensitive.","type":"string"}},"type":"object"},"ListTopicsResponse":{"properties":{"next_page_token":{"type":"string"},"topics":{"items":{"$ref":"#/components/schemas/ListTopicsResponse.Topic"},"type":"array"}},"type":"object"},"ListTopicsResponse.Topic":{"properties":{"internal":{"description":"Whether topic is internal only.","type":"boolean"},"name":{"description":"Topic name.","type":"string"},"partition_count":{"description":"Topic partition count.","format":"int32","type":"integer"},"replication_factor":{"description":"Topic replication factor.","format":"int32","type":"integer"}},"type":"object"},"ListTransformsRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on transform name. Case-sensitive.","type":"string"}},"type":"object"},"ListTransformsResponse":{"properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"transforms":{"items":{"$ref":"#/components/schemas/TransformMetadata"},"type":"array"}},"type":"object"},"ListUsersRequest.Filter":{"properties":{"name":{"description":"Username.","type":"string"},"name_contains":{"description":"Substring match on username. Case-sensitive.","type":"string"}},"type":"object"},"ListUsersResponse":{"properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"users":{"items":{"$ref":"#/components/schemas/ListUsersResponse.User"},"type":"array"}},"type":"object"},"ListUsersResponse.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"}},"type":"object"},"LocalizedMessage":{"description":"Provides a localized error message that is safe to return to the user\nwhich can be attached to an RPC error.","properties":{"locale":{"title":"The locale used following the specification defined at\nhttps://www.rfc-editor.org/rfc/bcp/bcp47.txt.\nExamples are: \"en-US\", \"fr-CH\", \"es-MX\"","type":"string"},"message":{"description":"The localized error message in the above locale.","type":"string"}},"type":"object"},"MatchingACL":{"properties":{"error":{"$ref":"#/components/schemas/rpc.Status"},"host":{"description":"The host address to use for this ACL.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies.","type":"string"},"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"},"MountTask":{"properties":{"id":{"description":"Unique identifier for this mount task.","format":"int32","type":"integer"},"state":{"$ref":"#/components/schemas/MountTask.State"},"topics":{"description":"List of topics that are being mounted or unmounted.","items":{"$ref":"#/components/schemas/MountTask.Topic"},"type":"array"},"type":{"$ref":"#/components/schemas/MountTask.Type"}},"type":"object"},"MountTask.State":{"description":" - STATE_PLANNED: Planned: The mount task has been created and is awaiting further actions.\n - STATE_PREPARING: Preparing: The mount task is gathering resources and preparing for execution.\n - STATE_PREPARED: Prepared: All preparations are complete, and the mount task is ready to be executed.\n - STATE_EXECUTING: Executing: The mount task is actively transferring or transforming data.\n - STATE_EXECUTED: Executed: The core mount task actions are complete, but the mount task has not yet cut over or finalized.\n - STATE_CUT_OVER: Cut Over: The mount task has reached a critical point where ownership is transferred or final adjustments are made.\n - STATE_FINISHED: Finished: The mount task has been successfully completed, and no further actions are required.\n - STATE_CANCELING: Canceling: The mount task is in the process of being canceled, and rollback or cleanup actions may be in progress.\n - STATE_CANCELLED: Cancelled: The mount task has been fully canceled, and no further actions will be taken.","enum":["STATE_PLANNED","STATE_PREPARING","STATE_PREPARED","STATE_EXECUTING","STATE_EXECUTED","STATE_CUT_OVER","STATE_FINISHED","STATE_CANCELING","STATE_CANCELLED"],"type":"string"},"MountTask.Topic":{"properties":{"source_topic_reference":{"description":"The topic reference in the object storage bucket.\nThis field is only set for tasks of type MOUNT.","type":"string"},"topic_reference":{"description":"The topic reference within the current cluster, which may be either a simple topic name or a full reference\nin the form: cluster-uuid/topic-name/revision.","type":"string"}},"type":"object"},"MountTask.Type":{"description":" - TYPE_MOUNT: Mount represents the process of making topics available in a cluster by loading them from object storage.\n - TYPE_UNMOUNT: Unmount represents the process of offloading topics back to object storage.","enum":["TYPE_MOUNT","TYPE_UNMOUNT"],"type":"string"},"MountTopicsResponse":{"properties":{"mount_task_id":{"format":"int32","title":"ID of mount","type":"integer"}},"type":"object"},"Options":{"properties":{"include_tasks":{"description":"Restart connector's tasks.","type":"boolean"},"only_failed":{"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","PARTITION_STATUS_INACTIVE","PARTITION_STATUS_ERRORED","PARTITION_STATUS_UNKNOWN"],"type":"string"},"PartitionTransformStatus":{"properties":{"broker_id":{"format":"int32","type":"integer"},"lag":{"format":"int32","type":"integer"},"partition_id":{"format":"int32","type":"integer"},"status":{"$ref":"#/components/schemas/PartitionStatus"}},"type":"object"},"PermissionType":{"description":"Whether the operation should be allowed or denied.","enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"},"Pipeline":{"description":"Defines the pipeline resource.","properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","title":"The pipeline configuration in YAML.\nSee https://docs.redpanda.com/redpanda-connect/configuration/about/","type":"string"},"description":{"description":"Optional pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"id":{"description":"Pipeline ID.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"},"state":{"$ref":"#/components/schemas/Pipeline.State"},"status":{"$ref":"#/components/schemas/Pipeline.Status"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags are key-value pairs that can be assigned to a pipeline resource.\nThey help organize pipelines and enable filtering when listing them.","type":"object"},"url":{"description":"URL to connect to the pipeline, for example, via http_server.\nMay be empty if no http_server is used.","type":"string"}},"required":["id","display_name","config_yaml"],"type":"object"},"Pipeline.State":{"description":"State of the pipeline.\n\n - STATE_STARTING: The pipeline is starting.\n - STATE_RUNNING: The pipeline is running.\n - STATE_STOPPING: The pipeline is in the process of stopping.\n - STATE_STOPPED: The pipeline is stopped and in paused state.\n - STATE_ERROR: The pipeline encountered an error. See [Error Handling](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/error_handling/) for further guidance.\n - STATE_COMPLETED: The pipeline has completed the job successfully.","enum":["STATE_STARTING","STATE_RUNNING","STATE_STOPPING","STATE_STOPPED","STATE_ERROR","STATE_COMPLETED"],"type":"string"},"Pipeline.Status":{"description":"Pipeline status may contain an error message.","properties":{"error":{"type":"string"}},"type":"object"},"PipelineCreate":{"description":"PipelineCreate contains the details for the pipeline creation request.","properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","type":"string"},"description":{"description":"Pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"},"tags":{"additionalProperties":{"type":"string"},"description":"Optional list of tags to attach to a pipeline.","type":"object"}},"required":["display_name","config_yaml"],"type":"object"},"PipelineUpdate":{"properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","type":"string"},"description":{"description":"Pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags to add, update or delete.\nIf a tag's value is empty, the server interprets that as a deletion.","type":"object"}},"required":["display_name","config_yaml"],"type":"object"},"PipelinesForSecret":{"properties":{"pipelines":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"},"secret_id":{"type":"string"}},"type":"object"},"Policy":{"properties":{"host":{"description":"The host address for this ACL.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies.","type":"string"}},"type":"object"},"Quota.Value":{"properties":{"value":{"format":"double","type":"number"},"value_type":{"$ref":"#/components/schemas/ValueType"}},"type":"object"},"QuotaDeletion":{"properties":{"entity":{"$ref":"#/components/schemas/RequestQuotaEntity"},"value_types":{"items":{"$ref":"#/components/schemas/ValueType"},"title":"Value that should be deleted for the specified entity","type":"array"}},"type":"object"},"QuotaEntry":{"description":"QuotaEntry represents the quota for a specific entity type.","properties":{"entity":{"$ref":"#/components/schemas/Entity"},"values":{"items":{"$ref":"#/components/schemas/Quota.Value"},"type":"array"}},"type":"object"},"QuotaFailure":{"description":"Describes how a quota check failed.\n\nFor example if a daily limit was exceeded for the calling project,\na service could respond with a QuotaFailure detail containing the project\nid and the description of the quota limit that was exceeded. If the\ncalling project hasn't enabled the service in the developer console, then\na service could respond with the project id and set `service_disabled`\nto true.\n\nAlso see RetryInfo and Help types for other details about handling a\nquota failure.","properties":{"violations":{"description":"Describes all quota violations.","items":{"$ref":"#/components/schemas/QuotaFailure.Violation"},"type":"array"}},"title":"QuotaFailure","type":"object"},"QuotaFailure.Violation":{"description":"A message type used to describe a single quota violation. For example, a\ndaily quota or a custom quota that was exceeded.","properties":{"api_service":{"description":"The API Service from which the `QuotaFailure.Violation` orginates. In\nsome cases, Quota issues originate from an API Service other than the one\nthat was called. In other words, a dependency of the called API Service\ncould be the cause of the `QuotaFailure`, and this field would have the\ndependency API service name.\n\nFor example, if the called API is Kubernetes Engine API\n(container.googleapis.com), and a quota violation occurs in the\nKubernetes Engine API itself, this field would be\n\"container.googleapis.com\". On the other hand, if the quota violation\noccurs when the Kubernetes Engine API creates VMs in the Compute Engine\nAPI (compute.googleapis.com), this field would be\n\"compute.googleapis.com\".","type":"string"},"description":{"description":"A description of how the quota check failed. Clients can use this\ndescription to find more about the quota configuration in the service's\npublic documentation, or find the relevant quota limit to adjust through\ndeveloper console.\n\nFor example: \"Service disabled\" or \"Daily Limit for read operations\nexceeded\".","type":"string"},"future_quota_value":{"description":"The new quota value being rolled out at the time of the violation. At the\ncompletion of the rollout, this value will be enforced in place of\nquota_value. If no rollout is in progress at the time of the violation,\nthis field is not set.\n\nFor example, if at the time of the violation a rollout is in progress\nchanging the number of CPUs quota from 10 to 20, 20 would be the value of\nthis field.","format":"int64","nullable":true,"type":"string"},"quota_dimensions":{"additionalProperties":{"type":"string"},"description":"The dimensions of the violated quota. Every non-global quota is enforced\non a set of dimensions. While quota metric defines what to count, the\ndimensions specify for what aspects the counter should be increased.\n\nFor example, the quota \"CPUs per region per VM family\" enforces a limit\non the metric \"compute.googleapis.com/cpus_per_vm_family\" on dimensions\n\"region\" and \"vm_family\". And if the violation occurred in region\n\"us-central1\" and for VM family \"n1\", the quota_dimensions would be,\n\n{\n \"region\": \"us-central1\",\n \"vm_family\": \"n1\",\n}\n\nWhen a quota is enforced globally, the quota_dimensions would always be\nempty.","type":"object"},"quota_id":{"description":"The id of the violated quota. Also know as \"limit name\", this is the\nunique identifier of a quota in the context of an API service.\n\nFor example, \"CPUS-PER-VM-FAMILY-per-project-region\".","type":"string"},"quota_metric":{"description":"The metric of the violated quota. A quota metric is a named counter to\nmeasure usage, such as API requests or CPUs. When an activity occurs in a\nservice, such as Virtual Machine allocation, one or more quota metrics\nmay be affected.\n\nFor example, \"compute.googleapis.com/cpus_per_vm_family\",\n\"storage.googleapis.com/internet_egress_bandwidth\".","type":"string"},"quota_value":{"description":"The enforced quota value at the time of the `QuotaFailure`.\n\nFor example, if the enforced quota value at the time of the\n`QuotaFailure` on the number of CPUs is \"10\", then the value of this\nfield would reflect this quantity.","format":"int64","type":"string"},"subject":{"description":"The subject on which the quota check failed.\nFor example, \"clientip:\u003cip address of client\u003e\" or \"project:\u003cGoogle\ndeveloper project id\u003e\".","type":"string"}},"type":"object"},"QuotaSetting":{"properties":{"entity":{"$ref":"#/components/schemas/RequestQuotaEntity"},"values":{"items":{"$ref":"#/components/schemas/RequestQuotaValue"},"type":"array"}},"type":"object"},"ReplicaAssignment":{"properties":{"partition_id":{"description":"A partition to create.","format":"int32","type":"integer"},"replica_ids":{"description":"The broker IDs the partition replicas are assigned to.","items":{"format":"int32","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)\nhttps://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":{"description":"Entity name is the name of the entity type specified.\nIf left empty, the entity will be treated as a default entity (e.g., all clients).\nIf entity_type is ENTITY_TYPE_CLIENT_ID_PREFIX, this field must be set.","type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"}},"type":"object"},"RequestQuotaValue":{"properties":{"value":{"format":"double","type":"number"},"value_type":{"$ref":"#/components/schemas/ValueType"}},"type":"object"},"RequestStatistics":{"properties":{"fetch_bytes":{"description":"Sum of bytes fetched.","format":"uint64","type":"string"},"produce_batch_count":{"format":"uint64","title":"Number of produced batches.\nAverage 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"}},"type":"object"},"ResourcePatternType":{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"},"ResourceType":{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER","RESOURCE_TYPE_REGISTRY","RESOURCE_TYPE_SUBJECT"],"type":"string"},"Resources":{"properties":{"cpu_shares":{"description":"`cpu_shares` is a string specifying the amount of CPU to allocate for the\npipeline.\n\nThis follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable\nunits include:\n- Decimal SI units: \"m\" (e.g., \"500m\" for 500 millicores, \"2\" for 2 cores)\nCPU shares can be specified in millicores (1 core = 1000 millicores).\nIf you don't specify a unit, the value is interpreted as the number of cores.","type":"string"},"memory_shares":{"description":"`memory_shares` is a string specifying the amount of memory to allocate for\nthe pipeline.\n\nThis follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable units\ninclude:\n- Decimal SI units: \"K\", \"M\", \"G\", \"T\", \"P\", \"E\" (e.g., \"128M\" for 128\n megabytes)\n- Binary SI units: \"Ki\", \"Mi\", \"Gi\", \"Ti\", \"Pi\", \"Ei\" (e.g., \"512Mi\" for\n512 mebibytes) If you don't specify a unit, the value is interpreted as\nbytes.","type":"string"}},"required":["memory_shares","cpu_shares"],"type":"object"},"Role":{"description":"Role defines a role in the system.","properties":{"name":{"description":"The name of the role.","type":"string"}},"type":"object"},"RoleMembership":{"description":"RoleMembership is the role membership.","properties":{"principal":{"description":"The name of the principal assigned to the role.","type":"string"}},"type":"object"},"SASLMechanism":{"description":"SASL mechanism to use for authentication.","enum":["SASL_MECHANISM_SCRAM_SHA_256","SASL_MECHANISM_SCRAM_SHA_512"],"type":"string"},"Scope":{"description":"Defines the scope of a secret.","enum":["SCOPE_REDPANDA_CONNECT","SCOPE_REDPANDA_CLUSTER","SCOPE_MCP_SERVER","SCOPE_AI_AGENT"],"type":"string"},"Secret":{"description":"Defines the secret resource.","properties":{"id":{"description":"Secret identifier.","readOnly":true,"type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"}},"type":"object"},"ServiceAccount":{"properties":{"client_id":{"type":"string"},"client_secret":{"type":"string"}},"type":"object"},"SetConfiguration":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"SetPartitionsToTopicsRequest":{"properties":{"partition_count":{"description":"The number of partitions to set for the topics.","format":"int32","type":"integer"},"topic_names":{"description":"The topic names.","items":{"type":"string"},"type":"array"},"validate_only":{"description":"Validate the request only, do not execute it.","type":"boolean"}},"type":"object"},"SetPartitionsToTopicsResponse":{"properties":{"statuses":{"description":"The status of the operation for each topic.","items":{"$ref":"#/components/schemas/AlterTopicPartitionStatus"},"type":"array"}},"type":"object"},"SetQuotaRequest":{"properties":{"entity":{"$ref":"#/components/schemas/RequestQuotaEntity"},"value":{"$ref":"#/components/schemas/RequestQuotaValue"}},"type":"object"},"SetQuotaResponse":{"type":"object"},"SetTopicConfigurationsResponse":{"properties":{"configurations":{"description":"Topic's complete set of configurations after this update.","items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"SetTopicPartitionsBody":{"properties":{"partition_count":{"description":"The number of partitions to set for the topic.","format":"int32","type":"integer"},"validate_only":{"description":"Validate the request only, do not execute it.","type":"boolean"}},"type":"object"},"SetTopicPartitionsResponse":{"type":"object"},"Source":{"properties":{"ip_address":{"type":"string"},"port":{"format":"int64","type":"integer"}},"type":"object"},"StartPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"StopPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"SuccessfulEntity":{"properties":{"entity_name":{"type":"string"},"entity_type":{"$ref":"#/components/schemas/EntityType"}},"type":"object"},"TLSInfo":{"properties":{"enabled":{"title":"Whether TLS is in use","type":"boolean"}},"type":"object"},"TaskInfo":{"properties":{"connector":{"description":"Name of connector.","type":"string"},"task":{"description":"The connector task ID.","format":"int32","type":"integer"}},"type":"object"},"TaskStatus":{"properties":{"id":{"description":"The connector task ID.","format":"int32","type":"integer"},"state":{"description":"State of connector task.","type":"string"},"trace":{"description":"String value of stack trace.","type":"string"},"worker_id":{"description":"ID of worker that the task is assigned to.","type":"string"}},"type":"object"},"TopicLocation":{"properties":{"topic_location":{"description":"Full reference for the unmounted topic in this format: `topic-name/cluster-uuid/revision`.\nUse this as unique identifier for mounting a topic if there are multiple topics available\nwith the same name.","type":"string"},"topic_name":{"description":"Topic name.","type":"string"}},"type":"object"},"TopicMount":{"description":"TopicMount defines the migration of a topic from the cloud storage into this cluster,\nso that it becomes available via the Kafka API.","properties":{"alias":{"description":"Alias may be provided to mount the topic under a different name. Leave\nblank to re-use the source topic name. The alias does not persist if you\nunmount the topic again.","type":"string"},"source_topic_reference":{"description":"The topic name or full reference of the topic to mount. The full reference\nmust be used in case the same topic exists more than once. This may be the case if\nthe same topic has been unmounted multiple times. List all mountable topics to\nfind the full reference (contains topic name, cluster uuid and revision).","type":"string"}},"required":["source_topic_reference"],"type":"object"},"TransformMetadata":{"properties":{"environment_variables":{"description":"The environment variables you want to apply to your transform's environment","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":"array"},"input_topic_name":{"description":"Input topic to apply the transform to.","type":"string"},"name":{"description":"Name of transform.","type":"string"},"output_topic_names":{"description":"Output topics to write the transform results to.","items":{"type":"string"},"type":"array"},"statuses":{"items":{"$ref":"#/components/schemas/PartitionTransformStatus"},"type":"array"}},"type":"object"},"UnmountTopicsResponse":{"properties":{"mount_task_id":{"format":"int32","title":"ID of unmount","type":"integer"}},"type":"object"},"UpdateConfiguration":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"operation":{"$ref":"#/components/schemas/ConfigAlterOperation"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"UpdateKafkaConnectSecretBody":{"description":"UpdateKafkaConnectSecretRequest is the request of UpdateKafkaConnectSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"UpdateKafkaConnectSecretResponse":{"description":"UpdateKafkaConnectSecretResponse is the response of UpdateKafkaConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"UpdateMountTaskBody":{"properties":{"action":{"$ref":"#/components/schemas/Action"}},"required":["action"],"type":"object"},"UpdateMountTaskResponse":{"type":"object"},"UpdatePipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"UpdateRoleMembershipBody":{"description":"UpdateRoleMembershipRequest is the request to UpdateRoleMembership.","properties":{"add":{"description":"Members to assign to the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"create":{"description":"Create the role if it doesn't already exist.\nIf the role is created in this way, the “add” list will be respected, but the “remove” list will be ignored.","type":"boolean"},"remove":{"description":"Members to remove from the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"}},"type":"object"},"UpdateRoleMembershipResponse":{"description":"UpdateRoleMembershipResponse is the response for UpdateRoleMembership.","properties":{"added":{"description":"Members assigned to the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"removed":{"description":"Members removed from the role.","items":{"$ref":"#/components/schemas/RoleMembership"},"type":"array"},"role_name":{"description":"The role name.","type":"string"}},"type":"object"},"UpdateSecretBody":{"description":"UpdateSecretRequest is the request of UpdateSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"type":"object"},"UpdateSecretResponse":{"description":"UpdateSecretResponse is the response of UpdateSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"UpdateTopicConfigurationsResponse":{"properties":{"configurations":{"description":"Topic's complete set of configurations after applying this partial patch.","items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"UpdateUserRequest.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"},"password":{"description":"Password.","type":"string"}},"type":"object"},"UpdateUserResponse":{"properties":{"user":{"$ref":"#/components/schemas/UpdateUserResponse.User"}},"type":"object"},"UpdateUserResponse.User":{"description":"Updated user's name and SASL mechanism.","properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"type":"string"}},"type":"object"},"UpsertConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"ValueType":{"description":"The type of value that the quota represents.\n\n - VALUE_TYPE_PRODUCER_BYTE_RATE: The rate at which producers can send data.\n - VALUE_TYPE_CONSUMER_BYTE_RATE: The rate at which consumers can fetch data.\n - VALUE_TYPE_CONTROLLER_MUTATION_RATE: The rate at which topic mutation requests can be made.\n - VALUE_TYPE_REQUEST_PERCENTAGE: The percentage of the total throughput that can be used by the entity.\n\nNot supported in Redpanda","enum":["VALUE_TYPE_PRODUCER_BYTE_RATE","VALUE_TYPE_CONSUMER_BYTE_RATE","VALUE_TYPE_CONTROLLER_MUTATION_RATE","VALUE_TYPE_REQUEST_PERCENTAGE"],"type":"string"},"rpc.Status":{"description":"The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).","properties":{"code":{"description":"RPC status code, as described [here](https://github.com/googleapis/googleapis/blob/b4c238feaa1097c53798ed77035bbfeb7fc72e96/google/rpc/code.proto#L32).","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"],"format":"int32","type":"string"},"details":{"items":{"description":"Details of the error.","oneOf":[{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.BadRequest"],"type":"string"}}},{"$ref":"#/components/schemas/BadRequest"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.ErrorInfo"],"type":"string"}}},{"$ref":"#/components/schemas/ErrorInfo"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.QuotaFailure"],"type":"string"}}},{"$ref":"#/components/schemas/QuotaFailure"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.Help"],"type":"string"}}},{"$ref":"#/components/schemas/Help"}]}]},"type":"array"},"message":{"description":"Detailed error message. No compatibility guarantees are given for the text contained in this message.","type":"string"}},"type":"object"}},"securitySchemes":{"auth0":{"description":"RedpandaCloud","flows":{"implicit":{"authorizationUrl":"https://auth.prd.cloud.redpanda.com/oauth/authorize","scopes":{},"x-client-id":"dQjapNIAHhF7EQqQToRla3yEII9sUSap"}},"type":"oauth2"}}},"info":{"title":"Redpanda Cloud Data Plane API","version":"v1"},"openapi":"3.0.3","paths":{"/v1/acls":{"delete":{"description":"Delete all ACLs that match the filter criteria. The `filter.` query string parameters find matching ACLs that meet all specified conditions.","operationId":"ACLService_DeleteACLs","parameters":[{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","in":"query","name":"filter.resource_type","required":true,"schema":{"enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER","RESOURCE_TYPE_REGISTRY","RESOURCE_TYPE_SUBJECT"],"type":"string"}},{"description":"The name of the resource this ACL targets.","in":"query","name":"filter.resource_name","schema":{"type":"string"}},{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","in":"query","name":"filter.resource_pattern_type","required":true,"schema":{"enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"}},{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","in":"query","name":"filter.host","schema":{"type":"string"}},{"description":"The operation that is allowed or denied (e.g. READ).","in":"query","name":"filter.operation","required":true,"schema":{"enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"}},{"description":"Whether the operation should be allowed or denied.","in":"query","name":"filter.permission_type","required":true,"schema":{"enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteACLsResponse"}}},"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":"Delete ACLs","tags":["Redpanda ACLs"]},"get":{"description":"List all ACLs. The `filter.` query string parameters find matching ACLs that meet all specified conditions.","operationId":"ACLService_ListACLs","parameters":[{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","in":"query","name":"filter.resource_type","schema":{"enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER","RESOURCE_TYPE_REGISTRY","RESOURCE_TYPE_SUBJECT"],"type":"string"}},{"description":"The name of the resource this ACL targets.","in":"query","name":"filter.resource_name","schema":{"type":"string"}},{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","in":"query","name":"filter.resource_pattern_type","schema":{"enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"}},{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","in":"query","name":"filter.host","schema":{"type":"string"}},{"description":"The operation that is allowed or denied (e.g. READ).","in":"query","name":"filter.operation","schema":{"enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"}},{"description":"Whether the operation should be allowed or denied.","in":"query","name":"filter.permission_type","schema":{"enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListACLsResponse"}}},"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":"List ACLs","tags":["Redpanda ACLs"]},"post":{"description":"Create a new ACL.","operationId":"ACLService_CreateACL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateACLRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateACLResponse"}}},"description":"Created"},"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":"Create ACL","tags":["Redpanda ACLs"]}},"/v1/cloud-storage/mount-tasks":{"get":{"description":"This operation retrieves the status of a task responsible for mounting or unmounting topics. It provides details on the task’s type (mount or unmount), its current state, and the topics involved.","operationId":"CloudStorageService_ListMountTasks","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMountTasksResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Retrieve the mount task status","tags":["Cloud Storage"]}},"/v1/cloud-storage/mount-tasks/{id}":{"delete":{"description":"Delete a mount or unmount by ID.","operationId":"CloudStorageService_DeleteMountTask","parameters":[{"description":"Unique identifier of the mount or unmount task to delete.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete a mount or unmount","tags":["Cloud Storage"]},"get":{"description":"Retrieves the status of a mount or unmount by ID. The response provides details on the operation type (mount or unmount), its current state, and the topics involved. Use the ID returned when you start the mount or unmount, or use the ListMountTasks endpoint to retrieve a list of IDs.","operationId":"CloudStorageService_GetMountTask","parameters":[{"description":"Unique identifier of the mount or unmount task to retrieve.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get the status of a mount or unmount by ID","tags":["Cloud Storage"]},"post":{"description":"This operation allows performing an action on an ongoing mount task.","operationId":"CloudStorageService_UpdateMountTask","parameters":[{"description":"ID is the unique identifier of the mount or unmount to update.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMountTaskBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update a mount or unmount","tags":["Cloud Storage"]}},"/v1/cloud-storage/topics/mount":{"post":{"description":"Attach mountable topics from object storage to a cluster, making them available for consumption and production again. Mounting a topic reloads its data and state to the local brokers, allowing active use of the topic.","operationId":"CloudStorageService_MountTopics","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TopicMount"},"required":["topics"],"type":"array"}}},"required":true,"x-originalParamName":"topics"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MountTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Mount topics from object storage","tags":["Cloud Storage"]}},"/v1/cloud-storage/topics/mountable":{"get":{"description":"Retrieve all topics that are currently unmounted and available to be mounted to the cluster. These topics reside in object storage and can be mounted for consumption or production within the cluster.","operationId":"CloudStorageService_ListMountableTopics","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMountableTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"List mountable topics","tags":["Cloud Storage"]}},"/v1/cloud-storage/topics/unmount":{"post":{"description":"Unmount topics to object storage, freeing up all local cluster resources. Once you unmount a topic, it can no longer be consumed or produced to. It detaches from the active cluster while its data remains safely stored in the external object storage.","operationId":"CloudStorageService_UnmountTopics","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"required":["topics"],"type":"array"}}},"description":"List of topics to unmount.","required":true,"x-originalParamName":"topics"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnmountTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Unmount topics to object storage","tags":["Cloud Storage"]}},"/v1/kafka-connect/clusters":{"get":{"description":"List Connect clusters available in Console.","operationId":"KafkaConnectService_ListConnectClusters","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectClustersResponse"}}},"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":"List Connect clusters","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}":{"get":{"description":"Get information about an available Kafka Connect cluster.","operationId":"KafkaConnectService_GetConnectCluster","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectCluster"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Connect cluster not found"},"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 Connect cluster","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors":{"get":{"description":"List connectors managed by the Kafka Connect service.","operationId":"KafkaConnectService_ListConnectors","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectorsResponse"}}},"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":"List connectors","tags":["Kafka Connect"]},"post":{"description":"Create a connector with the specified configuration.","operationId":"KafkaConnectService_CreateConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"required":true,"x-originalParamName":"connector"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Created"},"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":"Create connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}":{"delete":{"description":"Delete a connector. This operation force stops all tasks and also deletes the connector configuration.","operationId":"KafkaConnectService_DeleteConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Deleted"},"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":"Delete connector","tags":["Kafka Connect"]},"get":{"description":"Get information about a connector in a specific cluster.","operationId":"KafkaConnectService_GetConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"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 connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/config":{"get":{"description":"Get the configuration for the connector.","operationId":"KafkaConnectService_GetConnectorConfig","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"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 connector configuration","tags":["Kafka Connect"]},"put":{"description":"Update the configuration for an existing connector with the specified name, or create a new connector using the given configuration. Returns information about the connector after the change has been made.","operationId":"KafkaConnectService_UpsertConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector. If a connector with this name does not already exist, a new connector is created.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"required":["config"],"type":"object"}}},"description":"Connector configuration property.","required":true,"x-originalParamName":"config"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Updated"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Created"},"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":"Upsert connector configuration","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/pause":{"put":{"description":"Pause the connector and its tasks, which stops messages from processing until the connector is resumed. This call is asynchronous and may take some time to process.","operationId":"KafkaConnectService_PauseConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Pause request accepted"},"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":"Pause connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/restart":{"post":{"description":"Triggers a connector restart. You must specify whether or not tasks are also restarted, and whether only failed connectors are restarted.","operationId":"KafkaConnectService_RestartConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Options"}}},"required":true,"x-originalParamName":"options"},"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Restart connector request success"},"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":"Restart connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/resume":{"put":{"description":"Resume a paused connector and its tasks, and resumes message processing. This call is asynchronous and may take some time to process. If the connector was not paused, this operation does not do anything.","operationId":"KafkaConnectService_ResumeConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Resume request accepted"},"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":"Resume connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/status":{"get":{"description":"Gets the current status of the connector, including the state for each of its tasks, error information, etc.","operationId":"KafkaConnectService_GetConnectorStatus","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorStatus"}}},"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 connector status","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/stop":{"put":{"description":"Stops a connector, but does not delete it. All tasks for the connector are shut down completely. This call is asynchronous and may take some time to process.","operationId":"KafkaConnectService_StopConnector","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Request accepted"},"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":"Stop connector","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics":{"get":{"description":"Returns a list of connector topic names. If the connector is inactive, this call returns an empty list.","operationId":"KafkaConnectService_ListConnectorTopics","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectorTopicsResponse"}}},"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":"List connector topics","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics/reset":{"put":{"description":"Resets the set of topic names that the connector is using.","operationId":"KafkaConnectService_ResetConnectorTopics","parameters":[{"description":"Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector using the topics to be reset.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"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":"Reset connector topics","tags":["Kafka Connect"]}},"/v1/kafka-connect/clusters/{cluster_name}/secrets":{"get":{"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`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Substring match on secret name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"filter.labels[string][string]","schema":{"type":"string"}},{"description":"Secret scopes to search for","in":"query","name":"filter.scopes","schema":{"items":{"enum":["SCOPE_REDPANDA_CONNECT","SCOPE_REDPANDA_CLUSTER","SCOPE_MCP_SERVER","SCOPE_AI_AGENT"],"type":"string"},"type":"array"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}},"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":"List Connect cluster secrets","tags":["Secrets"]},"post":{"description":"Create a Kafka Connect cluster secret.","operationId":"SecretService_CreateKafkaConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKafkaConnectSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetKafkaConnectSecretResponse"}}},"description":"Secret created"},"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":"Create Connect cluster secret","tags":["Secrets"]}},"/v1/kafka-connect/clusters/{cluster_name}/secrets/{id}":{"delete":{"description":"Delete a Kafka Connect cluster secret.","operationId":"SecretService_DeleteKafkaConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"ID of the secret to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Secret deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete Connect cluster secret","tags":["Secrets"]},"get":{"description":"Get a specific Kafka Connect cluster secret.","operationId":"SecretService_GetKafkaConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"The ID of the secret to retrieve.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetKafkaConnectSecretResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Connect cluster secret","tags":["Secrets"]},"put":{"description":"Update a Kafka Connect cluster secret.","operationId":"SecretService_UpdateKafkaConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"ID of the secret to update.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateKafkaConnectSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateKafkaConnectSecretResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"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\ndefault value may be applied. Note that paging is currently not fully\nsupported, and this field only acts as a limit for the first page of data\nreturned. 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.\nUses a subset of AIP-160 filter syntax supporting:\n- Field comparisons (`=`, `!=`, `\u003c`, `\u003e`, `\u003c=`, `\u003e=`)\n- Logical AND chaining: condition1 AND condition2\n- Nested field access: parent.child = value\n- Escape sequences: field = \"string with \\\"quotes\\\"\"\n- Enum types\n- RFC3339 timestamps and ISO-like duration\n\nLimitations (not supported):\n- Logical OR chaining\n- Parentheses `(` `)` for grouping\n- Map and repeated types\n- HAS (:) operator\n- Negation (-, NOT)\n- Bare literal matching\n\nExample filters:\n- `state = KAFKA_CONNECTION_STATE_OPEN`\n- `idle_duration \u003e 30s AND total_request_statistics.request_count \u003e 100`\n- `authentication_info.user_principal = \"my-producer\"`\n- `recent_request_statistics.produce_bytes \u003e 1000 AND\nclient_software_name = \"kgo\"`\n- `open_time \u003e= 2025-09-01T10:22:54Z`\n\nReference: https://google.aip.dev/160","in":"query","name":"filter","schema":{"type":"string"}},{"description":"Field-based ordering specification following AIP-132 syntax.\nSupports multiple fields with `asc`/`desc` direction indicators.\nExamples:\n- `idle_duration desc` - longest idle connections first\n- `open_time desc, total_request_statistics.request_count desc` - newest\nconnections first, then most active\n- `recent_request_statistics.produce_bytes desc` - connections with\nhighest current produce throughput first\n\nReference: 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.","operationId":"QuotaService_ListQuotas","parameters":[{"description":"The type of entity to filter by. If unspecified, all entities will be returned.\n\n - ENTITY_TYPE_USER: Not supported in Redpanda\n - ENTITY_TYPE_IP: Not supported in Redpanda","in":"query","name":"filter.entity_type","schema":{"enum":["ENTITY_TYPE_CLIENT_ID","ENTITY_TYPE_CLIENT_ID_PREFIX","ENTITY_TYPE_USER","ENTITY_TYPE_IP"],"type":"string"}},{"description":"Filter by entity name. If unspecified will return all entities for specified entity type.","in":"query","name":"filter.entity_name","schema":{"type":"string"}},{"description":"If true, the entity_name will match the default entity (e.g., default client-id).","in":"query","name":"filter.match_default","schema":{"type":"boolean"}},{"description":"Limit the paginated response to a number of items. Defaults to 100. Use -1 to disable pagination.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListQuotasResponse"}}},"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":"List quotas","tags":["Quotas"]},"post":{"description":"Create or update client throughput quotas for a single entity. This operation is an upsert.","operationId":"QuotaService_SetQuota","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetQuotaRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetQuotaResponse"}}},"description":"Quota Set"},"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":"Set a quota","tags":["Quotas"]}},"/v1/quotas:batchDelete":{"post":{"description":"Delete client quotas for multiple entities and values in a single request.","operationId":"QuotaService_BatchDeleteQuota","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDeleteQuotaRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDeleteQuotaResponse"}}},"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":"Delete multiple quotas","tags":["Quotas"]}},"/v1/quotas:batchSet":{"post":{"description":"Create or update client throughput quotas for multiple entities in a single request.","operationId":"QuotaService_BatchSetQuota","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSetQuotaRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSetQuotaResponse"}}},"description":"Quotas Set"},"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":"Set multiple quotas","tags":["Quotas"]}},"/v1/quotas:delete":{"post":{"description":"Delete client quotas for single entity and value.","operationId":"QuotaService_DeleteQuota","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteQuotaRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteQuotaResponse"}}},"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":"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.","operationId":"PipelineService_GetPipelineServiceConfigSchema","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelineServiceConfigSchemaResponse"}}},"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 schema for Redpanda Connect pipeline configurations","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines":{"get":{"description":"List Redpanda Connect pipelines. Optional: filter based on pipeline name.","operationId":"PipelineService_ListPipelines","parameters":[{"description":"Any pipelines that partially match this name will be returned.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPipelinesResponse"}}},"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":"List Redpanda Connect pipelines","tags":["Redpanda Connect Pipelines"]},"post":{"description":"Create a new Redpanda Connect pipeline.","operationId":"PipelineService_CreatePipeline","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineCreate"}}},"required":true,"x-originalParamName":"pipeline"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"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":"Create Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines-by-secrets":{"get":{"description":"Get Redpanda Connect pipelines by secrets.","operationId":"PipelineService_GetPipelinesBySecrets","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelinesBySecretsResponse"}}},"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 Redpanda Connect pipelines by secrets","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines-for-secret":{"get":{"description":"Get Redpanda Connect pipelines for a given secret.","operationId":"PipelineService_GetPipelinesForSecret","parameters":[{"description":"Secret ID.","in":"query","name":"secret_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelinesForSecretResponse"}}},"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 Redpanda Connect pipelines for secret","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines/{id}":{"delete":{"description":"Delete a Redpanda Connect pipeline.","operationId":"PipelineService_DeletePipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete a Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]},"get":{"description":"Get a specific Redpanda Connect pipeline.","operationId":"PipelineService_GetPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]},"put":{"description":"Update the [configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) of a Redpanda Connect pipeline.","operationId":"PipelineService_UpdatePipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Specifies which fields should be updated. If not provided,\nall fields will be updated.","in":"query","name":"update_mask","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineUpdate"}}},"required":true,"x-originalParamName":"pipeline"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"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":"Update a Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines/{id}/start":{"put":{"description":"Start a stopped Redpanda Connect pipeline.","operationId":"PipelineService_StartPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"Started"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Start a Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines/{id}/stop":{"put":{"description":"Stop a running Redpanda Connect pipeline.","operationId":"PipelineService_StopPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"Stopped"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Stops a Redpanda Connect pipeline","tags":["Redpanda Connect Pipelines"]}},"/v1/redpanda-connect/pipelines:lint-config":{"post":{"description":"Validates a supplied Redpanda Connect pipeline YAML and returns a list of linting hints. If no problems are found, the list is empty.","operationId":"PipelineService_LintPipelineConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LintPipelineConfigRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LintPipelineConfigResponse"}}},"description":"Linting finished. See `lint_hints` for details."},"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":"Lint a Redpanda Connect pipeline configuration","tags":["Redpanda Connect Pipelines"]}},"/v1/roles":{"get":{"description":"List roles. Optional: filter based on role name and principal.","operationId":"SecurityService_ListRoles","parameters":[{"description":"Filter results only roles named with the prefix.","in":"query","name":"filter.name_prefix","schema":{"type":"string"}},{"description":"Filter results to only roles with names which contain the string.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"Return only roles assigned to this principal.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"Page size.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRolesResponse"}}},"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":"List roles","tags":["Security"]},"post":{"description":"Create a role.","operationId":"SecurityService_CreateRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}},"description":"The role to create.","required":true,"x-originalParamName":"role"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleResponse"}}},"description":"Role created"},"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":"Create role","tags":["Security"]}},"/v1/roles/{role_name}":{"delete":{"description":"Delete a role.","operationId":"SecurityService_DeleteRole","parameters":[{"description":"The role name.","in":"path","name":"role_name","required":true,"schema":{"type":"string"}},{"description":"Whether to delete the ACLs bound to the role.","in":"query","name":"delete_acls","schema":{"type":"boolean"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Role deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete role","tags":["Security"]},"get":{"description":"Get a role.","operationId":"SecurityService_GetRole","parameters":[{"description":"The role name.","in":"path","name":"role_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRoleResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get role","tags":["Security"]},"put":{"description":"Update a role.","operationId":"SecurityService_UpdateRoleMembership","parameters":[{"description":"The role name.","in":"path","name":"role_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoleMembershipBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoleMembershipResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update role","tags":["Security"]}},"/v1/roles/{role_name}/members":{"get":{"description":"List members assigned to a role.","operationId":"SecurityService_ListRoleMembers","parameters":[{"description":"The role name.","in":"path","name":"role_name","required":true,"schema":{"type":"string"}},{"description":"Filter results to only members with names which contain the string.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"Page size.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRoleMembersResponse"}}},"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":"List role members","tags":["Security"]}},"/v1/secret-scopes":{"get":{"description":"List supported secret scopes.","operationId":"SecretService_ListSecretScopes","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretScopesResponse"}}},"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":"List secret scopes","tags":["Secrets"]}},"/v1/secrets":{"get":{"description":"List secrets. Optional: filter based on secret name and labels.","operationId":"SecretService_ListSecrets","parameters":[{"description":"Substring match on secret name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"filter.labels[string]","schema":{"type":"string"}},{"description":"Secret scopes to search for","in":"query","name":"filter.scopes","schema":{"items":{"enum":["SCOPE_REDPANDA_CONNECT","SCOPE_REDPANDA_CLUSTER","SCOPE_MCP_SERVER","SCOPE_AI_AGENT"],"type":"string"},"type":"array"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}},{"description":"Limit the paginated response to a number of items.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}},"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":"List secrets","tags":["Secrets"]},"post":{"description":"Create a secret.","operationId":"SecretService_CreateSecret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecretRequest"}}},"description":"CreateSecretRequest is the request of CreateSecret.","required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecretResponse"}}},"description":"Secret created"},"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":"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.","operationId":"SecretService_DeleteSecret","parameters":[{"description":"The id of the secret to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Secret deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete secret","tags":["Secrets"]},"get":{"description":"Get a secret.","operationId":"SecretService_GetSecret","parameters":[{"description":"The id of the secret to retrieve.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSecretResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get secret","tags":["Secrets"]},"put":{"description":"Update a secret.","operationId":"SecretService_UpdateSecret","parameters":[{"description":"Secret identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSecretResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update secret","tags":["Secrets"]}},"/v1/topics":{"get":{"description":"List topics, with partition count and replication factor. Optional: filter based on topic name.","operationId":"TopicService_ListTopics","parameters":[{"description":"Substring match on topic name. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTopicsResponse"}}},"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":"List topics","tags":["Topics"]},"post":{"description":"Create a [topic](https://docs.redpanda.com/redpanda-cloud/get-started/create-topic/).","operationId":"TopicService_CreateTopic","parameters":[{"description":"If true, makes this request a dry run; everything is validated but\nno topics are actually created.","in":"query","name":"validate_only","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicRequest.Topic"}}},"description":"The topic to create.","required":true,"x-originalParamName":"topic"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicResponse"}}},"description":"Topic created"},"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":"Create topic","tags":["Topics"]}},"/v1/topics-partitions":{"patch":{"description":"Add partitions to existing topics. Depending on the partitioning strategy used, this may impact ordering guarantees.","operationId":"TopicService_AddPartitionsToTopics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPartitionsToTopicsRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPartitionsToTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Add topic partitions","tags":["Topics"]},"put":{"description":"Set partition counts for existing topics. New value must be equal to or larger than the current count of partitions in the topic. All topics will have the same final count of partitions. Depending on the partitioning strategy used, this may impact ordering guarantees.","operationId":"TopicService_SetPartitionsToTopics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPartitionsToTopicsRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPartitionsToTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Set topic partitions","tags":["Topics"]}},"/v1/topics/{topic_name}":{"delete":{"description":"Delete the Kafka topic with the requested name.","operationId":"TopicService_DeleteTopic","parameters":[{"description":"Topic name.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Topic deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Requested topic does not exist"},"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":"Delete topic","tags":["Topics"]}},"/v1/topics/{topic_name}/configurations":{"get":{"description":"Get key-value configs for a topic.","operationId":"TopicService_GetTopicConfigurations","parameters":[{"description":"Topic name","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get topic configurations","tags":["Topics"]},"patch":{"description":"Update a subset of the topic configurations.","operationId":"TopicService_UpdateTopicConfigurations","parameters":[{"description":"Topic name","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateConfiguration"},"type":"array"}}},"required":true,"x-originalParamName":"configurations"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update topic configuration","tags":["Topics"]},"put":{"description":"Update the entire set of key-value configurations for a topic. Config entries that are not provided in the request are removed and will fall back to their default values.","operationId":"TopicService_SetTopicConfigurations","parameters":[{"description":"Name of topic.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SetConfiguration"},"type":"array"}}},"required":true,"x-originalParamName":"configurations"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Set topic configurations","tags":["Topics"]}},"/v1/topics/{topic_name}/partitions":{"patch":{"description":"Add partitions to an existing topic. Depending on the partitioning strategy used, this may impact ordering guarantees.","operationId":"TopicService_AddTopicPartitions","parameters":[{"description":"The topic name.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTopicPartitionsBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTopicPartitionsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Add topic partitions","tags":["Topics"]},"put":{"description":"Set partitions to an existing topic. New value must be equal to or larger than the current count of partitions in the topic. Depending on the partitioning strategy used, this may impact ordering guarantees.","operationId":"TopicService_SetTopicPartitions","parameters":[{"description":"The topic name.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTopicPartitionsBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTopicPartitionsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Set topic partitions","tags":["Topics"]}},"/v1/transforms":{"get":{"description":"Retrieve a list of Wasm transforms. Optional: filter based on transform name.","operationId":"TransformService_ListTransforms","parameters":[{"description":"Substring match on transform name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"example":{"next_page_token":"","transforms":[{"environment_variables":[],"input_topic_name":"topic1","name":"transform1","output_topic_names":["output-topic11","output-topic12"],"statuses":[{"broker_id":1,"lag":1,"partition_id":1,"status":"PARTITION_STATUS_RUNNING"}]},{"environment_variables":[],"input_topic_name":"topic2","name":"transform2","output_topic_names":["output-topic21","output-topic22"],"statuses":[{"broker_id":2,"lag":2,"partition_id":2,"status":"PARTITION_STATUS_RUNNING"}]}]},"schema":{"$ref":"#/components/schemas/ListTransformsResponse"}}},"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":"List transforms","tags":["Wasm Transforms"]},"put":{"description":"Initiate deployment of a new Wasm transform. This endpoint uses multipart/form-data encoding. Following deployment, a brief period is required before the Wasm transform becomes operational. Monitor the partition statuses to check whether the transform is active. This usually takes around 3s, but no longer than 10s.","operationId":"TransformService_DeployTransform","requestBody":{"content":{"multipart/form-data":{"schema":{"example":"{\"name\":\"redact-orders\",\"input_topic_name\":\"orders\",\"output_topic_names\":[\"orders-redacted\"],\"environment_variables\":[{\"key\":\"LOGGER_LEVEL\",\"value\":\"DEBUG\"}]}","properties":{"metadata":{"$ref":"#/components/schemas/DeployTransformRequest"},"wasm_binary":{"description":"Binary file containing the compiled WASM transform. The maximum size for this file is 10MiB.","format":"binary","type":"string"}},"type":"object"}}},"description":"Transform metadata as well as the WASM binary","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransformMetadata"}}},"description":"Created"}},"summary":"Deploy Transform","tags":["Wasm Transforms"]}},"/v1/transforms/{name}":{"delete":{"description":"Delete a Wasm transform with the requested name.","operationId":"TransformService_DeleteTransform","parameters":[{"description":"Name of transform.","example":{"name":"transform1"},"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"example":{},"schema":{}}},"description":"Transform deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete transform","tags":["Wasm Transforms"]},"get":{"description":"Get a specific Wasm transform.","operationId":"TransformService_GetTransform","parameters":[{"description":"Name of transform.","example":{"name":"transform1"},"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"transform":{"environment_variables":[],"input_topic_name":"topic1","name":"transform1","output_topic_names":["output-topic1","output-topic2"],"statuses":[{"broker_id":1,"lag":1,"partition_id":1,"status":"PARTITION_STATUS_RUNNING"}]}},"schema":{"$ref":"#/components/schemas/GetTransformResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get transform","tags":["Wasm Transforms"]}},"/v1/users":{"get":{"description":"List users. Optional: filter based on username.","operationId":"UserService_ListUsers","parameters":[{"description":"Username.","in":"query","name":"filter.name","schema":{"type":"string"}},{"description":"Substring match on username. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"next_page_token":"","users":[{"name":"payment-service"},{"name":"jane"}]},"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}},"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":"List users","tags":["Redpanda Users"]},"post":{"description":"Create a new user.","operationId":"UserService_CreateUser","requestBody":{"content":{"application/json":{"example":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service","password":"secure-password"},"schema":{"$ref":"#/components/schemas/CreateUserRequest.User"}}},"required":true,"x-originalParamName":"user"},"responses":{"201":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service"}},"schema":{"$ref":"#/components/schemas/CreateUserRequest.User"}}},"description":"User created"},"400":{"content":{"application/json":{"example":{"code":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_INVALID_INPUT"},{"@type":"type.googleapis.com/google.rpc.BadRequest","field_violations":[{"description":"value length must be at least 3 characters","field":"user.password","localized_message":null,"reason":""},{"description":"value is required","field":"user.mechanism","localized_message":null,"reason":""}]}],"message":"provided parameters are invalid"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Bad request. Check API documentation and update request."},"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":"Create user","tags":["Redpanda Users"]}},"/v1/users/{name}":{"delete":{"description":"Delete the specified user","operationId":"UserService_DeleteUser","parameters":[{"description":"Username","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"example":{},"schema":{}}},"description":"User deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"example":{"code":"NOT_FOUND","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_RESOURCE_NOT_FOUND"}],"message":"user not found"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Not Found"},"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":"Delete user","tags":["Redpanda Users"]}},"/v1/users/{user.name}":{"put":{"description":"Update a user's credentials.","operationId":"UserService_UpdateUser","parameters":[{"description":"Username.","in":"path","name":"user.name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","password":"new-password"}},"schema":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"password":{"description":"Password.","type":"string"}},"type":"object"}}},"required":true,"x-originalParamName":"user"},"responses":{"200":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service"}},"schema":{"$ref":"#/components/schemas/UpdateUserResponse.User"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"code":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_INVALID_INPUT"},{"@type":"type.googleapis.com/google.rpc.BadRequest","field_violations":[{"description":"value length must be at least 3 characters","field":"user.password","localized_message":null,"reason":""},{"description":"value is required","field":"user.mechanism","localized_message":null,"reason":""}]}],"message":"provided parameters are invalid"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Bad request. Check API documentation and update request."},"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":"Update user","tags":["Redpanda Users"]}}},"security":[{"auth0":[]}],"servers":[{"description":"Data Plane API","url":"{dataplane_api_url}","variables":{"dataplane_api_url":{"default":"https://{dataplane_api_url}","description":"Find the Data Plane API base URL of a cluster by calling the Get Cluster endpoint of the Control Plane API. The dataplane_api.url field is returned in the response body.\u003cbr\u003e\u003cbr\u003e\n\t\t\t\t\tExample (Dedicated): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.fmc.prd.cloud.redpanda.com\"\u003cbr\u003e\n\t\t\t\t\tExample (BYOC): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.byoc.prd.cloud.redpanda.com\""}}}],"tags":[{"description":"Manage Redpanda access control lists (ACLs). See [Redpanda Cloud Authorization](https://docs.redpanda.com/redpanda-cloud/security/authorization/cloud-authorization/) for more information.","name":"Redpanda ACLs"},{"description":"Manage Redpanda topics stored in object storage. See: [Mountable Topics](https://docs.redpanda.com/redpanda-cloud/manage/mountable-topics/)","name":"Cloud Storage"},{"description":"Manage Wasm transforms in Redpanda.","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.","name":"Quotas"},{"description":"Manage [secrets](https://docs.redpanda.com/redpanda-cloud/security/secrets) for Redpanda Cloud.","name":"Secrets"},{"description":"Manage Redpanda roles.","name":"Security"},{"description":"Manage Redpanda topics.","name":"Topics"},{"description":"Manage Redpanda users. For more information, see [Role-Based Access Control](https://docs.redpanda.com/redpanda-cloud/security/authorization/rbac/).","name":"Redpanda Users"}]} \ No newline at end of file diff --git a/proto/gen/openapi/openapi.v1alpha2.json b/proto/gen/openapi/openapi.v1alpha2.json index 8920d4b7a..5f2227ffc 100644 --- a/proto/gen/openapi/openapi.v1alpha2.json +++ b/proto/gen/openapi/openapi.v1alpha2.json @@ -1 +1 @@ -{"components":{"schemas":{"ACL.Operation":{"description":"The operation that is allowed or denied (e.g. READ).","enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"},"Action":{"enum":["ACTION_PREPARE","ACTION_EXECUTE","ACTION_FINISH","ACTION_CANCEL"],"type":"string"},"BadRequest":{"description":"Describes violations in a client request. This error type focuses on the\nsyntactic aspects of the request.","properties":{"field_violations":{"description":"Describes all violations in a client request.","items":{"$ref":"#/components/schemas/FieldViolation"},"type":"array"}},"title":"BadRequest","type":"object"},"Config":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"ConfigAlterOperation":{"enum":["CONFIG_ALTER_OPERATION_SET","CONFIG_ALTER_OPERATION_DELETE","CONFIG_ALTER_OPERATION_APPEND","CONFIG_ALTER_OPERATION_SUBTRACT"],"type":"string"},"ConfigSource":{"enum":["CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG","CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG","CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG","CONFIG_SOURCE_STATIC_BROKER_CONFIG","CONFIG_SOURCE_DEFAULT_CONFIG","CONFIG_SOURCE_DYNAMIC_BROKER_LOGGER_CONFIG"],"type":"string"},"ConfigSynonym":{"properties":{"name":{"type":"string"},"source":{"$ref":"#/components/schemas/ConfigSource"},"value":{"nullable":true,"type":"string"}},"type":"object"},"ConfigType":{"enum":["CONFIG_TYPE_BOOLEAN","CONFIG_TYPE_STRING","CONFIG_TYPE_INT","CONFIG_TYPE_SHORT","CONFIG_TYPE_LONG","CONFIG_TYPE_DOUBLE","CONFIG_TYPE_LIST","CONFIG_TYPE_CLASS","CONFIG_TYPE_PASSWORD"],"type":"string"},"Configuration":{"properties":{"config_synonyms":{"description":"If no config value is set at the topic level, it will inherit the value\nset at the broker or cluster level. `name` is the corresponding config\nkey whose value is inherited. `source` indicates whether the inherited\nconfig is default, broker, etc.","items":{"$ref":"#/components/schemas/ConfigSynonym"},"type":"array"},"documentation":{"description":"Config documentation.","nullable":true,"type":"string"},"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"read_only":{"description":"Whether the config is read-only, or is dynamic and can be altered.","type":"boolean"},"sensitive":{"description":"Whether this is a sensitive config key and value.","type":"boolean"},"source":{"$ref":"#/components/schemas/ConfigSource"},"type":{"$ref":"#/components/schemas/ConfigType"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"ConnectCluster":{"properties":{"address":{"description":"The host address of the Kafka Connect cluster.","type":"string"},"info":{"$ref":"#/components/schemas/ConnectCluster.Info"},"name":{"description":"Unique name of connect cluster. For Redpanda Cloud, the value is `redpanda`.","type":"string"},"plugins":{"items":{"$ref":"#/components/schemas/ConnectorPlugin"},"type":"array"}},"type":"object"},"ConnectCluster.Info":{"properties":{"commit":{"description":"The git commit ID of the connect worker source code.","type":"string"},"kafka_cluster_id":{"description":"Cluster ID.","type":"string"},"version":{"description":"Connect worker version.","type":"string"}},"type":"object"},"Connector":{"properties":{"state":{"description":"State of the connector instance.","type":"string"},"trace":{"description":"String value of stack trace.","type":"string"},"worker_id":{"description":"ID of worker that the connector is assigned to.","type":"string"}},"type":"object"},"ConnectorError":{"properties":{"content":{"description":"Detailed description of the error.","type":"string"},"title":{"description":"Short description of the error.","type":"string"},"type":{"$ref":"#/components/schemas/ConnectorError.Type"}},"title":"ConnectorError is the error of a connector, this is holistic error\nabstraction, made parsing the error trace of connector or Task","type":"object"},"ConnectorError.Type":{"description":"Error level.","enum":["TYPE_ERROR","TYPE_WARNING"],"type":"string"},"ConnectorHolisticState":{"description":"State of a connector or one of its tasks, as described in the [Kafka Connect documentation](https://kafka.apache.org/documentation.html#connect_administration). Takes into account not just the state of the connector instance itself, but also the tasks within the connector.\n\n - CONNECTOR_HOLISTIC_STATE_PAUSED: The connector or task has been administratively paused.\n - CONNECTOR_HOLISTIC_STATE_RESTARTING: The connector or task is restarting.\n - CONNECTOR_HOLISTIC_STATE_DESTROYED: The connector is destroyed, regardless of any tasks.\n - CONNECTOR_HOLISTIC_STATE_STOPPED: The connector or task has been stopped.\n - CONNECTOR_HOLISTIC_STATE_UNASSIGNED: - The connector or task has not yet been assigned to a worker,\n- THe connector is running, but there are unassigned tasks.\n - CONNECTOR_HOLISTIC_STATE_HEALTHY: The connector is running, \u003e 0 tasks, all of them in running state.\n - CONNECTOR_HOLISTIC_STATE_UNHEALTHY: - The connector has failed,\n- The connector is running, but has no tasks,\n- Connector is running and has tasks, but all tasks have failed.\n - CONNECTOR_HOLISTIC_STATE_DEGRADED: The connector is running and has tasks, and at least one task, but not all, have failed.\n - CONNECTOR_HOLISTIC_STATE_UNKNOWN: The connector or task state could not be determined.","enum":["CONNECTOR_HOLISTIC_STATE_PAUSED","CONNECTOR_HOLISTIC_STATE_RESTARTING","CONNECTOR_HOLISTIC_STATE_DESTROYED","CONNECTOR_HOLISTIC_STATE_STOPPED","CONNECTOR_HOLISTIC_STATE_UNASSIGNED","CONNECTOR_HOLISTIC_STATE_HEALTHY","CONNECTOR_HOLISTIC_STATE_UNHEALTHY","CONNECTOR_HOLISTIC_STATE_DEGRADED","CONNECTOR_HOLISTIC_STATE_UNKNOWN"],"type":"string"},"ConnectorInfoStatus":{"properties":{"info":{"$ref":"#/components/schemas/ConnectorSpec"},"name":{"description":"Name of connector.","type":"string"},"status":{"$ref":"#/components/schemas/ConnectorStatus"}},"type":"object"},"ConnectorPlugin":{"properties":{"class":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"}},"type":"object"},"ConnectorSpec":{"description":"Connector specifications as defined in the Kafka Connect\nAPI. You may include this in the request body when creating a new connector.","properties":{"config":{"additionalProperties":{"type":"string"},"description":"Connector configuration properties.","type":"object"},"name":{"description":"Name of connector.","type":"string"},"tasks":{"items":{"$ref":"#/components/schemas/TaskInfo"},"readOnly":true,"type":"array"},"type":{"readOnly":true,"type":"string"}},"required":["name","config"],"type":"object"},"ConnectorStatus":{"properties":{"connector":{"$ref":"#/components/schemas/Connector"},"errors":{"description":"List of parsed connectors' and tasks' errors.","items":{"$ref":"#/components/schemas/ConnectorError"},"type":"array"},"holistic_state":{"$ref":"#/components/schemas/ConnectorHolisticState"},"name":{"description":"Name of connector.","type":"string"},"tasks":{"description":"Status of connector tasks. For more information, see the [https://docs.redpanda.com/current/deploy/deployment-option/cloud/managed-connectors/monitor-connectors/#connector-tasks](Monitor Connectors) documentation.","items":{"$ref":"#/components/schemas/TaskStatus"},"type":"array"},"type":{"description":"Type of connector (sink or source).","type":"string"}},"type":"object"},"CreateACLRequest":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.\nFor requests with resource_type CLUSTER, this will default to \"kafka-cluster\".","type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"required":["resource_type","resource_pattern_type","principal","host","operation","permission_type"],"type":"object"},"CreateACLResponse":{"type":"object"},"CreateConnectSecretBody":{"description":"CreateConnectSecretRequest is the request of CreateConnectSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"name":{"description":"Name of connector.","type":"string"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["name","secret_data"],"type":"object"},"CreateConnectSecretResponse":{"description":"CreateConnectSecretResponse is the response of CreateConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"CreateConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"CreatePipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"CreateSecretRequest":{"description":"CreateSecretRequest is the request of CreateSecret.","properties":{"id":{"description":"Secret identifier.","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"CreateSecretResponse":{"description":"CreateSecretResponse is the response of CreateSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"CreateTopicRequest.Topic":{"properties":{"configs":{"description":"An array of key-value config pairs for a topic.\nThese correspond to Kafka topic-level configs.","items":{"$ref":"#/components/schemas/Config"},"type":"array"},"name":{"description":"Name of topic.","type":"string"},"partition_count":{"description":"The number of partitions to give the topic. If specifying\npartitions manually (see `replica_assignments`), set to -1.\nOr, to use the cluster default partition count, set to null.","format":"int32","nullable":true,"type":"integer"},"replica_assignments":{"description":"Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both `replication_factor` and\n`partition_count` must be -1.","items":{"$ref":"#/components/schemas/ReplicaAssignment"},"type":"array"},"replication_factor":{"description":"The number of replicas every partition must have.\nIf specifying partitions manually (see `replica_assignments`), set to -1.\nOr, to use the cluster default replication factor, set to null.","format":"int32","nullable":true,"type":"integer"}},"type":"object"},"CreateTopicResponse":{"properties":{"name":{"description":"Name of topic.","type":"string"},"partition_count":{"description":"The number of partitions created for the topic.\nThis field has a default value of -1, which may be returned if the broker\ndoes not support v5+ of this request which added support for returning\nthis information.","format":"int32","type":"integer"},"replication_factor":{"description":"The number of replicas per topic partition.\nThis field has a default of -1, which may be returned if the broker\ndoes not support v5+ of this request which added support for returning\nthis information.","format":"int32","type":"integer"}},"type":"object"},"CreateUserRequest.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"},"password":{"description":"Password.","type":"string"}},"type":"object"},"CreateUserResponse":{"properties":{"user":{"$ref":"#/components/schemas/CreateUserResponse.User"}},"type":"object"},"CreateUserResponse.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"title":"Name of newly-created user","type":"string"}},"type":"object"},"DeleteACLsRequest.Filter":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","nullable":true,"type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","nullable":true,"type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.","nullable":true,"type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"required":["resource_type","resource_pattern_type","operation","permission_type"],"type":"object"},"DeleteACLsResponse":{"properties":{"matching_acls":{"items":{"$ref":"#/components/schemas/MatchingACL"},"type":"array"}},"type":"object"},"DeleteConnectSecretResponse":{"description":"DeleteConnectSecretResponse is the response of DeleteConnectSecret.","type":"object"},"DeleteMountTaskResponse":{"type":"object"},"DeletePipelineResponse":{"type":"object"},"DeleteSecretResponse":{"description":"DeleteSecretResponse is the response of DeleteSecret.","type":"object"},"DeleteTopicResponse":{"type":"object"},"DeleteTransformResponse":{"type":"object"},"DeleteUserResponse":{"type":"object"},"DeployTransformRequest":{"description":"Metadata required to deploy a new Wasm\ntransform in a Redpanda cluster.","properties":{"environment_variables":{"description":"The environment variables you want to apply to your transform's environment","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":"array"},"input_topic_name":{"description":"The input topic to apply the transform to.","example":"orders","type":"string"},"name":{"description":"Name of the transform.","example":"redact-payment-details-in-orders","type":"string"},"output_topic_names":{"description":"Output topic to write the transform results to.","example":"orders-redacted","items":{"type":"string"},"type":"array"}},"required":["name","input_topic_name","output_topic_names"],"type":"object"},"EnvironmentVariable":{"properties":{"key":{"description":"The key of your environment variable.","example":"LOG_LEVEL","type":"string"},"value":{"description":"The value of your environment variable.","example":"DEBUG","type":"string"}},"required":["key","value"],"type":"object"},"ErrorInfo":{"description":"Describes the cause of the error with structured details.\n\nExample of an error when contacting the \"pubsub.googleapis.com\" API when it\nis not enabled:\n\n { \"reason\": \"API_DISABLED\"\n \"domain\": \"googleapis.com\"\n \"metadata\": {\n \"resource\": \"projects/123\",\n \"service\": \"pubsub.googleapis.com\"\n }\n }\n\nThis response indicates that the pubsub.googleapis.com API is not enabled.\n\nExample of an error that is returned when attempting to create a Spanner\ninstance in a region that is out of stock:\n\n { \"reason\": \"STOCKOUT\"\n \"domain\": \"spanner.googleapis.com\",\n \"metadata\": {\n \"availableRegions\": \"us-central1,us-east2\"\n }\n }","properties":{"domain":{"description":"The logical grouping to which the \"reason\" belongs. The error domain\nis typically the registered service name of the tool or product that\ngenerates the error. Example: \"pubsub.googleapis.com\". If the error is\ngenerated by some common infrastructure, the error domain must be a\nglobally unique value that identifies the infrastructure. For Google API\ninfrastructure, the error domain is \"googleapis.com\".","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Additional structured details about this error.\n\nKeys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should\nideally be lowerCamelCase. Also, they must be limited to 64 characters in\nlength. When identifying the current value of an exceeded limit, the units\nshould be contained in the key, not the value. For example, rather than\n`{\"instanceLimit\": \"100/request\"}`, should be returned as,\n`{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of\ninstances that can be created in a single (batch) request.","type":"object"},"reason":{"description":"The reason of the error. This is a constant value that identifies the\nproximate cause of the error. Error reasons are unique within a particular\ndomain of errors. This should be at most 63 characters and match a\nregular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents\nUPPER_SNAKE_CASE.","type":"string"}},"title":"ErrorInfo","type":"object"},"FieldViolation":{"description":"A message type used to describe a single bad request field.","properties":{"description":{"description":"A description of why the request element is bad.","type":"string"},"field":{"description":"A path that leads to a field in the request body. The value will be a\nsequence of dot-separated identifiers that identify a protocol buffer\nfield.\n\nConsider the following:\n\n message CreateContactRequest {\n message EmailAddress {\n enum Type {\n TYPE_UNSPECIFIED = 0;\n HOME = 1;\n WORK = 2;\n }\n\n optional string email = 1;\n repeated EmailType type = 2;\n }\n\n string full_name = 1;\n repeated EmailAddress email_addresses = 2;\n }\n\nIn this example, in proto `field` could take one of the following values:\n\n* `full_name` for a violation in the `full_name` value\n* `email_addresses[1].email` for a violation in the `email` field of the\n first `email_addresses` message\n* `email_addresses[3].type[2]` for a violation in the second `type`\n value in the third `email_addresses` message.\n\nIn JSON, the same values are represented as:\n\n* `fullName` for a violation in the `fullName` value\n* `emailAddresses[1].email` for a violation in the `email` field of the\n first `emailAddresses` message\n* `emailAddresses[3].type[2]` for a violation in the second `type`\n value in the third `emailAddresses` message.","type":"string"},"localized_message":{"$ref":"#/components/schemas/LocalizedMessage"},"reason":{"description":"The reason of the field-level error. This is a constant value that\nidentifies the proximate cause of the field-level error. It should\nuniquely identify the type of the FieldViolation within the scope of the\ngoogle.rpc.ErrorInfo.domain. This should be at most 63\ncharacters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`,\nwhich represents UPPER_SNAKE_CASE.","type":"string"}},"type":"object"},"GetConnectClusterResponse":{"properties":{"cluster":{"$ref":"#/components/schemas/ConnectCluster"}},"type":"object"},"GetConnectSecretResponse":{"description":"GetConnectSecretResponse is the response of GetConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"GetConnectorConfigResponse":{"properties":{"config":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"GetConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"GetConnectorStatusResponse":{"properties":{"status":{"$ref":"#/components/schemas/ConnectorStatus"}},"type":"object"},"GetMountTaskResponse":{"properties":{"task":{"$ref":"#/components/schemas/MountTask"}},"type":"object"},"GetPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"GetPipelineServiceConfigSchemaResponse":{"properties":{"config_schema":{"description":"JSON schema of the configuration components that are allowed for Connect pipelines.","type":"string"}},"type":"object"},"GetPipelinesBySecretsResponse":{"properties":{"pipelines_for_secret":{"items":{"$ref":"#/components/schemas/PipelinesForSecret"},"type":"array"}},"type":"object"},"GetPipelinesForSecretResponse":{"properties":{"pipelines_for_secret":{"$ref":"#/components/schemas/PipelinesForSecret"}},"type":"object"},"GetSecretResponse":{"description":"GetSecretResponse is the response of GetSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"GetTopicConfigurationsResponse":{"properties":{"configurations":{"items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"GetTransformResponse":{"properties":{"transform":{"$ref":"#/components/schemas/TransformMetadata"}},"type":"object"},"Help":{"description":"Provides links to documentation or for performing an out of band action.\n\nFor example, if a quota check failed with an error indicating the calling\nproject hasn't enabled the accessed service, this can contain a URL pointing\ndirectly to the right place in the developer console to flip the bit.","properties":{"links":{"description":"URL(s) pointing to additional information on handling the current error.","items":{"$ref":"#/components/schemas/Link"},"type":"array"}},"title":"Help","type":"object"},"Link":{"description":"Describes a URL link.","properties":{"description":{"description":"Describes what the link offers.","type":"string"},"url":{"description":"The URL of the link.","type":"string"}},"type":"object"},"ListACLsRequest.Filter":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","nullable":true,"type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","nullable":true,"type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.","nullable":true,"type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"type":"object"},"ListACLsResponse":{"properties":{"resources":{"items":{"$ref":"#/components/schemas/Resource"},"type":"array"}},"type":"object"},"ListConnectClustersResponse":{"properties":{"clusters":{"items":{"$ref":"#/components/schemas/ConnectCluster"},"type":"array"}},"type":"object"},"ListConnectSecretsResponse":{"description":"ListConnectSecretsResponse is the response of ListConnectSecrets.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"secrets":{"description":"Secrets retrieved.","items":{"$ref":"#/components/schemas/Secret"},"type":"array"}},"type":"object"},"ListConnectorTopicsResponse":{"properties":{"topics":{"description":"Topic names.","items":{"type":"string"},"type":"array"}},"type":"object"},"ListConnectorsResponse":{"properties":{"connectors":{"description":"List of connectors, where the parent key is the connector name.","items":{"$ref":"#/components/schemas/ConnectorInfoStatus"},"type":"array"},"next_page_token":{"description":"Page Token to fetch the next page. The value can be used as page_token in the next call to this endpoint.","type":"string"}},"type":"object"},"ListMountTasksResponse":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/MountTask"},"type":"array"}},"type":"object"},"ListMountableTopicsResponse":{"properties":{"topics":{"items":{"$ref":"#/components/schemas/TopicLocation"},"type":"array"}},"type":"object"},"ListPipelinesRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on pipeline name. Case-sensitive.","type":"string"}},"type":"object"},"ListPipelinesResponse":{"properties":{"next_page_token":{"type":"string"},"pipelines":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"}},"type":"object"},"ListSecretScopesResponse":{"description":"ListSecretScopesResponse is the response of ListSecretScopes.","properties":{"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"type":"array"}},"type":"object"},"ListSecretsFilter":{"description":"ListSecretsFilter are the filter options for listing secrets.","properties":{"labels[string][string]":{"additionalProperties":{"type":"string"},"description":"The secret labels to search for.","type":"object"},"name_contains":{"description":"Substring match on secret name. Case-sensitive.","type":"string"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes to search for","type":"array"}},"type":"object"},"ListSecretsResponse":{"description":"ListSecretsResponse is the response of ListSecrets.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"secrets":{"description":"Secrets retrieved.","items":{"$ref":"#/components/schemas/Secret"},"type":"array"}},"type":"object"},"ListTopicsRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on topic name. Case-sensitive.","type":"string"}},"type":"object"},"ListTopicsResponse":{"properties":{"next_page_token":{"type":"string"},"topics":{"items":{"$ref":"#/components/schemas/ListTopicsResponse.Topic"},"type":"array"}},"type":"object"},"ListTopicsResponse.Topic":{"properties":{"internal":{"description":"Whether topic is internal only.","type":"boolean"},"name":{"description":"Topic name.","type":"string"},"partition_count":{"description":"Topic partition count.","format":"int32","type":"integer"},"replication_factor":{"description":"Topic replication factor.","format":"int32","type":"integer"}},"type":"object"},"ListTransformsRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on transform name. Case-sensitive.","type":"string"}},"type":"object"},"ListTransformsResponse":{"properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"transforms":{"items":{"$ref":"#/components/schemas/TransformMetadata"},"type":"array"}},"type":"object"},"ListUsersRequest.Filter":{"properties":{"name":{"description":"Username.","type":"string"},"name_contains":{"description":"Substring match on username. Case-sensitive.","type":"string"}},"type":"object"},"ListUsersResponse":{"properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"users":{"items":{"$ref":"#/components/schemas/ListUsersResponse.User"},"type":"array"}},"type":"object"},"ListUsersResponse.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"}},"type":"object"},"LocalizedMessage":{"description":"Provides a localized error message that is safe to return to the user\nwhich can be attached to an RPC error.","properties":{"locale":{"title":"The locale used following the specification defined at\nhttps://www.rfc-editor.org/rfc/bcp/bcp47.txt.\nExamples are: \"en-US\", \"fr-CH\", \"es-MX\"","type":"string"},"message":{"description":"The localized error message in the above locale.","type":"string"}},"type":"object"},"MatchingACL":{"properties":{"error":{"$ref":"#/components/schemas/rpc.Status"},"host":{"description":"The host address to use for this ACL.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies.","type":"string"},"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"},"MountTask":{"properties":{"id":{"description":"Unique identifier for this mount task.","format":"int32","type":"integer"},"state":{"$ref":"#/components/schemas/MountTask.State"},"topics":{"description":"List of topics that are being mounted or unmounted.","items":{"$ref":"#/components/schemas/MountTask.Topic"},"type":"array"},"type":{"$ref":"#/components/schemas/MountTask.Type"}},"type":"object"},"MountTask.State":{"description":" - STATE_PLANNED: Planned: The mount task has been created and is awaiting further actions.\n - STATE_PREPARING: Preparing: The mount task is gathering resources and preparing for execution.\n - STATE_PREPARED: Prepared: All preparations are complete, and the mount task is ready to be executed.\n - STATE_EXECUTING: Executing: The mount task is actively transferring or transforming data.\n - STATE_EXECUTED: Executed: The core mount task actions are complete, but the mount task has not yet cut over or finalized.\n - STATE_CUT_OVER: Cut Over: The mount task has reached a critical point where ownership is transferred or final adjustments are made.\n - STATE_FINISHED: Finished: The mount task has been successfully completed, and no further actions are required.\n - STATE_CANCELING: Canceling: The mount task is in the process of being canceled, and rollback or cleanup actions may be in progress.\n - STATE_CANCELLED: Cancelled: The mount task has been fully canceled, and no further actions will be taken.","enum":["STATE_PLANNED","STATE_PREPARING","STATE_PREPARED","STATE_EXECUTING","STATE_EXECUTED","STATE_CUT_OVER","STATE_FINISHED","STATE_CANCELING","STATE_CANCELLED"],"type":"string"},"MountTask.Topic":{"properties":{"source_topic_reference":{"description":"The topic reference in the object storage bucket.\nThis field is only set for tasks of type MOUNT.","type":"string"},"topic_reference":{"description":"The topic reference within the current cluster, which may be either a simple topic name or a full reference\nin the form: cluster-uuid/topic-name/revision.","type":"string"}},"type":"object"},"MountTask.Type":{"description":" - TYPE_MOUNT: Mount represents the process of making topics available in a cluster by loading them from object storage.\n - TYPE_UNMOUNT: Unmount represents the process of offloading topics back to object storage.","enum":["TYPE_MOUNT","TYPE_UNMOUNT"],"type":"string"},"MountTopicsResponse":{"properties":{"mount_task_id":{"format":"int32","title":"ID of mount","type":"integer"}},"type":"object"},"Options":{"properties":{"include_tasks":{"description":"Restart connector's tasks.","type":"boolean"},"only_failed":{"description":"Restart only connectors that have failed.","type":"boolean"}},"type":"object"},"PartitionStatus":{"enum":["PARTITION_STATUS_RUNNING","PARTITION_STATUS_INACTIVE","PARTITION_STATUS_ERRORED","PARTITION_STATUS_UNKNOWN"],"type":"string"},"PartitionTransformStatus":{"properties":{"broker_id":{"format":"int32","type":"integer"},"lag":{"format":"int32","type":"integer"},"partition_id":{"format":"int32","type":"integer"},"status":{"$ref":"#/components/schemas/PartitionStatus"}},"type":"object"},"PermissionType":{"description":"Whether the operation should be allowed or denied.","enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"},"Pipeline":{"description":"Defines the pipeline resource.","properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","title":"The pipeline configuration in YAML.\nSee https://docs.redpanda.com/redpanda-connect/configuration/about/","type":"string"},"description":{"description":"Optional pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"id":{"description":"Pipeline ID.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"},"state":{"$ref":"#/components/schemas/Pipeline.State"},"status":{"$ref":"#/components/schemas/Pipeline.Status"}},"required":["id","display_name","config_yaml"],"type":"object"},"Pipeline.State":{"description":"State of the pipeline.\n\n - STATE_STARTING: The pipeline is starting.\n - STATE_RUNNING: The pipeline is running.\n - STATE_STOPPING: The pipeline is in the process of stopping.\n - STATE_STOPPED: The pipeline is stopped and in paused state.\n - STATE_ERROR: The pipeline encountered an error. See [Error Handling](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/error_handling/) for further guidance.\n - STATE_COMPLETED: The pipeline has completed the job successfully.","enum":["STATE_STARTING","STATE_RUNNING","STATE_STOPPING","STATE_STOPPED","STATE_ERROR","STATE_COMPLETED"],"type":"string"},"Pipeline.Status":{"description":"Pipeline status may contain an error message.","properties":{"error":{"type":"string"}},"type":"object"},"PipelineCreate":{"description":"PipelineCreate contains the details for the pipeline creation request.","properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","type":"string"},"description":{"description":"Pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"}},"required":["display_name","config_yaml"],"type":"object"},"PipelineUpdate":{"properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","type":"string"},"description":{"description":"Pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"}},"required":["display_name","config_yaml"],"type":"object"},"PipelinesForSecret":{"properties":{"pipelines":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"},"secret_id":{"type":"string"}},"type":"object"},"Policy":{"properties":{"host":{"description":"The host address for this ACL.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies.","type":"string"}},"type":"object"},"QuotaFailure":{"description":"Describes how a quota check failed.\n\nFor example if a daily limit was exceeded for the calling project,\na service could respond with a QuotaFailure detail containing the project\nid and the description of the quota limit that was exceeded. If the\ncalling project hasn't enabled the service in the developer console, then\na service could respond with the project id and set `service_disabled`\nto true.\n\nAlso see RetryInfo and Help types for other details about handling a\nquota failure.","properties":{"violations":{"description":"Describes all quota violations.","items":{"$ref":"#/components/schemas/QuotaFailure.Violation"},"type":"array"}},"title":"QuotaFailure","type":"object"},"QuotaFailure.Violation":{"description":"A message type used to describe a single quota violation. For example, a\ndaily quota or a custom quota that was exceeded.","properties":{"api_service":{"description":"The API Service from which the `QuotaFailure.Violation` orginates. In\nsome cases, Quota issues originate from an API Service other than the one\nthat was called. In other words, a dependency of the called API Service\ncould be the cause of the `QuotaFailure`, and this field would have the\ndependency API service name.\n\nFor example, if the called API is Kubernetes Engine API\n(container.googleapis.com), and a quota violation occurs in the\nKubernetes Engine API itself, this field would be\n\"container.googleapis.com\". On the other hand, if the quota violation\noccurs when the Kubernetes Engine API creates VMs in the Compute Engine\nAPI (compute.googleapis.com), this field would be\n\"compute.googleapis.com\".","type":"string"},"description":{"description":"A description of how the quota check failed. Clients can use this\ndescription to find more about the quota configuration in the service's\npublic documentation, or find the relevant quota limit to adjust through\ndeveloper console.\n\nFor example: \"Service disabled\" or \"Daily Limit for read operations\nexceeded\".","type":"string"},"future_quota_value":{"description":"The new quota value being rolled out at the time of the violation. At the\ncompletion of the rollout, this value will be enforced in place of\nquota_value. If no rollout is in progress at the time of the violation,\nthis field is not set.\n\nFor example, if at the time of the violation a rollout is in progress\nchanging the number of CPUs quota from 10 to 20, 20 would be the value of\nthis field.","format":"int64","nullable":true,"type":"string"},"quota_dimensions":{"additionalProperties":{"type":"string"},"description":"The dimensions of the violated quota. Every non-global quota is enforced\non a set of dimensions. While quota metric defines what to count, the\ndimensions specify for what aspects the counter should be increased.\n\nFor example, the quota \"CPUs per region per VM family\" enforces a limit\non the metric \"compute.googleapis.com/cpus_per_vm_family\" on dimensions\n\"region\" and \"vm_family\". And if the violation occurred in region\n\"us-central1\" and for VM family \"n1\", the quota_dimensions would be,\n\n{\n \"region\": \"us-central1\",\n \"vm_family\": \"n1\",\n}\n\nWhen a quota is enforced globally, the quota_dimensions would always be\nempty.","type":"object"},"quota_id":{"description":"The id of the violated quota. Also know as \"limit name\", this is the\nunique identifier of a quota in the context of an API service.\n\nFor example, \"CPUS-PER-VM-FAMILY-per-project-region\".","type":"string"},"quota_metric":{"description":"The metric of the violated quota. A quota metric is a named counter to\nmeasure usage, such as API requests or CPUs. When an activity occurs in a\nservice, such as Virtual Machine allocation, one or more quota metrics\nmay be affected.\n\nFor example, \"compute.googleapis.com/cpus_per_vm_family\",\n\"storage.googleapis.com/internet_egress_bandwidth\".","type":"string"},"quota_value":{"description":"The enforced quota value at the time of the `QuotaFailure`.\n\nFor example, if the enforced quota value at the time of the\n`QuotaFailure` on the number of CPUs is \"10\", then the value of this\nfield would reflect this quantity.","format":"int64","type":"string"},"subject":{"description":"The subject on which the quota check failed.\nFor example, \"clientip:\u003cip address of client\u003e\" or \"project:\u003cGoogle\ndeveloper project id\u003e\".","type":"string"}},"type":"object"},"ReplicaAssignment":{"properties":{"partition_id":{"description":"A partition to create.","format":"int32","type":"integer"},"replica_ids":{"description":"The broker IDs the partition replicas are assigned to.","items":{"format":"int32","type":"integer"},"type":"array"}},"type":"object"},"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"},"ResourcePatternType":{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"},"ResourceType":{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER"],"type":"string"},"Resources":{"properties":{"cpu_shares":{"description":"`cpu_shares` is a string specifying the amount of CPU to allocate for the\npipeline.\n\nThis follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable\nunits include:\n- Decimal SI units: \"m\" (e.g., \"500m\" for 500 millicores, \"2\" for 2 cores)\nCPU shares can be specified in millicores (1 core = 1000 millicores).\nIf you don't specify a unit, the value is interpreted as the number of cores.","type":"string"},"memory_shares":{"description":"`memory_shares` is a string specifying the amount of memory to allocate for\nthe pipeline.\n\nThis follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable units\ninclude:\n- Decimal SI units: \"K\", \"M\", \"G\", \"T\", \"P\", \"E\" (e.g., \"128M\" for 128\n megabytes)\n- Binary SI units: \"Ki\", \"Mi\", \"Gi\", \"Ti\", \"Pi\", \"Ei\" (e.g., \"512Mi\" for\n512 mebibytes) If you don't specify a unit, the value is interpreted as\nbytes.","type":"string"}},"required":["memory_shares","cpu_shares"],"type":"object"},"SASLMechanism":{"description":"SASL mechanism to use for authentication.","enum":["SASL_MECHANISM_SCRAM_SHA_256","SASL_MECHANISM_SCRAM_SHA_512"],"type":"string"},"Scope":{"description":"Defines the scope of a secret.","enum":["SCOPE_REDPANDA_CONNECT"],"type":"string"},"Secret":{"description":"Defines the secret resource.","properties":{"id":{"description":"Secret identifier.","readOnly":true,"type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"}},"type":"object"},"ServiceAccount":{"properties":{"client_id":{"type":"string"},"client_secret":{"type":"string"}},"type":"object"},"SetConfiguration":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"SetTopicConfigurationsResponse":{"properties":{"configurations":{"description":"Topic's complete set of configurations after this update.","items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"StartPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"StopPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"TaskInfo":{"properties":{"connector":{"description":"Name of connector.","type":"string"},"task":{"description":"The connector task ID.","format":"int32","type":"integer"}},"type":"object"},"TaskStatus":{"properties":{"id":{"description":"The connector task ID.","format":"int32","type":"integer"},"state":{"description":"State of connector task.","type":"string"},"trace":{"description":"String value of stack trace.","type":"string"},"worker_id":{"description":"ID of worker that the task is assigned to.","type":"string"}},"type":"object"},"TopicLocation":{"properties":{"name":{"description":"Topic name.","type":"string"},"topic_location":{"description":"Full reference for the unmounted topic in this format: `topic-name/cluster-uuid/revision`.\nUse this as unique identifier for mounting a topic if there are multiple topics available\nwith the same name.","type":"string"}},"type":"object"},"TopicMount":{"description":"TopicMount defines the migration of a topic from the cloud storage into this cluster,\nso that it becomes available via the Kafka API.","properties":{"alias":{"description":"Alias may be provided to mount the topic under a different name. Leave\nblank to re-use the source topic name. The alias does not persist if you\nunmount the topic again.","type":"string"},"source_topic_reference":{"description":"The topic name or full reference of the topic to mount. The full reference\nmust be used in case the same topic exists more than once. This may be the case if\nthe same topic has been unmounted multiple times. List all mountable topics to\nfind the full reference (contains topic name, cluster uuid and revision).","type":"string"}},"required":["source_topic_reference"],"type":"object"},"TransformMetadata":{"properties":{"environment_variables":{"description":"The environment variables you want to apply to your transform's environment","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":"array"},"input_topic_name":{"description":"Input topic to apply the transform to.","type":"string"},"name":{"description":"Name of transform.","type":"string"},"output_topic_names":{"description":"Output topics to write the transform results to.","items":{"type":"string"},"type":"array"},"statuses":{"items":{"$ref":"#/components/schemas/PartitionTransformStatus"},"type":"array"}},"type":"object"},"UnmountTopicsResponse":{"properties":{"mount_task_id":{"format":"int32","title":"ID of unmount","type":"integer"}},"type":"object"},"UpdateConfiguration":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"operation":{"$ref":"#/components/schemas/ConfigAlterOperation"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"UpdateConnectSecretBody":{"description":"UpdateConnectSecretRequest is the request of UpdateConnectSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"UpdateConnectSecretResponse":{"description":"UpdateConnectSecretResponse is the response of UpdateConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"UpdateMountTaskBody":{"properties":{"action":{"$ref":"#/components/schemas/Action"}},"required":["action"],"type":"object"},"UpdateMountTaskResponse":{"type":"object"},"UpdatePipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"UpdateSecretBody":{"description":"UpdateSecretRequest is the request of UpdateSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"UpdateSecretResponse":{"description":"UpdateSecretResponse is the response of UpdateSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"UpdateTopicConfigurationsResponse":{"properties":{"configurations":{"description":"Topic's complete set of configurations after applying this partial patch.","items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"UpdateUserRequest.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"},"password":{"description":"Password.","type":"string"}},"type":"object"},"UpdateUserResponse":{"properties":{"user":{"$ref":"#/components/schemas/UpdateUserResponse.User"}},"type":"object"},"UpdateUserResponse.User":{"description":"Updated user's name and SASL mechanism.","properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"type":"string"}},"type":"object"},"UpsertConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"rpc.Status":{"description":"The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).","properties":{"code":{"description":"RPC status code, as described [here](https://github.com/googleapis/googleapis/blob/b4c238feaa1097c53798ed77035bbfeb7fc72e96/google/rpc/code.proto#L32).","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"],"format":"int32","type":"string"},"details":{"items":{"description":"Details of the error.","oneOf":[{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.BadRequest"],"type":"string"}}},{"$ref":"#/components/schemas/BadRequest"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.ErrorInfo"],"type":"string"}}},{"$ref":"#/components/schemas/ErrorInfo"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.QuotaFailure"],"type":"string"}}},{"$ref":"#/components/schemas/QuotaFailure"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.Help"],"type":"string"}}},{"$ref":"#/components/schemas/Help"}]}]},"type":"array"},"message":{"description":"Detailed error message. No compatibility guarantees are given for the text contained in this message.","type":"string"}},"type":"object"}},"securitySchemes":{"auth0":{"description":"RedpandaCloud","flows":{"implicit":{"authorizationUrl":"https://auth.prd.cloud.redpanda.com/oauth/authorize","scopes":{},"x-client-id":"dQjapNIAHhF7EQqQToRla3yEII9sUSap"}},"type":"oauth2"}}},"info":{"title":"Redpanda Cloud Data Plane API","version":"v1alpha2"},"openapi":"3.0.3","paths":{"/v1alpha2/acls":{"delete":{"description":"Delete all ACLs that match the filter criteria. The `filter.` query string parameters find matching ACLs that meet all specified conditions.","operationId":"ACLService_DeleteACLs","parameters":[{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","in":"query","name":"filter.resource_type","required":true,"schema":{"enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER"],"type":"string"}},{"description":"The name of the resource this ACL targets.","in":"query","name":"filter.resource_name","schema":{"type":"string"}},{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","in":"query","name":"filter.resource_pattern_type","required":true,"schema":{"enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"}},{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","in":"query","name":"filter.host","schema":{"type":"string"}},{"description":"The operation that is allowed or denied (e.g. READ).","in":"query","name":"filter.operation","required":true,"schema":{"enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"}},{"description":"Whether the operation should be allowed or denied.","in":"query","name":"filter.permission_type","required":true,"schema":{"enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteACLsResponse"}}},"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":"Delete ACLs","tags":["Redpanda ACLs (v1alpha2)"]},"get":{"description":"List all ACLs. The `filter.` query string parameters find matching ACLs that meet all specified conditions.","operationId":"ACLService_ListACLs","parameters":[{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","in":"query","name":"filter.resource_type","schema":{"enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER"],"type":"string"}},{"description":"The name of the resource this ACL targets.","in":"query","name":"filter.resource_name","schema":{"type":"string"}},{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","in":"query","name":"filter.resource_pattern_type","schema":{"enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"}},{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","in":"query","name":"filter.host","schema":{"type":"string"}},{"description":"The operation that is allowed or denied (e.g. READ).","in":"query","name":"filter.operation","schema":{"enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"}},{"description":"Whether the operation should be allowed or denied.","in":"query","name":"filter.permission_type","schema":{"enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListACLsResponse"}}},"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":"List ACLs","tags":["Redpanda ACLs (v1alpha2)"]},"post":{"description":"Create a new ACL.","operationId":"ACLService_CreateACL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateACLRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateACLResponse"}}},"description":"Created"},"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":"Create ACL","tags":["Redpanda ACLs (v1alpha2)"]}},"/v1alpha2/cloud-storage/mount-tasks":{"get":{"description":"This operation retrieves the status of a task responsible for mounting or unmounting topics. It provides details on the task’s type (mount or unmount), its current state, and the topics involved.","operationId":"CloudStorageService_ListMountTasks","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMountTasksResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Retrieve the mount task status","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/cloud-storage/mount-tasks/{id}":{"delete":{"description":"Delete a mount or unmount by ID.","operationId":"CloudStorageService_DeleteMountTask","parameters":[{"description":"Unique identifier of the mount or unmount task to delete.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete a mount or unmount","tags":["Cloud Storage (v1alpha2)"]},"get":{"description":"Retrieves the status of a mount or unmount by ID. The response provides details on the operation type (mount or unmount), its current state, and the topics involved. Use the ID returned when you start the mount or unmount, or use the ListMountTasks endpoint to retrieve a list of IDs.","operationId":"CloudStorageService_GetMountTask","parameters":[{"description":"Unique identifier of the mount or unmount task to retrieve.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get the status of a mount or unmount by ID","tags":["Cloud Storage (v1alpha2)"]},"post":{"description":"This operation allows performing an action on an ongoing mount task.","operationId":"CloudStorageService_UpdateMountTask","parameters":[{"description":"ID is the unique identifier of the mount or unmount to update.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMountTaskBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update a mount or unmount","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/cloud-storage/topics/mount":{"post":{"description":"Attach mountable topics from object storage to a cluster, making them available for consumption and production again. Mounting a topic reloads its data and state to the local brokers, allowing active use of the topic.","operationId":"CloudStorageService_MountTopics","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TopicMount"},"required":["topics"],"type":"array"}}},"required":true,"x-originalParamName":"topics"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MountTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Mount topics from object storage","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/cloud-storage/topics/mountable":{"get":{"description":"Retrieve all topics that are currently unmounted and available to be mounted to the cluster. These topics reside in object storage and can be mounted for consumption or production within the cluster.","operationId":"CloudStorageService_ListMountableTopics","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMountableTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"List mountable topics","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/cloud-storage/topics/unmount":{"post":{"description":"Unmount topics to object storage, freeing up all local cluster resources. Once you unmount a topic, it can no longer be consumed or produced to. It detaches from the active cluster while its data remains safely stored in the external object storage.","operationId":"CloudStorageService_UnmountTopics","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"required":["topics"],"type":"array"}}},"description":"List of topics to unmount.","required":true,"x-originalParamName":"topics"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnmountTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Unmount topics to object storage","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters":{"get":{"description":"List connect clusters available for being consumed by the console's kafka-connect service.","operationId":"KafkaConnectService_ListConnectClusters","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectClustersResponse"}}},"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":"List connect clusters","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}":{"get":{"description":"Get information about an available Kafka Connect cluster.","operationId":"KafkaConnectService_GetConnectCluster","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectCluster"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Connect cluster not found"},"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 connect cluster","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors":{"get":{"description":"List connectors managed by the Kafka Connect service.","operationId":"KafkaConnectService_ListConnectors","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectorsResponse"}}},"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":"List connectors","tags":["Kafka Connect (v1alpha2)"]},"post":{"description":"Create a connector with the specified configuration.","operationId":"KafkaConnectService_CreateConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"required":true,"x-originalParamName":"connector"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Created"},"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":"Create connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}":{"delete":{"description":"Delete a connector. This operation force stops all tasks and also deletes the connector configuration.","operationId":"KafkaConnectService_DeleteConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Deleted"},"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":"Delete connector","tags":["Kafka Connect (v1alpha2)"]},"get":{"description":"Get information about a connector in a specific cluster.","operationId":"KafkaConnectService_GetConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"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 connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/config":{"get":{"description":"Get the configuration for the connector.","operationId":"KafkaConnectService_GetConnectorConfig","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"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 connector configuration","tags":["Kafka Connect (v1alpha2)"]},"put":{"description":"Update the configuration for an existing connector with the specified name, or create a new connector using the given configuration. Returns information about the connector after the change has been made.","operationId":"KafkaConnectService_UpsertConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector. If a connector with this name does not already exist, a new connector is created.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"required":["config"],"type":"object"}}},"description":"Connector configuration property.","required":true,"x-originalParamName":"config"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Updated"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Created"},"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":"Upsert connector configuration","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/pause":{"put":{"description":"Pause the connector and its tasks, which stops messages from processing until the connector is resumed. This call is asynchronous and may take some time to process.","operationId":"KafkaConnectService_PauseConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Pause request accepted"},"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":"Pause connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/restart":{"post":{"description":"Triggers a connector restart. You must specify whether or not tasks are also restarted, and whether only failed connectors are restarted.","operationId":"KafkaConnectService_RestartConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Options"}}},"required":true,"x-originalParamName":"options"},"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Restart connector request success"},"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":"Restart connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/resume":{"put":{"description":"Resume a paused connector and its tasks, and resumes message processing. This call is asynchronous and may take some time to process. If the connector was not paused, this operation does not do anything.","operationId":"KafkaConnectService_ResumeConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Resume request accepted"},"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":"Resume connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/status":{"get":{"description":"Gets the current status of the connector, including the state for each of its tasks, error information, etc.","operationId":"KafkaConnectService_GetConnectorStatus","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorStatus"}}},"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 connector status","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/stop":{"put":{"description":"Stops a connector, but does not delete it. All tasks for the connector are shut down completely. This call is asynchronous and may take some time to process.","operationId":"KafkaConnectService_StopConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Request accepted"},"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":"Stop connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics":{"get":{"description":"Returns a list of connector topic names. If the connector is inactive, this call returns an empty list.","operationId":"KafkaConnectService_ListConnectorTopics","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectorTopicsResponse"}}},"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":"List connector topics","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics/reset":{"put":{"description":"Resets the set of topic names that the connector is using.","operationId":"KafkaConnectService_ResetConnectorTopics","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector using the topics to be reset.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"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":"Reset connector topics","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/secrets":{"get":{"description":"List Kafka Connect cluster secrets. Optional: filter based on secret name and labels.","operationId":"SecretService_ListConnectSecrets","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Substring match on secret name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"filter.labels[string][string]","schema":{"type":"string"}},{"description":"Secret scopes to search for","in":"query","name":"filter.scopes","schema":{"items":{"enum":["SCOPE_REDPANDA_CONNECT"],"type":"string"},"type":"array"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}},"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":"List Connect Cluster Secrets","tags":["Secrets (v1alpha2)"]},"post":{"description":"Create a Kafka Connect cluster secret.","operationId":"SecretService_CreateConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConnectSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"Secret created"},"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":"Create Connect Cluster Secret","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/secrets/{id}":{"delete":{"description":"Delete a Kafka Connect cluster secret.","operationId":"SecretService_DeleteConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"ID of the secret to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Secret deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete Connect Cluster Secret","tags":["Secrets (v1alpha2)"]},"get":{"description":"Get a specific Kafka Connect cluster secret.","operationId":"SecretService_GetConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"The ID of the secret to retrieve.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Connect Cluster Secret","tags":["Secrets (v1alpha2)"]},"put":{"description":"Update a Kafka Connect cluster secret.","operationId":"SecretService_UpdateConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"ID of the secret to update.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConnectSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update Connect Cluster Secret","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/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.","operationId":"PipelineService_GetPipelineServiceConfigSchema","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelineServiceConfigSchemaResponse"}}},"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 schema for Redpanda Connect pipeline configurations.","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines":{"get":{"description":"List Redpanda Connect pipelines. Optional: filter based on pipeline name.","operationId":"PipelineService_ListPipelines","parameters":[{"description":"Substring match on pipeline name. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPipelinesResponse"}}},"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":"List Redpanda Connect pipelines","tags":["Redpanda Connect Pipeline (v1alpha2)"]},"post":{"description":"Create a new Redpanda Connect pipeline.","operationId":"PipelineService_CreatePipeline","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineCreate"}}},"required":true,"x-originalParamName":"pipeline"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"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":"Create Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines-by-secrets":{"get":{"description":"Get Redpanda Connect pipelines by secrets.","operationId":"PipelineService_GetPipelinesBySecrets","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelinesBySecretsResponse"}}},"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 Redpanda Connect pipelines by secrets","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines-for-secret":{"get":{"description":"Get Redpanda Connect pipelines for a given secret.","operationId":"PipelineService_GetPipelinesForSecret","parameters":[{"description":"Secret ID.","in":"query","name":"secret_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelinesForSecretResponse"}}},"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 Redpanda Connect pipelines for secret","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines/{id}":{"delete":{"description":"Delete a Redpanda Connect pipeline.","operationId":"PipelineService_DeletePipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete a Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]},"get":{"description":"Get a specific Redpanda Connect pipeline.","operationId":"PipelineService_GetPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]},"put":{"description":"Update the [configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) of a Redpanda Connect pipeline.","operationId":"PipelineService_UpdatePipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineUpdate"}}},"required":true,"x-originalParamName":"pipeline"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"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":"Update a Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines/{id}/start":{"put":{"description":"Start a stopped Redpanda Connect pipeline.","operationId":"PipelineService_StartPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"Started"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Start a Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines/{id}/stop":{"put":{"description":"Stop a running Redpanda Connect pipeline.","operationId":"PipelineService_StopPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"Stopped"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Stops a Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/secret-scopes":{"get":{"description":"List supported secret scopes.","operationId":"SecretService_ListSecretScopes","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretScopesResponse"}}},"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":"List Secret Scopes","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/secrets":{"get":{"description":"List secrets. Optional: filter based on secret name and labels.","operationId":"SecretService_ListSecrets","parameters":[{"description":"Substring match on secret name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"filter.labels[string]","schema":{"type":"string"}},{"description":"Secret scopes to search for","in":"query","name":"filter.scopes","schema":{"items":{"enum":["SCOPE_REDPANDA_CONNECT"],"type":"string"},"type":"array"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}},{"description":"Limit the paginated response to a number of items.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}},"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":"List Secrets","tags":["Secrets (v1alpha2)"]},"post":{"description":"Create a secret.","operationId":"SecretService_CreateSecret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecretRequest"}}},"description":"CreateSecretRequest is the request of CreateSecret.","required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"Secret created"},"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":"Create Secret","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/secrets/{id}":{"delete":{"description":"Delete a secret.","operationId":"SecretService_DeleteSecret","parameters":[{"description":"The id of the secret to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Secret deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete Secret","tags":["Secrets (v1alpha2)"]},"get":{"description":"Get a secret.","operationId":"SecretService_GetSecret","parameters":[{"description":"The id of the secret to retrieve.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Secret","tags":["Secrets (v1alpha2)"]},"put":{"description":"Update a secret.","operationId":"SecretService_UpdateSecret","parameters":[{"description":"Secret identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update Secret","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/topics":{"get":{"description":"List topics, with partition count and replication factor. Optional: filter based on topic name.","operationId":"TopicService_ListTopics","parameters":[{"description":"Substring match on topic name. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTopicsResponse"}}},"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":"List Topics","tags":["Topics (v1alpha2)"]},"post":{"description":"Create a [topic](https://docs.redpanda.com/current/deploy/deployment-option/cloud/create-topic/).","operationId":"TopicService_CreateTopic","parameters":[{"description":"If true, makes this request a dry run; everything is validated but\nno topics are actually created.","in":"query","name":"validate_only","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicRequest.Topic"}}},"description":"The topic to create.","required":true,"x-originalParamName":"topic"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicResponse"}}},"description":"Topic created"},"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":"Create Topic","tags":["Topics (v1alpha2)"]}},"/v1alpha2/topics/{name}":{"delete":{"description":"Delete the Kafka topic with the requested name.","operationId":"TopicService_DeleteTopic","parameters":[{"description":"Topic name.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Topic deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Requested topic does not exist"},"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":"Delete Topic","tags":["Topics (v1alpha2)"]}},"/v1alpha2/topics/{topic_name}/configurations":{"get":{"description":"Get key-value configs for a topic.","operationId":"TopicService_GetTopicConfigurations","parameters":[{"description":"Topic name","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Topic Configurations","tags":["Topics (v1alpha2)"]},"patch":{"description":"Update a subset of the topic configurations.","operationId":"TopicService_UpdateTopicConfigurations","parameters":[{"description":"Topic name","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateConfiguration"},"type":"array"}}},"required":true,"x-originalParamName":"configurations"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update Topic Configuration","tags":["Topics (v1alpha2)"]},"put":{"description":"Update the entire set of key-value configurations for a topic. Config entries that are not provided in the request are removed and will fall back to their default values.","operationId":"TopicService_SetTopicConfigurations","parameters":[{"description":"Name of topic.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SetConfiguration"},"type":"array"}}},"required":true,"x-originalParamName":"configurations"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Set Topic Configurations","tags":["Topics (v1alpha2)"]}},"/v1alpha2/transforms":{"get":{"description":"Retrieve a list of Wasm transforms. Optional: filter based on transform name.","operationId":"TransformService_ListTransforms","parameters":[{"description":"Substring match on transform name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"example":{"next_page_token":"","transforms":[{"environment_variables":[],"input_topic_name":"topic1","name":"transform1","output_topic_names":["output-topic11","output-topic12"],"statuses":[{"broker_id":1,"lag":1,"partition_id":1,"status":"PARTITION_STATUS_RUNNING"}]},{"environment_variables":[],"input_topic_name":"topic2","name":"transform2","output_topic_names":["output-topic21","output-topic22"],"statuses":[{"broker_id":2,"lag":2,"partition_id":2,"status":"PARTITION_STATUS_RUNNING"}]}]},"schema":{"$ref":"#/components/schemas/ListTransformsResponse"}}},"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":"List Transforms","tags":["WASM Transforms (v1alpha2)"]},"put":{"description":"Initiate deployment of a new Wasm transform. This endpoint uses multipart/form-data encoding. Following deployment, a brief period is required before the Wasm transform becomes operational. Monitor the partition statuses to check whether the transform is active. This usually takes around 3s, but no longer than 10s.","operationId":"TransformService_DeployTransform","requestBody":{"content":{"multipart/form-data":{"schema":{"example":"{\"name\":\"redact-orders\", \"input_topic_name\":\"orders\", \"output_topic_names\":[\"orders-redacted\"], \"environment_variables\":[{\"key\":\"LOGGER_LEVEL\", \"value\":\"DEBUG\"}]}","properties":{"metadata":{"$ref":"#/components/schemas/DeployTransformRequest"},"wasm_binary":{"description":"Binary file containing the compiled WASM transform. The maximum size for this file is 10MiB.","format":"binary","type":"string"}},"type":"object"}}},"description":"Transform metadata as well as the WASM binary","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransformMetadata"}}},"description":"Created"}},"summary":"Deploy Transform","tags":["WASM Transforms (v1alpha2)"]}},"/v1alpha2/transforms/{name}":{"delete":{"description":"Delete a Wasm transform with the requested name.","operationId":"TransformService_DeleteTransform","parameters":[{"description":"Name of transform.","example":{"name":"transform1"},"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"example":{},"schema":{}}},"description":"Transform deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete Transform","tags":["WASM Transforms (v1alpha2)"]},"get":{"description":"Get a specific Wasm transform.","operationId":"TransformService_GetTransform","parameters":[{"description":"Name of transform.","example":{"name":"transform1"},"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"transform":{"environment_variables":[],"input_topic_name":"topic1","name":"transform1","output_topic_names":["output-topic1","output-topic2"],"statuses":[{"broker_id":1,"lag":1,"partition_id":1,"status":"PARTITION_STATUS_RUNNING"}]}},"schema":{"$ref":"#/components/schemas/GetTransformResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Transform","tags":["WASM Transforms (v1alpha2)"]}},"/v1alpha2/users":{"get":{"description":"List users. Optional: filter based on username.","operationId":"UserService_ListUsers","parameters":[{"description":"Username.","in":"query","name":"filter.name","schema":{"type":"string"}},{"description":"Substring match on username. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"next_page_token":"","users":[{"name":"payment-service"},{"name":"jane"}]},"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}},"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":"List Users","tags":["Redpanda Users (v1alpha2)"]},"post":{"description":"Create a new user.","operationId":"UserService_CreateUser","requestBody":{"content":{"application/json":{"example":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service","password":"secure-password"},"schema":{"$ref":"#/components/schemas/CreateUserRequest.User"}}},"required":true,"x-originalParamName":"user"},"responses":{"201":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service"}},"schema":{"$ref":"#/components/schemas/CreateUserRequest.User"}}},"description":"User created"},"400":{"content":{"application/json":{"example":{"code":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_INVALID_INPUT"},{"@type":"type.googleapis.com/google.rpc.BadRequest","field_violations":[{"description":"value length must be at least 3 characters","field":"user.password","localized_message":null,"reason":""},{"description":"value is required","field":"user.mechanism","localized_message":null,"reason":""}]}],"message":"provided parameters are invalid"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Bad request. Check API documentation and update request."},"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":"Create User","tags":["Redpanda Users (v1alpha2)"]}},"/v1alpha2/users/{name}":{"delete":{"description":"Delete the specified user","operationId":"UserService_DeleteUser","parameters":[{"description":"Username","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"example":{},"schema":{}}},"description":"User deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"example":{"code":"NOT_FOUND","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_RESOURCE_NOT_FOUND"}],"message":"user not found"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Not Found"},"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":"Delete User","tags":["Redpanda Users (v1alpha2)"]}},"/v1alpha2/users/{user.name}":{"put":{"description":"Update a user's credentials.","operationId":"UserService_UpdateUser","parameters":[{"description":"Username.","in":"path","name":"user.name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","password":"new-password"}},"schema":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"password":{"description":"Password.","type":"string"}},"type":"object"}}},"required":true,"x-originalParamName":"user"},"responses":{"200":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service"}},"schema":{"$ref":"#/components/schemas/UpdateUserResponse.User"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"code":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_INVALID_INPUT"},{"@type":"type.googleapis.com/google.rpc.BadRequest","field_violations":[{"description":"value length must be at least 3 characters","field":"user.password","localized_message":null,"reason":""},{"description":"value is required","field":"user.mechanism","localized_message":null,"reason":""}]}],"message":"provided parameters are invalid"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Bad request. Check API documentation and update request."},"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":"Update User","tags":["Redpanda Users (v1alpha2)"]}}},"security":[{"auth0":[]}],"servers":[{"description":"Data Plane API","url":"{dataplane_api_url}","variables":{"dataplane_api_url":{"default":"https://{dataplane_api_url}","description":"Find the Data Plane API base URL of a cluster by calling the Get Cluster endpoint of the Control Plane API. The dataplane_api.url field is returned in the response body.\u003cbr\u003e\u003cbr\u003e\n\t\t\t\t\tExample (Dedicated): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.fmc.prd.cloud.redpanda.com\"\u003cbr\u003e\n\t\t\t\t\tExample (BYOC): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.byoc.prd.cloud.redpanda.com\""}}}],"tags":[{"description":"Manage Redpanda access control lists (ACLs). See [Redpanda Cloud Authorization](https://docs.redpanda.com/redpanda-cloud/security/authorization/cloud-authorization/) for more information.","name":"Redpanda ACLs (v1alpha2)"},{"description":"Manage Redpanda topics stored in object storage. See: [Mountable Topics](https://docs.redpanda.com/redpanda-cloud/manage/mountable-topics/)","name":"Cloud Storage (v1alpha2)"},{"description":"Manage Wasm transforms in Redpanda.","name":"WASM Transforms (v1alpha2)"},{"description":"Manage [connectors](https://docs.redpanda.com/redpanda-cloud/develop/managed-connectors/) and interact with the Kafka Connect API.","name":"Kafka Connect (v1alpha2)"},{"description":"Create and manage [Redpanda Connect](https://docs.redpanda.com/redpanda-cloud/develop/connect/about) pipelines and their configurations.","name":"Redpanda Connect Pipeline (v1alpha2)"},{"description":"Manage [secrets](https://docs.redpanda.com/redpanda-cloud/security/secrets) for Redpanda Cloud.","name":"Secrets (v1alpha2)"},{"description":"Manage Redpanda topics.","name":"Topics (v1alpha2)"},{"description":"Manage Redpanda users. To manage access, see the Data Plane [ACL endpoints](https://docs.redpanda.com/api/cloud-dataplane-api/#get-/v1alpha2/acls).","name":"Redpanda Users (v1alpha2)"}]} \ No newline at end of file +{"components":{"schemas":{"ACL.Operation":{"description":"The operation that is allowed or denied (e.g. READ).","enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"},"Action":{"enum":["ACTION_PREPARE","ACTION_EXECUTE","ACTION_FINISH","ACTION_CANCEL"],"type":"string"},"BadRequest":{"description":"Describes violations in a client request. This error type focuses on the\nsyntactic aspects of the request.","properties":{"field_violations":{"description":"Describes all violations in a client request.","items":{"$ref":"#/components/schemas/FieldViolation"},"type":"array"}},"title":"BadRequest","type":"object"},"Config":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"ConfigAlterOperation":{"enum":["CONFIG_ALTER_OPERATION_SET","CONFIG_ALTER_OPERATION_DELETE","CONFIG_ALTER_OPERATION_APPEND","CONFIG_ALTER_OPERATION_SUBTRACT"],"type":"string"},"ConfigSource":{"enum":["CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG","CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG","CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG","CONFIG_SOURCE_STATIC_BROKER_CONFIG","CONFIG_SOURCE_DEFAULT_CONFIG","CONFIG_SOURCE_DYNAMIC_BROKER_LOGGER_CONFIG"],"type":"string"},"ConfigSynonym":{"properties":{"name":{"type":"string"},"source":{"$ref":"#/components/schemas/ConfigSource"},"value":{"nullable":true,"type":"string"}},"type":"object"},"ConfigType":{"enum":["CONFIG_TYPE_BOOLEAN","CONFIG_TYPE_STRING","CONFIG_TYPE_INT","CONFIG_TYPE_SHORT","CONFIG_TYPE_LONG","CONFIG_TYPE_DOUBLE","CONFIG_TYPE_LIST","CONFIG_TYPE_CLASS","CONFIG_TYPE_PASSWORD"],"type":"string"},"Configuration":{"properties":{"config_synonyms":{"description":"If no config value is set at the topic level, it will inherit the value\nset at the broker or cluster level. `name` is the corresponding config\nkey whose value is inherited. `source` indicates whether the inherited\nconfig is default, broker, etc.","items":{"$ref":"#/components/schemas/ConfigSynonym"},"type":"array"},"documentation":{"description":"Config documentation.","nullable":true,"type":"string"},"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"read_only":{"description":"Whether the config is read-only, or is dynamic and can be altered.","type":"boolean"},"sensitive":{"description":"Whether this is a sensitive config key and value.","type":"boolean"},"source":{"$ref":"#/components/schemas/ConfigSource"},"type":{"$ref":"#/components/schemas/ConfigType"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"ConnectCluster":{"properties":{"address":{"description":"The host address of the Kafka Connect cluster.","type":"string"},"info":{"$ref":"#/components/schemas/ConnectCluster.Info"},"name":{"description":"Unique name of connect cluster. For Redpanda Cloud, the value is `redpanda`.","type":"string"},"plugins":{"items":{"$ref":"#/components/schemas/ConnectorPlugin"},"type":"array"}},"type":"object"},"ConnectCluster.Info":{"properties":{"commit":{"description":"The git commit ID of the connect worker source code.","type":"string"},"kafka_cluster_id":{"description":"Cluster ID.","type":"string"},"version":{"description":"Connect worker version.","type":"string"}},"type":"object"},"Connector":{"properties":{"state":{"description":"State of the connector instance.","type":"string"},"trace":{"description":"String value of stack trace.","type":"string"},"worker_id":{"description":"ID of worker that the connector is assigned to.","type":"string"}},"type":"object"},"ConnectorError":{"properties":{"content":{"description":"Detailed description of the error.","type":"string"},"title":{"description":"Short description of the error.","type":"string"},"type":{"$ref":"#/components/schemas/ConnectorError.Type"}},"title":"ConnectorError is the error of a connector, this is holistic error\nabstraction, made parsing the error trace of connector or Task","type":"object"},"ConnectorError.Type":{"description":"Error level.","enum":["TYPE_ERROR","TYPE_WARNING"],"type":"string"},"ConnectorHolisticState":{"description":"State of a connector or one of its tasks, as described in the [Kafka Connect documentation](https://kafka.apache.org/documentation.html#connect_administration). Takes into account not just the state of the connector instance itself, but also the tasks within the connector.\n\n - CONNECTOR_HOLISTIC_STATE_PAUSED: The connector or task has been administratively paused.\n - CONNECTOR_HOLISTIC_STATE_RESTARTING: The connector or task is restarting.\n - CONNECTOR_HOLISTIC_STATE_DESTROYED: The connector is destroyed, regardless of any tasks.\n - CONNECTOR_HOLISTIC_STATE_STOPPED: The connector or task has been stopped.\n - CONNECTOR_HOLISTIC_STATE_UNASSIGNED: - The connector or task has not yet been assigned to a worker,\n- THe connector is running, but there are unassigned tasks.\n - CONNECTOR_HOLISTIC_STATE_HEALTHY: The connector is running, \u003e 0 tasks, all of them in running state.\n - CONNECTOR_HOLISTIC_STATE_UNHEALTHY: - The connector has failed,\n- The connector is running, but has no tasks,\n- Connector is running and has tasks, but all tasks have failed.\n - CONNECTOR_HOLISTIC_STATE_DEGRADED: The connector is running and has tasks, and at least one task, but not all, have failed.\n - CONNECTOR_HOLISTIC_STATE_UNKNOWN: The connector or task state could not be determined.","enum":["CONNECTOR_HOLISTIC_STATE_PAUSED","CONNECTOR_HOLISTIC_STATE_RESTARTING","CONNECTOR_HOLISTIC_STATE_DESTROYED","CONNECTOR_HOLISTIC_STATE_STOPPED","CONNECTOR_HOLISTIC_STATE_UNASSIGNED","CONNECTOR_HOLISTIC_STATE_HEALTHY","CONNECTOR_HOLISTIC_STATE_UNHEALTHY","CONNECTOR_HOLISTIC_STATE_DEGRADED","CONNECTOR_HOLISTIC_STATE_UNKNOWN"],"type":"string"},"ConnectorInfoStatus":{"properties":{"info":{"$ref":"#/components/schemas/ConnectorSpec"},"name":{"description":"Name of connector.","type":"string"},"status":{"$ref":"#/components/schemas/ConnectorStatus"}},"type":"object"},"ConnectorPlugin":{"properties":{"class":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"}},"type":"object"},"ConnectorSpec":{"description":"Connector specifications as defined in the Kafka Connect\nAPI. You may include this in the request body when creating a new connector.","properties":{"config":{"additionalProperties":{"type":"string"},"description":"Connector configuration properties.","type":"object"},"name":{"description":"Name of connector.","type":"string"},"tasks":{"items":{"$ref":"#/components/schemas/TaskInfo"},"readOnly":true,"type":"array"},"type":{"readOnly":true,"type":"string"}},"required":["name","config"],"type":"object"},"ConnectorStatus":{"properties":{"connector":{"$ref":"#/components/schemas/Connector"},"errors":{"description":"List of parsed connectors' and tasks' errors.","items":{"$ref":"#/components/schemas/ConnectorError"},"type":"array"},"holistic_state":{"$ref":"#/components/schemas/ConnectorHolisticState"},"name":{"description":"Name of connector.","type":"string"},"tasks":{"description":"Status of connector tasks. For more information, see the [https://docs.redpanda.com/current/deploy/deployment-option/cloud/managed-connectors/monitor-connectors/#connector-tasks](Monitor Connectors) documentation.","items":{"$ref":"#/components/schemas/TaskStatus"},"type":"array"},"type":{"description":"Type of connector (sink or source).","type":"string"}},"type":"object"},"CreateACLRequest":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.\nFor requests with resource_type CLUSTER, this will default to \"kafka-cluster\".","type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"required":["resource_type","resource_pattern_type","principal","host","operation","permission_type"],"type":"object"},"CreateACLResponse":{"type":"object"},"CreateConnectSecretBody":{"description":"CreateConnectSecretRequest is the request of CreateConnectSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"name":{"description":"Name of connector.","type":"string"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["name","secret_data"],"type":"object"},"CreateConnectSecretResponse":{"description":"CreateConnectSecretResponse is the response of CreateConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"CreateConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"CreatePipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"CreateSecretRequest":{"description":"CreateSecretRequest is the request of CreateSecret.","properties":{"id":{"description":"Secret identifier.","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"CreateSecretResponse":{"description":"CreateSecretResponse is the response of CreateSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"CreateTopicRequest.Topic":{"properties":{"configs":{"description":"An array of key-value config pairs for a topic.\nThese correspond to Kafka topic-level configs.","items":{"$ref":"#/components/schemas/Config"},"type":"array"},"name":{"description":"Name of topic.","type":"string"},"partition_count":{"description":"The number of partitions to give the topic. If specifying\npartitions manually (see `replica_assignments`), set to -1.\nOr, to use the cluster default partition count, set to null.","format":"int32","nullable":true,"type":"integer"},"replica_assignments":{"description":"Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both `replication_factor` and\n`partition_count` must be -1.","items":{"$ref":"#/components/schemas/ReplicaAssignment"},"type":"array"},"replication_factor":{"description":"The number of replicas every partition must have.\nIf specifying partitions manually (see `replica_assignments`), set to -1.\nOr, to use the cluster default replication factor, set to null.","format":"int32","nullable":true,"type":"integer"}},"type":"object"},"CreateTopicResponse":{"properties":{"name":{"description":"Name of topic.","type":"string"},"partition_count":{"description":"The number of partitions created for the topic.\nThis field has a default value of -1, which may be returned if the broker\ndoes not support v5+ of this request which added support for returning\nthis information.","format":"int32","type":"integer"},"replication_factor":{"description":"The number of replicas per topic partition.\nThis field has a default of -1, which may be returned if the broker\ndoes not support v5+ of this request which added support for returning\nthis information.","format":"int32","type":"integer"}},"type":"object"},"CreateUserRequest.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"},"password":{"description":"Password.","type":"string"}},"type":"object"},"CreateUserResponse":{"properties":{"user":{"$ref":"#/components/schemas/CreateUserResponse.User"}},"type":"object"},"CreateUserResponse.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"title":"Name of newly-created user","type":"string"}},"type":"object"},"DeleteACLsRequest.Filter":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","nullable":true,"type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","nullable":true,"type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.","nullable":true,"type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"required":["resource_type","resource_pattern_type","operation","permission_type"],"type":"object"},"DeleteACLsResponse":{"properties":{"matching_acls":{"items":{"$ref":"#/components/schemas/MatchingACL"},"type":"array"}},"type":"object"},"DeleteConnectSecretResponse":{"description":"DeleteConnectSecretResponse is the response of DeleteConnectSecret.","type":"object"},"DeleteMountTaskResponse":{"type":"object"},"DeletePipelineResponse":{"type":"object"},"DeleteSecretResponse":{"description":"DeleteSecretResponse is the response of DeleteSecret.","type":"object"},"DeleteTopicResponse":{"type":"object"},"DeleteTransformResponse":{"type":"object"},"DeleteUserResponse":{"type":"object"},"DeployTransformRequest":{"description":"Metadata required to deploy a new Wasm\ntransform in a Redpanda cluster.","properties":{"environment_variables":{"description":"The environment variables you want to apply to your transform's environment","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":"array"},"input_topic_name":{"description":"The input topic to apply the transform to.","example":"orders","type":"string"},"name":{"description":"Name of the transform.","example":"redact-payment-details-in-orders","type":"string"},"output_topic_names":{"description":"Output topic to write the transform results to.","example":"orders-redacted","items":{"type":"string"},"type":"array"}},"required":["name","input_topic_name","output_topic_names"],"type":"object"},"EnvironmentVariable":{"properties":{"key":{"description":"The key of your environment variable.","example":"LOG_LEVEL","type":"string"},"value":{"description":"The value of your environment variable.","example":"DEBUG","type":"string"}},"required":["key","value"],"type":"object"},"ErrorInfo":{"description":"Describes the cause of the error with structured details.\n\nExample of an error when contacting the \"pubsub.googleapis.com\" API when it\nis not enabled:\n\n { \"reason\": \"API_DISABLED\"\n \"domain\": \"googleapis.com\"\n \"metadata\": {\n \"resource\": \"projects/123\",\n \"service\": \"pubsub.googleapis.com\"\n }\n }\n\nThis response indicates that the pubsub.googleapis.com API is not enabled.\n\nExample of an error that is returned when attempting to create a Spanner\ninstance in a region that is out of stock:\n\n { \"reason\": \"STOCKOUT\"\n \"domain\": \"spanner.googleapis.com\",\n \"metadata\": {\n \"availableRegions\": \"us-central1,us-east2\"\n }\n }","properties":{"domain":{"description":"The logical grouping to which the \"reason\" belongs. The error domain\nis typically the registered service name of the tool or product that\ngenerates the error. Example: \"pubsub.googleapis.com\". If the error is\ngenerated by some common infrastructure, the error domain must be a\nglobally unique value that identifies the infrastructure. For Google API\ninfrastructure, the error domain is \"googleapis.com\".","type":"string"},"metadata":{"additionalProperties":{"type":"string"},"description":"Additional structured details about this error.\n\nKeys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should\nideally be lowerCamelCase. Also, they must be limited to 64 characters in\nlength. When identifying the current value of an exceeded limit, the units\nshould be contained in the key, not the value. For example, rather than\n`{\"instanceLimit\": \"100/request\"}`, should be returned as,\n`{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of\ninstances that can be created in a single (batch) request.","type":"object"},"reason":{"description":"The reason of the error. This is a constant value that identifies the\nproximate cause of the error. Error reasons are unique within a particular\ndomain of errors. This should be at most 63 characters and match a\nregular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents\nUPPER_SNAKE_CASE.","type":"string"}},"title":"ErrorInfo","type":"object"},"FieldViolation":{"description":"A message type used to describe a single bad request field.","properties":{"description":{"description":"A description of why the request element is bad.","type":"string"},"field":{"description":"A path that leads to a field in the request body. The value will be a\nsequence of dot-separated identifiers that identify a protocol buffer\nfield.\n\nConsider the following:\n\n message CreateContactRequest {\n message EmailAddress {\n enum Type {\n TYPE_UNSPECIFIED = 0;\n HOME = 1;\n WORK = 2;\n }\n\n optional string email = 1;\n repeated EmailType type = 2;\n }\n\n string full_name = 1;\n repeated EmailAddress email_addresses = 2;\n }\n\nIn this example, in proto `field` could take one of the following values:\n\n* `full_name` for a violation in the `full_name` value\n* `email_addresses[1].email` for a violation in the `email` field of the\n first `email_addresses` message\n* `email_addresses[3].type[2]` for a violation in the second `type`\n value in the third `email_addresses` message.\n\nIn JSON, the same values are represented as:\n\n* `fullName` for a violation in the `fullName` value\n* `emailAddresses[1].email` for a violation in the `email` field of the\n first `emailAddresses` message\n* `emailAddresses[3].type[2]` for a violation in the second `type`\n value in the third `emailAddresses` message.","type":"string"},"localized_message":{"$ref":"#/components/schemas/LocalizedMessage"},"reason":{"description":"The reason of the field-level error. This is a constant value that\nidentifies the proximate cause of the field-level error. It should\nuniquely identify the type of the FieldViolation within the scope of the\ngoogle.rpc.ErrorInfo.domain. This should be at most 63\ncharacters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`,\nwhich represents UPPER_SNAKE_CASE.","type":"string"}},"type":"object"},"GetConnectClusterResponse":{"properties":{"cluster":{"$ref":"#/components/schemas/ConnectCluster"}},"type":"object"},"GetConnectSecretResponse":{"description":"GetConnectSecretResponse is the response of GetConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"GetConnectorConfigResponse":{"properties":{"config":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"GetConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"GetConnectorStatusResponse":{"properties":{"status":{"$ref":"#/components/schemas/ConnectorStatus"}},"type":"object"},"GetMountTaskResponse":{"properties":{"task":{"$ref":"#/components/schemas/MountTask"}},"type":"object"},"GetPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"GetPipelineServiceConfigSchemaResponse":{"properties":{"config_schema":{"description":"JSON schema of the configuration components that are allowed for Connect pipelines.","type":"string"}},"type":"object"},"GetPipelinesBySecretsResponse":{"properties":{"pipelines_for_secret":{"items":{"$ref":"#/components/schemas/PipelinesForSecret"},"type":"array"}},"type":"object"},"GetPipelinesForSecretResponse":{"properties":{"pipelines_for_secret":{"$ref":"#/components/schemas/PipelinesForSecret"}},"type":"object"},"GetSecretResponse":{"description":"GetSecretResponse is the response of GetSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"GetTopicConfigurationsResponse":{"properties":{"configurations":{"items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"GetTransformResponse":{"properties":{"transform":{"$ref":"#/components/schemas/TransformMetadata"}},"type":"object"},"Help":{"description":"Provides links to documentation or for performing an out of band action.\n\nFor example, if a quota check failed with an error indicating the calling\nproject hasn't enabled the accessed service, this can contain a URL pointing\ndirectly to the right place in the developer console to flip the bit.","properties":{"links":{"description":"URL(s) pointing to additional information on handling the current error.","items":{"$ref":"#/components/schemas/Link"},"type":"array"}},"title":"Help","type":"object"},"Link":{"description":"Describes a URL link.","properties":{"description":{"description":"Describes what the link offers.","type":"string"},"url":{"description":"The URL of the link.","type":"string"}},"type":"object"},"ListACLsRequest.Filter":{"properties":{"host":{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","nullable":true,"type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","nullable":true,"type":"string"},"resource_name":{"description":"The name of the resource this ACL targets.","nullable":true,"type":"string"},"resource_pattern_type":{"$ref":"#/components/schemas/ResourcePatternType"},"resource_type":{"$ref":"#/components/schemas/ResourceType"}},"type":"object"},"ListACLsResponse":{"properties":{"resources":{"items":{"$ref":"#/components/schemas/Resource"},"type":"array"}},"type":"object"},"ListConnectClustersResponse":{"properties":{"clusters":{"items":{"$ref":"#/components/schemas/ConnectCluster"},"type":"array"}},"type":"object"},"ListConnectSecretsResponse":{"description":"ListConnectSecretsResponse is the response of ListConnectSecrets.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"secrets":{"description":"Secrets retrieved.","items":{"$ref":"#/components/schemas/Secret"},"type":"array"}},"type":"object"},"ListConnectorTopicsResponse":{"properties":{"topics":{"description":"Topic names.","items":{"type":"string"},"type":"array"}},"type":"object"},"ListConnectorsResponse":{"properties":{"connectors":{"description":"List of connectors, where the parent key is the connector name.","items":{"$ref":"#/components/schemas/ConnectorInfoStatus"},"type":"array"},"next_page_token":{"description":"Page Token to fetch the next page. The value can be used as page_token in the next call to this endpoint.","type":"string"}},"type":"object"},"ListMountTasksResponse":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/MountTask"},"type":"array"}},"type":"object"},"ListMountableTopicsResponse":{"properties":{"topics":{"items":{"$ref":"#/components/schemas/TopicLocation"},"type":"array"}},"type":"object"},"ListPipelinesRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on pipeline name. Case-sensitive.","type":"string"}},"type":"object"},"ListPipelinesResponse":{"properties":{"next_page_token":{"type":"string"},"pipelines":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"}},"type":"object"},"ListSecretScopesResponse":{"description":"ListSecretScopesResponse is the response of ListSecretScopes.","properties":{"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"type":"array"}},"type":"object"},"ListSecretsFilter":{"description":"ListSecretsFilter are the filter options for listing secrets.","properties":{"labels[string][string]":{"additionalProperties":{"type":"string"},"description":"The secret labels to search for.","type":"object"},"name_contains":{"description":"Substring match on secret name. Case-sensitive.","type":"string"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes to search for","type":"array"}},"type":"object"},"ListSecretsResponse":{"description":"ListSecretsResponse is the response of ListSecrets.","properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"secrets":{"description":"Secrets retrieved.","items":{"$ref":"#/components/schemas/Secret"},"type":"array"}},"type":"object"},"ListTopicsRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on topic name. Case-sensitive.","type":"string"}},"type":"object"},"ListTopicsResponse":{"properties":{"next_page_token":{"type":"string"},"topics":{"items":{"$ref":"#/components/schemas/ListTopicsResponse.Topic"},"type":"array"}},"type":"object"},"ListTopicsResponse.Topic":{"properties":{"internal":{"description":"Whether topic is internal only.","type":"boolean"},"name":{"description":"Topic name.","type":"string"},"partition_count":{"description":"Topic partition count.","format":"int32","type":"integer"},"replication_factor":{"description":"Topic replication factor.","format":"int32","type":"integer"}},"type":"object"},"ListTransformsRequest.Filter":{"properties":{"name_contains":{"description":"Substring match on transform name. Case-sensitive.","type":"string"}},"type":"object"},"ListTransformsResponse":{"properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"transforms":{"items":{"$ref":"#/components/schemas/TransformMetadata"},"type":"array"}},"type":"object"},"ListUsersRequest.Filter":{"properties":{"name":{"description":"Username.","type":"string"},"name_contains":{"description":"Substring match on username. Case-sensitive.","type":"string"}},"type":"object"},"ListUsersResponse":{"properties":{"next_page_token":{"description":"Token to retrieve the next page.","type":"string"},"users":{"items":{"$ref":"#/components/schemas/ListUsersResponse.User"},"type":"array"}},"type":"object"},"ListUsersResponse.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"}},"type":"object"},"LocalizedMessage":{"description":"Provides a localized error message that is safe to return to the user\nwhich can be attached to an RPC error.","properties":{"locale":{"title":"The locale used following the specification defined at\nhttps://www.rfc-editor.org/rfc/bcp/bcp47.txt.\nExamples are: \"en-US\", \"fr-CH\", \"es-MX\"","type":"string"},"message":{"description":"The localized error message in the above locale.","type":"string"}},"type":"object"},"MatchingACL":{"properties":{"error":{"$ref":"#/components/schemas/rpc.Status"},"host":{"description":"The host address to use for this ACL.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies.","type":"string"},"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"},"MountTask":{"properties":{"id":{"description":"Unique identifier for this mount task.","format":"int32","type":"integer"},"state":{"$ref":"#/components/schemas/MountTask.State"},"topics":{"description":"List of topics that are being mounted or unmounted.","items":{"$ref":"#/components/schemas/MountTask.Topic"},"type":"array"},"type":{"$ref":"#/components/schemas/MountTask.Type"}},"type":"object"},"MountTask.State":{"description":" - STATE_PLANNED: Planned: The mount task has been created and is awaiting further actions.\n - STATE_PREPARING: Preparing: The mount task is gathering resources and preparing for execution.\n - STATE_PREPARED: Prepared: All preparations are complete, and the mount task is ready to be executed.\n - STATE_EXECUTING: Executing: The mount task is actively transferring or transforming data.\n - STATE_EXECUTED: Executed: The core mount task actions are complete, but the mount task has not yet cut over or finalized.\n - STATE_CUT_OVER: Cut Over: The mount task has reached a critical point where ownership is transferred or final adjustments are made.\n - STATE_FINISHED: Finished: The mount task has been successfully completed, and no further actions are required.\n - STATE_CANCELING: Canceling: The mount task is in the process of being canceled, and rollback or cleanup actions may be in progress.\n - STATE_CANCELLED: Cancelled: The mount task has been fully canceled, and no further actions will be taken.","enum":["STATE_PLANNED","STATE_PREPARING","STATE_PREPARED","STATE_EXECUTING","STATE_EXECUTED","STATE_CUT_OVER","STATE_FINISHED","STATE_CANCELING","STATE_CANCELLED"],"type":"string"},"MountTask.Topic":{"properties":{"source_topic_reference":{"description":"The topic reference in the object storage bucket.\nThis field is only set for tasks of type MOUNT.","type":"string"},"topic_reference":{"description":"The topic reference within the current cluster, which may be either a simple topic name or a full reference\nin the form: cluster-uuid/topic-name/revision.","type":"string"}},"type":"object"},"MountTask.Type":{"description":" - TYPE_MOUNT: Mount represents the process of making topics available in a cluster by loading them from object storage.\n - TYPE_UNMOUNT: Unmount represents the process of offloading topics back to object storage.","enum":["TYPE_MOUNT","TYPE_UNMOUNT"],"type":"string"},"MountTopicsResponse":{"properties":{"mount_task_id":{"format":"int32","title":"ID of mount","type":"integer"}},"type":"object"},"Options":{"properties":{"include_tasks":{"description":"Restart connector's tasks.","type":"boolean"},"only_failed":{"description":"Restart only connectors that have failed.","type":"boolean"}},"type":"object"},"PartitionStatus":{"enum":["PARTITION_STATUS_RUNNING","PARTITION_STATUS_INACTIVE","PARTITION_STATUS_ERRORED","PARTITION_STATUS_UNKNOWN"],"type":"string"},"PartitionTransformStatus":{"properties":{"broker_id":{"format":"int32","type":"integer"},"lag":{"format":"int32","type":"integer"},"partition_id":{"format":"int32","type":"integer"},"status":{"$ref":"#/components/schemas/PartitionStatus"}},"type":"object"},"PermissionType":{"description":"Whether the operation should be allowed or denied.","enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"},"Pipeline":{"description":"Defines the pipeline resource.","properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","title":"The pipeline configuration in YAML.\nSee https://docs.redpanda.com/redpanda-connect/configuration/about/","type":"string"},"description":{"description":"Optional pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"id":{"description":"Pipeline ID.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"},"state":{"$ref":"#/components/schemas/Pipeline.State"},"status":{"$ref":"#/components/schemas/Pipeline.Status"}},"required":["id","display_name","config_yaml"],"type":"object"},"Pipeline.State":{"description":"State of the pipeline.\n\n - STATE_STARTING: The pipeline is starting.\n - STATE_RUNNING: The pipeline is running.\n - STATE_STOPPING: The pipeline is in the process of stopping.\n - STATE_STOPPED: The pipeline is stopped and in paused state.\n - STATE_ERROR: The pipeline encountered an error. See [Error Handling](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/error_handling/) for further guidance.\n - STATE_COMPLETED: The pipeline has completed the job successfully.","enum":["STATE_STARTING","STATE_RUNNING","STATE_STOPPING","STATE_STOPPED","STATE_ERROR","STATE_COMPLETED"],"type":"string"},"Pipeline.Status":{"description":"Pipeline status may contain an error message.","properties":{"error":{"type":"string"}},"type":"object"},"PipelineCreate":{"description":"PipelineCreate contains the details for the pipeline creation request.","properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","type":"string"},"description":{"description":"Pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"}},"required":["display_name","config_yaml"],"type":"object"},"PipelineUpdate":{"properties":{"config_yaml":{"description":"The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.","type":"string"},"description":{"description":"Pipeline description.","type":"string"},"display_name":{"description":"User-friendly pipeline name.","type":"string"},"resources":{"$ref":"#/components/schemas/Resources"},"service_account":{"$ref":"#/components/schemas/ServiceAccount"}},"required":["display_name","config_yaml"],"type":"object"},"PipelinesForSecret":{"properties":{"pipelines":{"items":{"$ref":"#/components/schemas/Pipeline"},"type":"array"},"secret_id":{"type":"string"}},"type":"object"},"Policy":{"properties":{"host":{"description":"The host address for this ACL.","type":"string"},"operation":{"$ref":"#/components/schemas/ACL.Operation"},"permission_type":{"$ref":"#/components/schemas/PermissionType"},"principal":{"description":"The user for whom this ACL applies.","type":"string"}},"type":"object"},"QuotaFailure":{"description":"Describes how a quota check failed.\n\nFor example if a daily limit was exceeded for the calling project,\na service could respond with a QuotaFailure detail containing the project\nid and the description of the quota limit that was exceeded. If the\ncalling project hasn't enabled the service in the developer console, then\na service could respond with the project id and set `service_disabled`\nto true.\n\nAlso see RetryInfo and Help types for other details about handling a\nquota failure.","properties":{"violations":{"description":"Describes all quota violations.","items":{"$ref":"#/components/schemas/QuotaFailure.Violation"},"type":"array"}},"title":"QuotaFailure","type":"object"},"QuotaFailure.Violation":{"description":"A message type used to describe a single quota violation. For example, a\ndaily quota or a custom quota that was exceeded.","properties":{"api_service":{"description":"The API Service from which the `QuotaFailure.Violation` orginates. In\nsome cases, Quota issues originate from an API Service other than the one\nthat was called. In other words, a dependency of the called API Service\ncould be the cause of the `QuotaFailure`, and this field would have the\ndependency API service name.\n\nFor example, if the called API is Kubernetes Engine API\n(container.googleapis.com), and a quota violation occurs in the\nKubernetes Engine API itself, this field would be\n\"container.googleapis.com\". On the other hand, if the quota violation\noccurs when the Kubernetes Engine API creates VMs in the Compute Engine\nAPI (compute.googleapis.com), this field would be\n\"compute.googleapis.com\".","type":"string"},"description":{"description":"A description of how the quota check failed. Clients can use this\ndescription to find more about the quota configuration in the service's\npublic documentation, or find the relevant quota limit to adjust through\ndeveloper console.\n\nFor example: \"Service disabled\" or \"Daily Limit for read operations\nexceeded\".","type":"string"},"future_quota_value":{"description":"The new quota value being rolled out at the time of the violation. At the\ncompletion of the rollout, this value will be enforced in place of\nquota_value. If no rollout is in progress at the time of the violation,\nthis field is not set.\n\nFor example, if at the time of the violation a rollout is in progress\nchanging the number of CPUs quota from 10 to 20, 20 would be the value of\nthis field.","format":"int64","nullable":true,"type":"string"},"quota_dimensions":{"additionalProperties":{"type":"string"},"description":"The dimensions of the violated quota. Every non-global quota is enforced\non a set of dimensions. While quota metric defines what to count, the\ndimensions specify for what aspects the counter should be increased.\n\nFor example, the quota \"CPUs per region per VM family\" enforces a limit\non the metric \"compute.googleapis.com/cpus_per_vm_family\" on dimensions\n\"region\" and \"vm_family\". And if the violation occurred in region\n\"us-central1\" and for VM family \"n1\", the quota_dimensions would be,\n\n{\n \"region\": \"us-central1\",\n \"vm_family\": \"n1\",\n}\n\nWhen a quota is enforced globally, the quota_dimensions would always be\nempty.","type":"object"},"quota_id":{"description":"The id of the violated quota. Also know as \"limit name\", this is the\nunique identifier of a quota in the context of an API service.\n\nFor example, \"CPUS-PER-VM-FAMILY-per-project-region\".","type":"string"},"quota_metric":{"description":"The metric of the violated quota. A quota metric is a named counter to\nmeasure usage, such as API requests or CPUs. When an activity occurs in a\nservice, such as Virtual Machine allocation, one or more quota metrics\nmay be affected.\n\nFor example, \"compute.googleapis.com/cpus_per_vm_family\",\n\"storage.googleapis.com/internet_egress_bandwidth\".","type":"string"},"quota_value":{"description":"The enforced quota value at the time of the `QuotaFailure`.\n\nFor example, if the enforced quota value at the time of the\n`QuotaFailure` on the number of CPUs is \"10\", then the value of this\nfield would reflect this quantity.","format":"int64","type":"string"},"subject":{"description":"The subject on which the quota check failed.\nFor example, \"clientip:\u003cip address of client\u003e\" or \"project:\u003cGoogle\ndeveloper project id\u003e\".","type":"string"}},"type":"object"},"ReplicaAssignment":{"properties":{"partition_id":{"description":"A partition to create.","format":"int32","type":"integer"},"replica_ids":{"description":"The broker IDs the partition replicas are assigned to.","items":{"format":"int32","type":"integer"},"type":"array"}},"type":"object"},"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"},"ResourcePatternType":{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"},"ResourceType":{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER"],"type":"string"},"Resources":{"properties":{"cpu_shares":{"description":"`cpu_shares` is a string specifying the amount of CPU to allocate for the\npipeline.\n\nThis follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable\nunits include:\n- Decimal SI units: \"m\" (e.g., \"500m\" for 500 millicores, \"2\" for 2 cores)\nCPU shares can be specified in millicores (1 core = 1000 millicores).\nIf you don't specify a unit, the value is interpreted as the number of cores.","type":"string"},"memory_shares":{"description":"`memory_shares` is a string specifying the amount of memory to allocate for\nthe pipeline.\n\nThis follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable units\ninclude:\n- Decimal SI units: \"K\", \"M\", \"G\", \"T\", \"P\", \"E\" (e.g., \"128M\" for 128\n megabytes)\n- Binary SI units: \"Ki\", \"Mi\", \"Gi\", \"Ti\", \"Pi\", \"Ei\" (e.g., \"512Mi\" for\n512 mebibytes) If you don't specify a unit, the value is interpreted as\nbytes.","type":"string"}},"required":["memory_shares","cpu_shares"],"type":"object"},"SASLMechanism":{"description":"SASL mechanism to use for authentication.","enum":["SASL_MECHANISM_SCRAM_SHA_256","SASL_MECHANISM_SCRAM_SHA_512"],"type":"string"},"Scope":{"description":"Defines the scope of a secret.","enum":["SCOPE_REDPANDA_CONNECT"],"type":"string"},"Secret":{"description":"Defines the secret resource.","properties":{"id":{"description":"Secret identifier.","readOnly":true,"type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"}},"type":"object"},"ServiceAccount":{"properties":{"client_id":{"type":"string"},"client_secret":{"type":"string"}},"type":"object"},"SetConfiguration":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"SetTopicConfigurationsResponse":{"properties":{"configurations":{"description":"Topic's complete set of configurations after this update.","items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"StartPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"StopPipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"TaskInfo":{"properties":{"connector":{"description":"Name of connector.","type":"string"},"task":{"description":"The connector task ID.","format":"int32","type":"integer"}},"type":"object"},"TaskStatus":{"properties":{"id":{"description":"The connector task ID.","format":"int32","type":"integer"},"state":{"description":"State of connector task.","type":"string"},"trace":{"description":"String value of stack trace.","type":"string"},"worker_id":{"description":"ID of worker that the task is assigned to.","type":"string"}},"type":"object"},"TopicLocation":{"properties":{"name":{"description":"Topic name.","type":"string"},"topic_location":{"description":"Full reference for the unmounted topic in this format: `topic-name/cluster-uuid/revision`.\nUse this as unique identifier for mounting a topic if there are multiple topics available\nwith the same name.","type":"string"}},"type":"object"},"TopicMount":{"description":"TopicMount defines the migration of a topic from the cloud storage into this cluster,\nso that it becomes available via the Kafka API.","properties":{"alias":{"description":"Alias may be provided to mount the topic under a different name. Leave\nblank to re-use the source topic name. The alias does not persist if you\nunmount the topic again.","type":"string"},"source_topic_reference":{"description":"The topic name or full reference of the topic to mount. The full reference\nmust be used in case the same topic exists more than once. This may be the case if\nthe same topic has been unmounted multiple times. List all mountable topics to\nfind the full reference (contains topic name, cluster uuid and revision).","type":"string"}},"required":["source_topic_reference"],"type":"object"},"TransformMetadata":{"properties":{"environment_variables":{"description":"The environment variables you want to apply to your transform's environment","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"type":"array"},"input_topic_name":{"description":"Input topic to apply the transform to.","type":"string"},"name":{"description":"Name of transform.","type":"string"},"output_topic_names":{"description":"Output topics to write the transform results to.","items":{"type":"string"},"type":"array"},"statuses":{"items":{"$ref":"#/components/schemas/PartitionTransformStatus"},"type":"array"}},"type":"object"},"UnmountTopicsResponse":{"properties":{"mount_task_id":{"format":"int32","title":"ID of unmount","type":"integer"}},"type":"object"},"UpdateConfiguration":{"properties":{"name":{"description":"A topic-level config key (e.g. `segment.bytes`).","type":"string"},"operation":{"$ref":"#/components/schemas/ConfigAlterOperation"},"value":{"description":"A topic-level config value (e.g. 1073741824).","nullable":true,"type":"string"}},"type":"object"},"UpdateConnectSecretBody":{"description":"UpdateConnectSecretRequest is the request of UpdateConnectSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"UpdateConnectSecretResponse":{"description":"UpdateConnectSecretResponse is the response of UpdateConnectSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"UpdateMountTaskBody":{"properties":{"action":{"$ref":"#/components/schemas/Action"}},"required":["action"],"type":"object"},"UpdateMountTaskResponse":{"type":"object"},"UpdatePipelineResponse":{"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline"}},"type":"object"},"UpdateSecretBody":{"description":"UpdateSecretRequest is the request of UpdateSecret.","properties":{"labels":{"additionalProperties":{"type":"string"},"description":"Secret labels.","type":"object"},"scopes":{"items":{"$ref":"#/components/schemas/Scope"},"title":"Secret scopes","type":"array"},"secret_data":{"description":"The secret data. Must be Base64-encoded.","format":"byte","type":"string"}},"required":["secret_data"],"type":"object"},"UpdateSecretResponse":{"description":"UpdateSecretResponse is the response of UpdateSecret.","properties":{"secret":{"$ref":"#/components/schemas/Secret"}},"type":"object"},"UpdateTopicConfigurationsResponse":{"properties":{"configurations":{"description":"Topic's complete set of configurations after applying this partial patch.","items":{"$ref":"#/components/schemas/Configuration"},"type":"array"}},"type":"object"},"UpdateUserRequest.User":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"description":"Username.","type":"string"},"password":{"description":"Password.","type":"string"}},"type":"object"},"UpdateUserResponse":{"properties":{"user":{"$ref":"#/components/schemas/UpdateUserResponse.User"}},"type":"object"},"UpdateUserResponse.User":{"description":"Updated user's name and SASL mechanism.","properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"name":{"type":"string"}},"type":"object"},"UpsertConnectorResponse":{"properties":{"connector":{"$ref":"#/components/schemas/ConnectorSpec"}},"type":"object"},"rpc.Status":{"description":"The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).","properties":{"code":{"description":"RPC status code, as described [here](https://github.com/googleapis/googleapis/blob/b4c238feaa1097c53798ed77035bbfeb7fc72e96/google/rpc/code.proto#L32).","enum":["OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS"],"format":"int32","type":"string"},"details":{"items":{"description":"Details of the error.","oneOf":[{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.BadRequest"],"type":"string"}}},{"$ref":"#/components/schemas/BadRequest"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.ErrorInfo"],"type":"string"}}},{"$ref":"#/components/schemas/ErrorInfo"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.QuotaFailure"],"type":"string"}}},{"$ref":"#/components/schemas/QuotaFailure"}]},{"allOf":[{"properties":{"@type":{"description":"Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.","enum":["type.googleapis.com/google.rpc.Help"],"type":"string"}}},{"$ref":"#/components/schemas/Help"}]}]},"type":"array"},"message":{"description":"Detailed error message. No compatibility guarantees are given for the text contained in this message.","type":"string"}},"type":"object"}},"securitySchemes":{"auth0":{"description":"RedpandaCloud","flows":{"implicit":{"authorizationUrl":"https://auth.prd.cloud.redpanda.com/oauth/authorize","scopes":{},"x-client-id":"dQjapNIAHhF7EQqQToRla3yEII9sUSap"}},"type":"oauth2"}}},"info":{"title":"Redpanda Cloud Data Plane API","version":"v1alpha2"},"openapi":"3.0.3","paths":{"/v1alpha2/acls":{"delete":{"description":"Delete all ACLs that match the filter criteria. The `filter.` query string parameters find matching ACLs that meet all specified conditions.","operationId":"ACLService_DeleteACLs","parameters":[{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","in":"query","name":"filter.resource_type","required":true,"schema":{"enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER"],"type":"string"}},{"description":"The name of the resource this ACL targets.","in":"query","name":"filter.resource_name","schema":{"type":"string"}},{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","in":"query","name":"filter.resource_pattern_type","required":true,"schema":{"enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"}},{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","in":"query","name":"filter.host","schema":{"type":"string"}},{"description":"The operation that is allowed or denied (e.g. READ).","in":"query","name":"filter.operation","required":true,"schema":{"enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"}},{"description":"Whether the operation should be allowed or denied.","in":"query","name":"filter.permission_type","required":true,"schema":{"enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteACLsResponse"}}},"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":"Delete ACLs","tags":["Redpanda ACLs (v1alpha2)"]},"get":{"description":"List all ACLs. The `filter.` query string parameters find matching ACLs that meet all specified conditions.","operationId":"ACLService_ListACLs","parameters":[{"description":"The type of resource (topic, consumer group, etc.) this\nACL targets.","in":"query","name":"filter.resource_type","schema":{"enum":["RESOURCE_TYPE_ANY","RESOURCE_TYPE_TOPIC","RESOURCE_TYPE_GROUP","RESOURCE_TYPE_CLUSTER","RESOURCE_TYPE_TRANSACTIONAL_ID","RESOURCE_TYPE_DELEGATION_TOKEN","RESOURCE_TYPE_USER"],"type":"string"}},{"description":"The name of the resource this ACL targets.","in":"query","name":"filter.resource_name","schema":{"type":"string"}},{"description":"The pattern to use for matching the specified resource_name\n(any, exact match, literal, or prefixed).","in":"query","name":"filter.resource_pattern_type","schema":{"enum":["RESOURCE_PATTERN_TYPE_ANY","RESOURCE_PATTERN_TYPE_MATCH","RESOURCE_PATTERN_TYPE_LITERAL","RESOURCE_PATTERN_TYPE_PREFIXED"],"type":"string"}},{"description":"The user for whom this ACL applies. With the Kafka simple\nauthorizer, you must include the prefix \"User:\" with the user name.","in":"query","name":"filter.principal","schema":{"type":"string"}},{"description":"The host address to use for this ACL. To allow a principal\naccess from multiple hosts, you must create an ACL for each host.","in":"query","name":"filter.host","schema":{"type":"string"}},{"description":"The operation that is allowed or denied (e.g. READ).","in":"query","name":"filter.operation","schema":{"enum":["OPERATION_ANY","OPERATION_ALL","OPERATION_READ","OPERATION_WRITE","OPERATION_CREATE","OPERATION_DELETE","OPERATION_ALTER","OPERATION_DESCRIBE","OPERATION_CLUSTER_ACTION","OPERATION_DESCRIBE_CONFIGS","OPERATION_ALTER_CONFIGS","OPERATION_IDEMPOTENT_WRITE","OPERATION_CREATE_TOKENS","OPERATION_DESCRIBE_TOKENS"],"type":"string"}},{"description":"Whether the operation should be allowed or denied.","in":"query","name":"filter.permission_type","schema":{"enum":["PERMISSION_TYPE_ANY","PERMISSION_TYPE_DENY","PERMISSION_TYPE_ALLOW"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListACLsResponse"}}},"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":"List ACLs","tags":["Redpanda ACLs (v1alpha2)"]},"post":{"description":"Create a new ACL.","operationId":"ACLService_CreateACL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateACLRequest"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateACLResponse"}}},"description":"Created"},"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":"Create ACL","tags":["Redpanda ACLs (v1alpha2)"]}},"/v1alpha2/cloud-storage/mount-tasks":{"get":{"description":"This operation retrieves the status of a task responsible for mounting or unmounting topics. It provides details on the task’s type (mount or unmount), its current state, and the topics involved.","operationId":"CloudStorageService_ListMountTasks","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMountTasksResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Retrieve the mount task status","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/cloud-storage/mount-tasks/{id}":{"delete":{"description":"Delete a mount or unmount by ID.","operationId":"CloudStorageService_DeleteMountTask","parameters":[{"description":"Unique identifier of the mount or unmount task to delete.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete a mount or unmount","tags":["Cloud Storage (v1alpha2)"]},"get":{"description":"Retrieves the status of a mount or unmount by ID. The response provides details on the operation type (mount or unmount), its current state, and the topics involved. Use the ID returned when you start the mount or unmount, or use the ListMountTasks endpoint to retrieve a list of IDs.","operationId":"CloudStorageService_GetMountTask","parameters":[{"description":"Unique identifier of the mount or unmount task to retrieve.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get the status of a mount or unmount by ID","tags":["Cloud Storage (v1alpha2)"]},"post":{"description":"This operation allows performing an action on an ongoing mount task.","operationId":"CloudStorageService_UpdateMountTask","parameters":[{"description":"ID is the unique identifier of the mount or unmount to update.","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMountTaskBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMountTaskResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update a mount or unmount","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/cloud-storage/topics/mount":{"post":{"description":"Attach mountable topics from object storage to a cluster, making them available for consumption and production again. Mounting a topic reloads its data and state to the local brokers, allowing active use of the topic.","operationId":"CloudStorageService_MountTopics","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TopicMount"},"required":["topics"],"type":"array"}}},"required":true,"x-originalParamName":"topics"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MountTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Mount topics from object storage","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/cloud-storage/topics/mountable":{"get":{"description":"Retrieve all topics that are currently unmounted and available to be mounted to the cluster. These topics reside in object storage and can be mounted for consumption or production within the cluster.","operationId":"CloudStorageService_ListMountableTopics","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMountableTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"List mountable topics","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/cloud-storage/topics/unmount":{"post":{"description":"Unmount topics to object storage, freeing up all local cluster resources. Once you unmount a topic, it can no longer be consumed or produced to. It detaches from the active cluster while its data remains safely stored in the external object storage.","operationId":"CloudStorageService_UnmountTopics","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"required":["topics"],"type":"array"}}},"description":"List of topics to unmount.","required":true,"x-originalParamName":"topics"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnmountTopicsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Unmount topics to object storage","tags":["Cloud Storage (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters":{"get":{"description":"List connect clusters available for being consumed by the console's kafka-connect service.","operationId":"KafkaConnectService_ListConnectClusters","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectClustersResponse"}}},"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":"List connect clusters","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}":{"get":{"description":"Get information about an available Kafka Connect cluster.","operationId":"KafkaConnectService_GetConnectCluster","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectCluster"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Connect cluster not found"},"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 connect cluster","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors":{"get":{"description":"List connectors managed by the Kafka Connect service.","operationId":"KafkaConnectService_ListConnectors","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectorsResponse"}}},"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":"List connectors","tags":["Kafka Connect (v1alpha2)"]},"post":{"description":"Create a connector with the specified configuration.","operationId":"KafkaConnectService_CreateConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"required":true,"x-originalParamName":"connector"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Created"},"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":"Create connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}":{"delete":{"description":"Delete a connector. This operation force stops all tasks and also deletes the connector configuration.","operationId":"KafkaConnectService_DeleteConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Deleted"},"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":"Delete connector","tags":["Kafka Connect (v1alpha2)"]},"get":{"description":"Get information about a connector in a specific cluster.","operationId":"KafkaConnectService_GetConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"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 connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/config":{"get":{"description":"Get the configuration for the connector.","operationId":"KafkaConnectService_GetConnectorConfig","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"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 connector configuration","tags":["Kafka Connect (v1alpha2)"]},"put":{"description":"Update the configuration for an existing connector with the specified name, or create a new connector using the given configuration. Returns information about the connector after the change has been made.","operationId":"KafkaConnectService_UpsertConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector. If a connector with this name does not already exist, a new connector is created.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"required":["config"],"type":"object"}}},"description":"Connector configuration property.","required":true,"x-originalParamName":"config"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Updated"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorSpec"}}},"description":"Created"},"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":"Upsert connector configuration","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/pause":{"put":{"description":"Pause the connector and its tasks, which stops messages from processing until the connector is resumed. This call is asynchronous and may take some time to process.","operationId":"KafkaConnectService_PauseConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Pause request accepted"},"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":"Pause connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/restart":{"post":{"description":"Triggers a connector restart. You must specify whether or not tasks are also restarted, and whether only failed connectors are restarted.","operationId":"KafkaConnectService_RestartConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Options"}}},"required":true,"x-originalParamName":"options"},"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Restart connector request success"},"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":"Restart connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/resume":{"put":{"description":"Resume a paused connector and its tasks, and resumes message processing. This call is asynchronous and may take some time to process. If the connector was not paused, this operation does not do anything.","operationId":"KafkaConnectService_ResumeConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Resume request accepted"},"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":"Resume connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/status":{"get":{"description":"Gets the current status of the connector, including the state for each of its tasks, error information, etc.","operationId":"KafkaConnectService_GetConnectorStatus","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorStatus"}}},"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 connector status","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/stop":{"put":{"description":"Stops a connector, but does not delete it. All tasks for the connector are shut down completely. This call is asynchronous and may take some time to process.","operationId":"KafkaConnectService_StopConnector","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Request accepted"},"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":"Stop connector","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics":{"get":{"description":"Returns a list of connector topic names. If the connector is inactive, this call returns an empty list.","operationId":"KafkaConnectService_ListConnectorTopics","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectorTopicsResponse"}}},"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":"List connector topics","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics/reset":{"put":{"description":"Resets the set of topic names that the connector is using.","operationId":"KafkaConnectService_ResetConnectorTopics","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Name of connector using the topics to be reset.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"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":"Reset connector topics","tags":["Kafka Connect (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/secrets":{"get":{"description":"List Kafka Connect cluster secrets. Optional: filter based on secret name and labels.","operationId":"SecretService_ListConnectSecrets","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"Substring match on secret name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"filter.labels[string][string]","schema":{"type":"string"}},{"description":"Secret scopes to search for","in":"query","name":"filter.scopes","schema":{"items":{"enum":["SCOPE_REDPANDA_CONNECT"],"type":"string"},"type":"array"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}},"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":"List Connect Cluster Secrets","tags":["Secrets (v1alpha2)"]},"post":{"description":"Create a Kafka Connect cluster secret.","operationId":"SecretService_CreateConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConnectSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"Secret created"},"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":"Create Connect Cluster Secret","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/kafka-connect/clusters/{cluster_name}/secrets/{id}":{"delete":{"description":"Delete a Kafka Connect cluster secret.","operationId":"SecretService_DeleteConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"ID of the secret to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Secret deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete Connect Cluster Secret","tags":["Secrets (v1alpha2)"]},"get":{"description":"Get a specific Kafka Connect cluster secret.","operationId":"SecretService_GetConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"The ID of the secret to retrieve.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Connect Cluster Secret","tags":["Secrets (v1alpha2)"]},"put":{"description":"Update a Kafka Connect cluster secret.","operationId":"SecretService_UpdateConnectSecret","parameters":[{"description":"Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.","in":"path","name":"cluster_name","required":true,"schema":{"type":"string"}},{"description":"ID of the secret to update.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConnectSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update Connect Cluster Secret","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/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.","operationId":"PipelineService_GetPipelineServiceConfigSchema","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelineServiceConfigSchemaResponse"}}},"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 schema for Redpanda Connect pipeline configurations.","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines":{"get":{"description":"List Redpanda Connect pipelines. Optional: filter based on pipeline name.","operationId":"PipelineService_ListPipelines","parameters":[{"description":"Substring match on pipeline name. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPipelinesResponse"}}},"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":"List Redpanda Connect pipelines","tags":["Redpanda Connect Pipeline (v1alpha2)"]},"post":{"description":"Create a new Redpanda Connect pipeline.","operationId":"PipelineService_CreatePipeline","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineCreate"}}},"required":true,"x-originalParamName":"pipeline"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"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":"Create Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines-by-secrets":{"get":{"description":"Get Redpanda Connect pipelines by secrets.","operationId":"PipelineService_GetPipelinesBySecrets","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelinesBySecretsResponse"}}},"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 Redpanda Connect pipelines by secrets","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines-for-secret":{"get":{"description":"Get Redpanda Connect pipelines for a given secret.","operationId":"PipelineService_GetPipelinesForSecret","parameters":[{"description":"Secret ID.","in":"query","name":"secret_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPipelinesForSecretResponse"}}},"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 Redpanda Connect pipelines for secret","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines/{id}":{"delete":{"description":"Delete a Redpanda Connect pipeline.","operationId":"PipelineService_DeletePipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete a Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]},"get":{"description":"Get a specific Redpanda Connect pipeline.","operationId":"PipelineService_GetPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]},"put":{"description":"Update the [configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) of a Redpanda Connect pipeline.","operationId":"PipelineService_UpdatePipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineUpdate"}}},"required":true,"x-originalParamName":"pipeline"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"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":"Update a Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines/{id}/start":{"put":{"description":"Start a stopped Redpanda Connect pipeline.","operationId":"PipelineService_StartPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"Started"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Start a Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/redpanda-connect/pipelines/{id}/stop":{"put":{"description":"Stop a running Redpanda Connect pipeline.","operationId":"PipelineService_StopPipeline","parameters":[{"description":"Pipeline ID.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"description":"Stopped"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Stops a Redpanda Connect pipeline","tags":["Redpanda Connect Pipeline (v1alpha2)"]}},"/v1alpha2/secret-scopes":{"get":{"description":"List supported secret scopes.","operationId":"SecretService_ListSecretScopes","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretScopesResponse"}}},"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":"List Secret Scopes","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/secrets":{"get":{"description":"List secrets. Optional: filter based on secret name and labels.","operationId":"SecretService_ListSecrets","parameters":[{"description":"Substring match on secret name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18","in":"query","name":"filter.labels[string]","schema":{"type":"string"}},{"description":"Secret scopes to search for","in":"query","name":"filter.scopes","schema":{"items":{"enum":["SCOPE_REDPANDA_CONNECT"],"type":"string"},"type":"array"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}},{"description":"Limit the paginated response to a number of items.","in":"query","name":"page_size","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSecretsResponse"}}},"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":"List Secrets","tags":["Secrets (v1alpha2)"]},"post":{"description":"Create a secret.","operationId":"SecretService_CreateSecret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecretRequest"}}},"description":"CreateSecretRequest is the request of CreateSecret.","required":true,"x-originalParamName":"body"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"Secret created"},"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":"Create Secret","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/secrets/{id}":{"delete":{"description":"Delete a secret.","operationId":"SecretService_DeleteSecret","parameters":[{"description":"The id of the secret to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Secret deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete Secret","tags":["Secrets (v1alpha2)"]},"get":{"description":"Get a secret.","operationId":"SecretService_GetSecret","parameters":[{"description":"The id of the secret to retrieve.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Secret","tags":["Secrets (v1alpha2)"]},"put":{"description":"Update a secret.","operationId":"SecretService_UpdateSecret","parameters":[{"description":"Secret identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSecretBody"}}},"required":true,"x-originalParamName":"body"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Secret"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update Secret","tags":["Secrets (v1alpha2)"]}},"/v1alpha2/topics":{"get":{"description":"List topics, with partition count and replication factor. Optional: filter based on topic name.","operationId":"TopicService_ListTopics","parameters":[{"description":"Substring match on topic name. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response. If not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTopicsResponse"}}},"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":"List Topics","tags":["Topics (v1alpha2)"]},"post":{"description":"Create a [topic](https://docs.redpanda.com/current/deploy/deployment-option/cloud/create-topic/).","operationId":"TopicService_CreateTopic","parameters":[{"description":"If true, makes this request a dry run; everything is validated but\nno topics are actually created.","in":"query","name":"validate_only","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicRequest.Topic"}}},"description":"The topic to create.","required":true,"x-originalParamName":"topic"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicResponse"}}},"description":"Topic created"},"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":"Create Topic","tags":["Topics (v1alpha2)"]}},"/v1alpha2/topics/{name}":{"delete":{"description":"Delete the Kafka topic with the requested name.","operationId":"TopicService_DeleteTopic","parameters":[{"description":"Topic name.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{}}},"description":"Topic deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Requested topic does not exist"},"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":"Delete Topic","tags":["Topics (v1alpha2)"]}},"/v1alpha2/topics/{topic_name}/configurations":{"get":{"description":"Get key-value configs for a topic.","operationId":"TopicService_GetTopicConfigurations","parameters":[{"description":"Topic name","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Topic Configurations","tags":["Topics (v1alpha2)"]},"patch":{"description":"Update a subset of the topic configurations.","operationId":"TopicService_UpdateTopicConfigurations","parameters":[{"description":"Topic name","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateConfiguration"},"type":"array"}}},"required":true,"x-originalParamName":"configurations"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Update Topic Configuration","tags":["Topics (v1alpha2)"]},"put":{"description":"Update the entire set of key-value configurations for a topic. Config entries that are not provided in the request are removed and will fall back to their default values.","operationId":"TopicService_SetTopicConfigurations","parameters":[{"description":"Name of topic.","in":"path","name":"topic_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SetConfiguration"},"type":"array"}}},"required":true,"x-originalParamName":"configurations"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetTopicConfigurationsResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Set Topic Configurations","tags":["Topics (v1alpha2)"]}},"/v1alpha2/transforms":{"get":{"description":"Retrieve a list of Wasm transforms. Optional: filter based on transform name.","operationId":"TransformService_ListTransforms","parameters":[{"description":"Substring match on transform name. Case-sensitive.","in":"query","name":"filter.name_contains","schema":{"type":"string"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","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","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"example":{"next_page_token":"","transforms":[{"environment_variables":[],"input_topic_name":"topic1","name":"transform1","output_topic_names":["output-topic11","output-topic12"],"statuses":[{"broker_id":1,"lag":1,"partition_id":1,"status":"PARTITION_STATUS_RUNNING"}]},{"environment_variables":[],"input_topic_name":"topic2","name":"transform2","output_topic_names":["output-topic21","output-topic22"],"statuses":[{"broker_id":2,"lag":2,"partition_id":2,"status":"PARTITION_STATUS_RUNNING"}]}]},"schema":{"$ref":"#/components/schemas/ListTransformsResponse"}}},"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":"List Transforms","tags":["WASM Transforms (v1alpha2)"]},"put":{"description":"Initiate deployment of a new Wasm transform. This endpoint uses multipart/form-data encoding. Following deployment, a brief period is required before the Wasm transform becomes operational. Monitor the partition statuses to check whether the transform is active. This usually takes around 3s, but no longer than 10s.","operationId":"TransformService_DeployTransform","requestBody":{"content":{"multipart/form-data":{"schema":{"example":"{\"name\":\"redact-orders\",\"input_topic_name\":\"orders\",\"output_topic_names\":[\"orders-redacted\"],\"environment_variables\":[{\"key\":\"LOGGER_LEVEL\",\"value\":\"DEBUG\"}]}","properties":{"metadata":{"$ref":"#/components/schemas/DeployTransformRequest"},"wasm_binary":{"description":"Binary file containing the compiled WASM transform. The maximum size for this file is 10MiB.","format":"binary","type":"string"}},"type":"object"}}},"description":"Transform metadata as well as the WASM binary","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransformMetadata"}}},"description":"Created"}},"summary":"Deploy Transform","tags":["WASM Transforms (v1alpha2)"]}},"/v1alpha2/transforms/{name}":{"delete":{"description":"Delete a Wasm transform with the requested name.","operationId":"TransformService_DeleteTransform","parameters":[{"description":"Name of transform.","example":{"name":"transform1"},"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"example":{},"schema":{}}},"description":"Transform deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Delete Transform","tags":["WASM Transforms (v1alpha2)"]},"get":{"description":"Get a specific Wasm transform.","operationId":"TransformService_GetTransform","parameters":[{"description":"Name of transform.","example":{"name":"transform1"},"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"transform":{"environment_variables":[],"input_topic_name":"topic1","name":"transform1","output_topic_names":["output-topic1","output-topic2"],"statuses":[{"broker_id":1,"lag":1,"partition_id":1,"status":"PARTITION_STATUS_RUNNING"}]}},"schema":{"$ref":"#/components/schemas/GetTransformResponse"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"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. Reach out to support."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"An unexpected error response."}},"summary":"Get Transform","tags":["WASM Transforms (v1alpha2)"]}},"/v1alpha2/users":{"get":{"description":"List users. Optional: filter based on username.","operationId":"UserService_ListUsers","parameters":[{"description":"Username.","in":"query","name":"filter.name","schema":{"type":"string"}},{"description":"Substring match on username. Case-sensitive.","in":"query","name":"filter.name_contains","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","schema":{"format":"int32","type":"integer"}},{"description":"Value of the next_page_token field returned by the previous response.\nIf not provided, the system assumes the first page is requested.","in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"next_page_token":"","users":[{"name":"payment-service"},{"name":"jane"}]},"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}},"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":"List Users","tags":["Redpanda Users (v1alpha2)"]},"post":{"description":"Create a new user.","operationId":"UserService_CreateUser","requestBody":{"content":{"application/json":{"example":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service","password":"secure-password"},"schema":{"$ref":"#/components/schemas/CreateUserRequest.User"}}},"required":true,"x-originalParamName":"user"},"responses":{"201":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service"}},"schema":{"$ref":"#/components/schemas/CreateUserRequest.User"}}},"description":"User created"},"400":{"content":{"application/json":{"example":{"code":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_INVALID_INPUT"},{"@type":"type.googleapis.com/google.rpc.BadRequest","field_violations":[{"description":"value length must be at least 3 characters","field":"user.password","localized_message":null,"reason":""},{"description":"value is required","field":"user.mechanism","localized_message":null,"reason":""}]}],"message":"provided parameters are invalid"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Bad request. Check API documentation and update request."},"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":"Create User","tags":["Redpanda Users (v1alpha2)"]}},"/v1alpha2/users/{name}":{"delete":{"description":"Delete the specified user","operationId":"UserService_DeleteUser","parameters":[{"description":"Username","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"204":{"content":{"application/json":{"example":{},"schema":{}}},"description":"User deleted successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Unauthenticated."},"404":{"content":{"application/json":{"example":{"code":"NOT_FOUND","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_RESOURCE_NOT_FOUND"}],"message":"user not found"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Not Found"},"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":"Delete User","tags":["Redpanda Users (v1alpha2)"]}},"/v1alpha2/users/{user.name}":{"put":{"description":"Update a user's credentials.","operationId":"UserService_UpdateUser","parameters":[{"description":"Username.","in":"path","name":"user.name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","password":"new-password"}},"schema":{"properties":{"mechanism":{"$ref":"#/components/schemas/SASLMechanism"},"password":{"description":"Password.","type":"string"}},"type":"object"}}},"required":true,"x-originalParamName":"user"},"responses":{"200":{"content":{"application/json":{"example":{"user":{"mechanism":"SASL_MECHANISM_SCRAM_SHA_256","name":"payment-service"}},"schema":{"$ref":"#/components/schemas/UpdateUserResponse.User"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"code":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","domain":"redpanda.com/dataplane","metadata":{},"reason":"REASON_INVALID_INPUT"},{"@type":"type.googleapis.com/google.rpc.BadRequest","field_violations":[{"description":"value length must be at least 3 characters","field":"user.password","localized_message":null,"reason":""},{"description":"value is required","field":"user.mechanism","localized_message":null,"reason":""}]}],"message":"provided parameters are invalid"},"schema":{"$ref":"#/components/schemas/rpc.Status"}}},"description":"Bad request. Check API documentation and update request."},"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":"Update User","tags":["Redpanda Users (v1alpha2)"]}}},"security":[{"auth0":[]}],"servers":[{"description":"Data Plane API","url":"{dataplane_api_url}","variables":{"dataplane_api_url":{"default":"https://{dataplane_api_url}","description":"Find the Data Plane API base URL of a cluster by calling the Get Cluster endpoint of the Control Plane API. The dataplane_api.url field is returned in the response body.\u003cbr\u003e\u003cbr\u003e\n\t\t\t\t\tExample (Dedicated): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.fmc.prd.cloud.redpanda.com\"\u003cbr\u003e\n\t\t\t\t\tExample (BYOC): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.byoc.prd.cloud.redpanda.com\""}}}],"tags":[{"description":"Manage Redpanda access control lists (ACLs). See [Redpanda Cloud Authorization](https://docs.redpanda.com/redpanda-cloud/security/authorization/cloud-authorization/) for more information.","name":"Redpanda ACLs (v1alpha2)"},{"description":"Manage Redpanda topics stored in object storage. See: [Mountable Topics](https://docs.redpanda.com/redpanda-cloud/manage/mountable-topics/)","name":"Cloud Storage (v1alpha2)"},{"description":"Manage Wasm transforms in Redpanda.","name":"WASM Transforms (v1alpha2)"},{"description":"Manage [connectors](https://docs.redpanda.com/redpanda-cloud/develop/managed-connectors/) and interact with the Kafka Connect API.","name":"Kafka Connect (v1alpha2)"},{"description":"Create and manage [Redpanda Connect](https://docs.redpanda.com/redpanda-cloud/develop/connect/about) pipelines and their configurations.","name":"Redpanda Connect Pipeline (v1alpha2)"},{"description":"Manage [secrets](https://docs.redpanda.com/redpanda-cloud/security/secrets) for Redpanda Cloud.","name":"Secrets (v1alpha2)"},{"description":"Manage Redpanda topics.","name":"Topics (v1alpha2)"},{"description":"Manage Redpanda users. To manage access, see the Data Plane [ACL endpoints](https://docs.redpanda.com/api/cloud-dataplane-api/#get-/v1alpha2/acls).","name":"Redpanda Users (v1alpha2)"}]} \ No newline at end of file diff --git a/proto/gen/openapi/openapi.v1alpha2.yaml b/proto/gen/openapi/openapi.v1alpha2.yaml index 6d606c892..9098ca21d 100644 --- a/proto/gen/openapi/openapi.v1alpha2.yaml +++ b/proto/gen/openapi/openapi.v1alpha2.yaml @@ -4375,7 +4375,7 @@ paths: content: multipart/form-data: schema: - example: '{"name":"redact-orders", "input_topic_name":"orders", "output_topic_names":["orders-redacted"], "environment_variables":[{"key":"LOGGER_LEVEL", "value":"DEBUG"}]}' + example: '{"name":"redact-orders","input_topic_name":"orders","output_topic_names":["orders-redacted"],"environment_variables":[{"key":"LOGGER_LEVEL","value":"DEBUG"}]}' properties: metadata: $ref: '#/components/schemas/DeployTransformRequest' diff --git a/proto/gen/openapi/openapi.yaml b/proto/gen/openapi/openapi.yaml index cb72e3102..2523a5f24 100644 --- a/proto/gen/openapi/openapi.yaml +++ b/proto/gen/openapi/openapi.yaml @@ -72,6 +72,14 @@ 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: @@ -154,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: @@ -776,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: @@ -1165,6 +1341,11 @@ components: resource_type: $ref: '#/components/schemas/ResourceType' type: object + ListComponentsResponse: + properties: + components: + $ref: '#/components/schemas/ComponentList' + type: object ListConnectClustersResponse: properties: clusters: @@ -1590,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 @@ -4361,6 +4562,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. diff --git a/proto/redpanda/api/dataplane/v1/pipeline.proto b/proto/redpanda/api/dataplane/v1/pipeline.proto index c80c1452a..b26d16910 100644 --- a/proto/redpanda/api/dataplane/v1/pipeline.proto +++ b/proto/redpanda/api/dataplane/v1/pipeline.proto @@ -353,6 +353,28 @@ service PipelineService { }; } + // ListComponents returns a JSON containing lists of allowed components based on component type filter. + rpc ListComponents(ListComponentsRequest) returns (ListComponentsResponse) { + option (google.api.http) = {get: "/v1/redpanda-connect/components"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "Retrieve the list of available components" + description: "Returns a JSON list of available [components](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about), filtered by component type." + responses: { + key: "200" + value: { + description: "OK" + schema: { + json_schema: {ref: ".redpanda.api.dataplane.v1.ListComponentsResponse"} + } + } + } + }; + option (redpanda.api.auth.v1.authorization) = { + required_permission: PERMISSION_VIEW + api: API_REDPANDA_CONNECT + }; + } + // GetPipelinesForSecret implements the get pipelines for secret method which lists the pipelines // in the Redpanda cluster for the given secret. rpc GetPipelinesForSecret(GetPipelinesForSecretRequest) returns (GetPipelinesForSecretResponse) { @@ -652,6 +674,112 @@ message GetPipelineServiceConfigSchemaResponse { string config_schema = 1; } +message ListComponentsRequest { + google.protobuf.FieldMask read_mask = 1; +} + +message ListComponentsResponse { + // Structured component list data instead of JSON string. + ComponentList components = 1; +} + +// ComponentList contains the structured component data. +message ComponentList { + string version = 1 [(buf.validate.field).string.pattern = "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"]; + repeated ComponentSpec buffers = 2; + repeated ComponentSpec caches = 3; + repeated ComponentSpec inputs = 4; + repeated ComponentSpec outputs = 5; + repeated ComponentSpec processors = 6; + repeated ComponentSpec rate_limits = 7; + repeated ComponentSpec metrics = 8; + repeated ComponentSpec tracers = 9; + repeated ComponentSpec scanners = 10; + repeated BloblangFunctionSpec bloblang_functions = 11; + repeated BloblangMethodSpec bloblang_methods = 12; +} + +// ComponentStatus represents the stability level of a component. +enum ComponentStatus { + COMPONENT_STATUS_UNSPECIFIED = 0; + COMPONENT_STATUS_STABLE = 1; + COMPONENT_STATUS_BETA = 2; + COMPONENT_STATUS_EXPERIMENTAL = 3; + COMPONENT_STATUS_DEPRECATED = 4; +} + +// ComponentSpec represents a component specification. +message ComponentSpec { + string name = 1; + string type = 2; + ComponentStatus status = 3; + string summary = 4; + string description = 5; + repeated string categories = 6; + string version = 7 [(buf.validate.field).string.pattern = "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"]; + FieldSpec config = 8; + repeated string examples = 9; + string footnotes = 10; +} + +// FieldSpec represents a field specification. +message FieldSpec { + string name = 1; + string type = 2; + string kind = 3; + string description = 4; + bool advanced = 5; + bool deprecated = 6; + bool optional = 7; + string default_value = 8; + repeated string examples = 9; + repeated FieldSpec children = 10; + repeated AnnotatedOption annotated_options = 11; + repeated string interpolated = 12; + string version = 13 [(buf.validate.field).string.pattern = "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"]; +} + +// AnnotatedOption represents an annotated option +message AnnotatedOption { + string value = 1; + string description = 2; +} + +// BloblangFunctionSpec represents a Bloblang function specification. +message BloblangFunctionSpec { + string name = 1; + string description = 2; + string status = 3; + repeated string categories = 4; + ParamSpec params = 5; + repeated string examples = 6; + string version = 7 [(buf.validate.field).string.pattern = "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"]; +} + +// BloblangMethodSpec represents a Bloblang method specification. +message BloblangMethodSpec { + string name = 1; + string description = 2; + string status = 3; + repeated string categories = 4; + ParamSpec params = 5; + repeated string examples = 6; + string version = 7 [(buf.validate.field).string.pattern = "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"]; +} + +// ParamSpec represents parameter specifications. +message ParamSpec { + repeated ParamDefinition definitions = 1; +} + +// ParamDefinition represents a parameter definition. +message ParamDefinition { + string name = 1; + string description = 2; + string type = 3; + string default_value = 4; +} + message PipelinesForSecret { string secret_id = 1; repeated Pipeline pipelines = 2;