From 6814fd0f27cbb76b1bd22702983d05017c6f1941 Mon Sep 17 00:00:00 2001 From: keepingitneil Date: Wed, 4 Feb 2026 15:33:36 -0800 Subject: [PATCH 1/9] Introduce Private Link Protocol --- protobufs/livekit_cloud_agent.proto | 128 ++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/protobufs/livekit_cloud_agent.proto b/protobufs/livekit_cloud_agent.proto index 527726687..213bfbdce 100644 --- a/protobufs/livekit_cloud_agent.proto +++ b/protobufs/livekit_cloud_agent.proto @@ -224,6 +224,127 @@ message ClientSettingsResponse { message ClientSettingsRequest { } +message PrivateLink { + message AWSConfig {} + + string private_link_id = 1; + string name = 2; + + oneof config { + AWSConfig aws = 3; + } +} + +message PrivateLinkProvisioningStatus { + enum Status { + PRIVATE_LINK_STATUS_UNKNOWN = 0; + PRIVATE_LINK_STATUS_PENDING = 1; + PRIVATE_LINK_STATUS_READY = 2; + PRIVATE_LINK_STATUS_DELETING = 3; + PRIVATE_LINK_STATUS_DELETED = 4; + PRIVATE_LINK_STATUS_FAILED = 5; + } + + Status status = 1; + optional string error = 2; +} + +message PrivateLinkHealthStatus { + enum Status { + PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN = 0; + PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY = 1; + PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY = 2; + } + + Status status = 1; + google.protobuf.Timestamp updated_at = 2; +} + +message PrivateLinkAttachment { + string private_link_attachment_id = 1; + string private_link_id = 2; + string agent_id = 3; + google.protobuf.Timestamp created_at = 4; +} + +message PrivateLinkAttachmentProvisioningStatus { + enum Status { + PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN = 0; + PRIVATE_LINK_ATTACHMENT_STATUS_PENDING = 1; + PRIVATE_LINK_ATTACHMENT_STATUS_READY = 2; + PRIVATE_LINK_ATTACHMENT_STATUS_DELETING = 3; + PRIVATE_LINK_ATTACHMENT_STATUS_DELETED = 4; + PRIVATE_LINK_ATTACHMENT_STATUS_FAILED = 5; + } + + Status status = 1; + optional string error = 2; +} + +message PrivateLinkAttachementHealthStatus { + enum Status { + PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN = 0; + PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY = 1; + PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY = 2; + } + + Status status = 1; + google.protobuf.Timestamp updated_at = 2; +} + +message CreatePrivateLinkRequest { + message AWSCreateConfig {} + + string name = 1; + oneof config { + AWSCreateConfig aws = 2; + } +} + +message CreatePrivateLinkResponse { + PrivateLink private_link = 1; +} + +message GetPrivateLinkProvisioningStatusRequest { + string private_link_id = 1; +} + +message GetPrivateLinkProvisioningStatusResponse { + PrivateLinkProvisioningStatus value = 1; +} + +message GetPrivateLinkHealthStatusRequest { + string private_link_id = 1; +} + +message GetPrivateLinkHealthStatusResponse { + PrivateLinkHealthStatus value = 1; +} + +message CreatePrivateLinkAttachmentRequest { + string private_link_id = 1; + string agent_id = 2; +} + +message CreatePrivateLinkAttachmentResponse { + PrivateLinkAttachment private_link_attachment = 1; +} + +message GetPrivateLinkAttachementProvisioningStatusRequest { +} + +message GetPrivateLinkAttachmentProvisioningStatusResponse { + PrivateLinkAttachmentProvisioningStatus value = 1; +} + +message GetPrivateLinkAttachmentHealthStatusRequest { + string private_link_attachment_id = 1; +} + +message GetPrivateLinkAttachmentHealthStatusResponse { + PrivateLinkAttachementHealthStatus value = 1; +} + service CloudAgent { rpc CreateAgent(CreateAgentRequest) returns (CreateAgentResponse) {} rpc ListAgents(ListAgentsRequest) returns (ListAgentsResponse) {} @@ -236,4 +357,11 @@ service CloudAgent { rpc RollbackAgent(RollbackAgentRequest) returns (RollbackAgentResponse) {} rpc DeleteAgent(DeleteAgentRequest) returns (DeleteAgentResponse) {} rpc GetClientSettings(ClientSettingsRequest) returns (ClientSettingsResponse) {} + + rpc CreatePrivateLink(CreatePrivateLinkRequest) returns (CreatePrivateLinkResponse) {} + rpc GetPrivateLinkProvisioningStatus(GetPrivateLinkProvisioningStatusRequest) returns (GetPrivateLinkProvisioningStatusResponse) {} + rpc GetPrivateLinkHealthStatus(GetPrivateLinkHealthStatusRequest) returns (GetPrivateLinkHealthStatusResponse) {} + rpc CreatePrivateLinkAttachment(CreatePrivateLinkAttachmentRequest) returns (CreatePrivateLinkAttachmentResponse) {} + rpc GetPrivateLinkAttachementStatus(GetPrivateLinkAttachementProvisioningStatusRequest) returns (GetPrivateLinkAttachmentProvisioningStatusResponse) {} + rpc GetPrivateLinkAttachmentHealthStatus(GetPrivateLinkAttachmentHealthStatusRequest) returns (GetPrivateLinkAttachmentHealthStatusResponse) {} } From 3919bbc223d72222912784869a708bb0d4d3319e Mon Sep 17 00:00:00 2001 From: keepingitneil Date: Wed, 4 Feb 2026 15:38:16 -0800 Subject: [PATCH 2/9] Add TODO comment --- protobufs/livekit_cloud_agent.proto | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/protobufs/livekit_cloud_agent.proto b/protobufs/livekit_cloud_agent.proto index 213bfbdce..3f0f6e94e 100644 --- a/protobufs/livekit_cloud_agent.proto +++ b/protobufs/livekit_cloud_agent.proto @@ -225,7 +225,9 @@ message ClientSettingsRequest { } message PrivateLink { - message AWSConfig {} + message AWSConfig { + // TODO: region? azs? hostnames? etc + } string private_link_id = 1; string name = 2; @@ -293,7 +295,9 @@ message PrivateLinkAttachementHealthStatus { } message CreatePrivateLinkRequest { - message AWSCreateConfig {} + message AWSCreateConfig { + // TODO: region? azs? hostnames? etc + } string name = 1; oneof config { From 3fb1f79981eaf65c30ddfaa64c6f3bc04bf39ac6 Mon Sep 17 00:00:00 2001 From: keepingitneil Date: Thu, 5 Feb 2026 11:28:08 -0800 Subject: [PATCH 3/9] remove attachment --- protobufs/livekit_cloud_agent.proto | 31 ++--------------------------- 1 file changed, 2 insertions(+), 29 deletions(-) diff --git a/protobufs/livekit_cloud_agent.proto b/protobufs/livekit_cloud_agent.proto index 3f0f6e94e..51d34e702 100644 --- a/protobufs/livekit_cloud_agent.proto +++ b/protobufs/livekit_cloud_agent.proto @@ -226,7 +226,7 @@ message ClientSettingsRequest { message PrivateLink { message AWSConfig { - // TODO: region? azs? hostnames? etc + string endpoint = 1; } string private_link_id = 1; @@ -296,7 +296,7 @@ message PrivateLinkAttachementHealthStatus { message CreatePrivateLinkRequest { message AWSCreateConfig { - // TODO: region? azs? hostnames? etc + string endpoint = 1; } string name = 1; @@ -325,30 +325,6 @@ message GetPrivateLinkHealthStatusResponse { PrivateLinkHealthStatus value = 1; } -message CreatePrivateLinkAttachmentRequest { - string private_link_id = 1; - string agent_id = 2; -} - -message CreatePrivateLinkAttachmentResponse { - PrivateLinkAttachment private_link_attachment = 1; -} - -message GetPrivateLinkAttachementProvisioningStatusRequest { -} - -message GetPrivateLinkAttachmentProvisioningStatusResponse { - PrivateLinkAttachmentProvisioningStatus value = 1; -} - -message GetPrivateLinkAttachmentHealthStatusRequest { - string private_link_attachment_id = 1; -} - -message GetPrivateLinkAttachmentHealthStatusResponse { - PrivateLinkAttachementHealthStatus value = 1; -} - service CloudAgent { rpc CreateAgent(CreateAgentRequest) returns (CreateAgentResponse) {} rpc ListAgents(ListAgentsRequest) returns (ListAgentsResponse) {} @@ -365,7 +341,4 @@ service CloudAgent { rpc CreatePrivateLink(CreatePrivateLinkRequest) returns (CreatePrivateLinkResponse) {} rpc GetPrivateLinkProvisioningStatus(GetPrivateLinkProvisioningStatusRequest) returns (GetPrivateLinkProvisioningStatusResponse) {} rpc GetPrivateLinkHealthStatus(GetPrivateLinkHealthStatusRequest) returns (GetPrivateLinkHealthStatusResponse) {} - rpc CreatePrivateLinkAttachment(CreatePrivateLinkAttachmentRequest) returns (CreatePrivateLinkAttachmentResponse) {} - rpc GetPrivateLinkAttachementStatus(GetPrivateLinkAttachementProvisioningStatusRequest) returns (GetPrivateLinkAttachmentProvisioningStatusResponse) {} - rpc GetPrivateLinkAttachmentHealthStatus(GetPrivateLinkAttachmentHealthStatusRequest) returns (GetPrivateLinkAttachmentHealthStatusResponse) {} } From 3ad7b9cd11c0b1e8aa57e2294bcb8f58202a3993 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Feb 2026 19:28:58 +0000 Subject: [PATCH 4/9] generated protobuf --- infra/link_grpc.pb.go | 2 +- livekit/livekit_cloud_agent.pb.go | 1554 ++++++++++++++++++++++---- livekit/livekit_cloud_agent.twirp.go | 1097 ++++++++++++++++-- rpc/analytics_grpc.pb.go | 2 +- 4 files changed, 2299 insertions(+), 356 deletions(-) diff --git a/infra/link_grpc.pb.go b/infra/link_grpc.pb.go index 187e6c5e0..f5e2075a1 100644 --- a/infra/link_grpc.pb.go +++ b/infra/link_grpc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.6.0 +// - protoc-gen-go-grpc v1.6.1 // - protoc v4.23.4 // source: infra/link.proto diff --git a/livekit/livekit_cloud_agent.pb.go b/livekit/livekit_cloud_agent.pb.go index 79589100f..529f76550 100644 --- a/livekit/livekit_cloud_agent.pb.go +++ b/livekit/livekit_cloud_agent.pb.go @@ -137,6 +137,220 @@ func (AgentEventType) EnumDescriptor() ([]byte, []int) { return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{1} } +type PrivateLinkProvisioningStatus_Status int32 + +const ( + PrivateLinkProvisioningStatus_PRIVATE_LINK_STATUS_UNKNOWN PrivateLinkProvisioningStatus_Status = 0 + PrivateLinkProvisioningStatus_PRIVATE_LINK_STATUS_PENDING PrivateLinkProvisioningStatus_Status = 1 + PrivateLinkProvisioningStatus_PRIVATE_LINK_STATUS_READY PrivateLinkProvisioningStatus_Status = 2 + PrivateLinkProvisioningStatus_PRIVATE_LINK_STATUS_DELETING PrivateLinkProvisioningStatus_Status = 3 + PrivateLinkProvisioningStatus_PRIVATE_LINK_STATUS_DELETED PrivateLinkProvisioningStatus_Status = 4 + PrivateLinkProvisioningStatus_PRIVATE_LINK_STATUS_FAILED PrivateLinkProvisioningStatus_Status = 5 +) + +// Enum value maps for PrivateLinkProvisioningStatus_Status. +var ( + PrivateLinkProvisioningStatus_Status_name = map[int32]string{ + 0: "PRIVATE_LINK_STATUS_UNKNOWN", + 1: "PRIVATE_LINK_STATUS_PENDING", + 2: "PRIVATE_LINK_STATUS_READY", + 3: "PRIVATE_LINK_STATUS_DELETING", + 4: "PRIVATE_LINK_STATUS_DELETED", + 5: "PRIVATE_LINK_STATUS_FAILED", + } + PrivateLinkProvisioningStatus_Status_value = map[string]int32{ + "PRIVATE_LINK_STATUS_UNKNOWN": 0, + "PRIVATE_LINK_STATUS_PENDING": 1, + "PRIVATE_LINK_STATUS_READY": 2, + "PRIVATE_LINK_STATUS_DELETING": 3, + "PRIVATE_LINK_STATUS_DELETED": 4, + "PRIVATE_LINK_STATUS_FAILED": 5, + } +) + +func (x PrivateLinkProvisioningStatus_Status) Enum() *PrivateLinkProvisioningStatus_Status { + p := new(PrivateLinkProvisioningStatus_Status) + *p = x + return p +} + +func (x PrivateLinkProvisioningStatus_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PrivateLinkProvisioningStatus_Status) Descriptor() protoreflect.EnumDescriptor { + return file_livekit_cloud_agent_proto_enumTypes[2].Descriptor() +} + +func (PrivateLinkProvisioningStatus_Status) Type() protoreflect.EnumType { + return &file_livekit_cloud_agent_proto_enumTypes[2] +} + +func (x PrivateLinkProvisioningStatus_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PrivateLinkProvisioningStatus_Status.Descriptor instead. +func (PrivateLinkProvisioningStatus_Status) EnumDescriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{30, 0} +} + +type PrivateLinkHealthStatus_Status int32 + +const ( + PrivateLinkHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN PrivateLinkHealthStatus_Status = 0 + PrivateLinkHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY PrivateLinkHealthStatus_Status = 1 + PrivateLinkHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY PrivateLinkHealthStatus_Status = 2 +) + +// Enum value maps for PrivateLinkHealthStatus_Status. +var ( + PrivateLinkHealthStatus_Status_name = map[int32]string{ + 0: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN", + 1: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY", + 2: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY", + } + PrivateLinkHealthStatus_Status_value = map[string]int32{ + "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN": 0, + "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY": 1, + "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY": 2, + } +) + +func (x PrivateLinkHealthStatus_Status) Enum() *PrivateLinkHealthStatus_Status { + p := new(PrivateLinkHealthStatus_Status) + *p = x + return p +} + +func (x PrivateLinkHealthStatus_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PrivateLinkHealthStatus_Status) Descriptor() protoreflect.EnumDescriptor { + return file_livekit_cloud_agent_proto_enumTypes[3].Descriptor() +} + +func (PrivateLinkHealthStatus_Status) Type() protoreflect.EnumType { + return &file_livekit_cloud_agent_proto_enumTypes[3] +} + +func (x PrivateLinkHealthStatus_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PrivateLinkHealthStatus_Status.Descriptor instead. +func (PrivateLinkHealthStatus_Status) EnumDescriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{31, 0} +} + +type PrivateLinkAttachmentProvisioningStatus_Status int32 + +const ( + PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN PrivateLinkAttachmentProvisioningStatus_Status = 0 + PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_PENDING PrivateLinkAttachmentProvisioningStatus_Status = 1 + PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_READY PrivateLinkAttachmentProvisioningStatus_Status = 2 + PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_DELETING PrivateLinkAttachmentProvisioningStatus_Status = 3 + PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_DELETED PrivateLinkAttachmentProvisioningStatus_Status = 4 + PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_FAILED PrivateLinkAttachmentProvisioningStatus_Status = 5 +) + +// Enum value maps for PrivateLinkAttachmentProvisioningStatus_Status. +var ( + PrivateLinkAttachmentProvisioningStatus_Status_name = map[int32]string{ + 0: "PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN", + 1: "PRIVATE_LINK_ATTACHMENT_STATUS_PENDING", + 2: "PRIVATE_LINK_ATTACHMENT_STATUS_READY", + 3: "PRIVATE_LINK_ATTACHMENT_STATUS_DELETING", + 4: "PRIVATE_LINK_ATTACHMENT_STATUS_DELETED", + 5: "PRIVATE_LINK_ATTACHMENT_STATUS_FAILED", + } + PrivateLinkAttachmentProvisioningStatus_Status_value = map[string]int32{ + "PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN": 0, + "PRIVATE_LINK_ATTACHMENT_STATUS_PENDING": 1, + "PRIVATE_LINK_ATTACHMENT_STATUS_READY": 2, + "PRIVATE_LINK_ATTACHMENT_STATUS_DELETING": 3, + "PRIVATE_LINK_ATTACHMENT_STATUS_DELETED": 4, + "PRIVATE_LINK_ATTACHMENT_STATUS_FAILED": 5, + } +) + +func (x PrivateLinkAttachmentProvisioningStatus_Status) Enum() *PrivateLinkAttachmentProvisioningStatus_Status { + p := new(PrivateLinkAttachmentProvisioningStatus_Status) + *p = x + return p +} + +func (x PrivateLinkAttachmentProvisioningStatus_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PrivateLinkAttachmentProvisioningStatus_Status) Descriptor() protoreflect.EnumDescriptor { + return file_livekit_cloud_agent_proto_enumTypes[4].Descriptor() +} + +func (PrivateLinkAttachmentProvisioningStatus_Status) Type() protoreflect.EnumType { + return &file_livekit_cloud_agent_proto_enumTypes[4] +} + +func (x PrivateLinkAttachmentProvisioningStatus_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PrivateLinkAttachmentProvisioningStatus_Status.Descriptor instead. +func (PrivateLinkAttachmentProvisioningStatus_Status) EnumDescriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{33, 0} +} + +type PrivateLinkAttachementHealthStatus_Status int32 + +const ( + PrivateLinkAttachementHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN PrivateLinkAttachementHealthStatus_Status = 0 + PrivateLinkAttachementHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY PrivateLinkAttachementHealthStatus_Status = 1 + PrivateLinkAttachementHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY PrivateLinkAttachementHealthStatus_Status = 2 +) + +// Enum value maps for PrivateLinkAttachementHealthStatus_Status. +var ( + PrivateLinkAttachementHealthStatus_Status_name = map[int32]string{ + 0: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN", + 1: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY", + 2: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY", + } + PrivateLinkAttachementHealthStatus_Status_value = map[string]int32{ + "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN": 0, + "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY": 1, + "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY": 2, + } +) + +func (x PrivateLinkAttachementHealthStatus_Status) Enum() *PrivateLinkAttachementHealthStatus_Status { + p := new(PrivateLinkAttachementHealthStatus_Status) + *p = x + return p +} + +func (x PrivateLinkAttachementHealthStatus_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PrivateLinkAttachementHealthStatus_Status) Descriptor() protoreflect.EnumDescriptor { + return file_livekit_cloud_agent_proto_enumTypes[5].Descriptor() +} + +func (PrivateLinkAttachementHealthStatus_Status) Type() protoreflect.EnumType { + return &file_livekit_cloud_agent_proto_enumTypes[5] +} + +func (x PrivateLinkAttachementHealthStatus_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PrivateLinkAttachementHealthStatus_Status.Descriptor instead. +func (PrivateLinkAttachementHealthStatus_Status) EnumDescriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{34, 0} +} + type AgentEvent struct { state protoimpl.MessageState `protogen:"open.v1"` Type AgentEventType `protobuf:"varint,1,opt,name=type,proto3,enum=livekit.AgentEventType" json:"type,omitempty"` @@ -2029,161 +2243,901 @@ func (*ClientSettingsRequest) Descriptor() ([]byte, []int) { return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{28} } -var File_livekit_cloud_agent_proto protoreflect.FileDescriptor +type PrivateLink struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrivateLinkId string `protobuf:"bytes,1,opt,name=private_link_id,json=privateLinkId,proto3" json:"private_link_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to Config: + // + // *PrivateLink_Aws + Config isPrivateLink_Config `protobuf_oneof:"config"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} -const file_livekit_cloud_agent_proto_rawDesc = "" + - "\n" + - "\x19livekit_cloud_agent.proto\x12\alivekit\x1a\x1fgoogle/protobuf/timestamp.proto\"\x89\x01\n" + - "\n" + - "AgentEvent\x12+\n" + - "\x04type\x18\x01 \x01(\x0e2\x17.livekit.AgentEventTypeR\x04type\x12\x14\n" + - "\x05count\x18\x02 \x01(\x05R\x05count\x128\n" + - "\ttimestamp\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\"\xdb\x01\n" + - "\vAgentSecret\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + - "\x05value\x18\x02 \x01(\fR\x05value\x129\n" + - "\n" + - "created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" + - "\n" + - "updated_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12,\n" + - "\x04kind\x18\x05 \x01(\x0e2\x18.livekit.AgentSecretKindR\x04kind\"\xe5\x01\n" + - "\x12CreateAgentRequest\x12!\n" + - "\n" + - "agent_name\x18\x01 \x01(\tB\x02\x18\x01R\tagentName\x12.\n" + - "\asecrets\x18\x02 \x03(\v2\x14.livekit.AgentSecretR\asecrets\x12\x1e\n" + - "\breplicas\x18\x03 \x01(\x05B\x02\x18\x01R\breplicas\x12%\n" + - "\fmax_replicas\x18\x04 \x01(\x05B\x02\x18\x01R\vmaxReplicas\x12\x1b\n" + - "\acpu_req\x18\x05 \x01(\tB\x02\x18\x01R\x06cpuReq\x12\x18\n" + - "\aregions\x18\x06 \x03(\tR\aregions\"\xb4\x02\n" + - "\x13CreateAgentResponse\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + - "\n" + - "agent_name\x18\x02 \x01(\tR\tagentName\x12\x16\n" + - "\x06status\x18\x03 \x01(\tR\x06status\x12\x18\n" + - "\aversion\x18\x04 \x01(\tR\aversion\x12#\n" + - "\rpresigned_url\x18\x05 \x01(\tR\fpresignedUrl\x12\x10\n" + - "\x03tag\x18\x06 \x01(\tR\x03tag\x12%\n" + - "\x0eserver_regions\x18\a \x03(\tR\rserverRegions\x12S\n" + - "\x16presigned_post_request\x18\b \x01(\v2\x1d.livekit.PresignedPostRequestR\x14presignedPostRequest\"\xa6\x01\n" + - "\x14PresignedPostRequest\x12\x10\n" + - "\x03url\x18\x01 \x01(\tR\x03url\x12A\n" + - "\x06values\x18\x02 \x03(\v2).livekit.PresignedPostRequest.ValuesEntryR\x06values\x1a9\n" + - "\vValuesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xae\x03\n" + - "\x0fAgentDeployment\x12\x16\n" + - "\x06region\x18\x01 \x01(\tR\x06region\x12\x19\n" + - "\bagent_id\x18\x02 \x01(\tR\aagentId\x12\x16\n" + - "\x06status\x18\x03 \x01(\tR\x06status\x12\x1a\n" + - "\breplicas\x18\x04 \x01(\x05R\breplicas\x12!\n" + - "\fmin_replicas\x18\x05 \x01(\x05R\vminReplicas\x12!\n" + - "\fmax_replicas\x18\x06 \x01(\x05R\vmaxReplicas\x12\x17\n" + - "\acpu_req\x18\a \x01(\tR\x06cpuReq\x12\x17\n" + - "\acur_cpu\x18\b \x01(\tR\x06curCpu\x12\x17\n" + - "\acur_mem\x18\t \x01(\tR\x06curMem\x12\x17\n" + - "\amem_req\x18\n" + - " \x01(\tR\x06memReq\x12\x1b\n" + - "\tmem_limit\x18\v \x01(\tR\bmemLimit\x12\x1b\n" + - "\tcpu_limit\x18\f \x01(\tR\bcpuLimit\x12#\n" + - "\rserver_region\x18\r \x01(\tR\fserverRegion\x12+\n" + - "\x06events\x18\x0e \x03(\v2\x13.livekit.AgentEventR\x06events\"\x93\x02\n" + - "\tAgentInfo\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + - "\n" + - "agent_name\x18\x02 \x01(\tR\tagentName\x12\x18\n" + - "\aversion\x18\x03 \x01(\tR\aversion\x12E\n" + - "\x11agent_deployments\x18\x04 \x03(\v2\x18.livekit.AgentDeploymentR\x10agentDeployments\x12.\n" + - "\asecrets\x18\x05 \x03(\v2\x14.livekit.AgentSecretR\asecrets\x12;\n" + - "\vdeployed_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\n" + - "deployedAt\"M\n" + - "\x11ListAgentsRequest\x12\x1d\n" + - "\n" + - "agent_name\x18\x01 \x01(\tR\tagentName\x12\x19\n" + - "\bagent_id\x18\x02 \x01(\tR\aagentId\"@\n" + - "\x12ListAgentsResponse\x12*\n" + - "\x06agents\x18\x01 \x03(\v2\x12.livekit.AgentInfoR\x06agents\"\xee\x02\n" + - "\fAgentVersion\x12\x18\n" + - "\aversion\x18\x01 \x01(\tR\aversion\x12\x18\n" + - "\acurrent\x18\x02 \x01(\bR\acurrent\x129\n" + - "\n" + - "created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12;\n" + - "\vdeployed_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + - "deployedAt\x12E\n" + - "\n" + - "attributes\x18\x05 \x03(\v2%.livekit.AgentVersion.AttributesEntryR\n" + - "attributes\x12\x16\n" + - "\x06status\x18\x06 \x01(\tR\x06status\x12\x14\n" + - "\x05owner\x18\a \x01(\tR\x05owner\x1a=\n" + - "\x0fAttributesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"T\n" + - "\x18ListAgentVersionsRequest\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + - "\n" + - "agent_name\x18\x02 \x01(\tR\tagentName\"N\n" + - "\x19ListAgentVersionsResponse\x121\n" + - "\bversions\x18\x01 \x03(\v2\x15.livekit.AgentVersionR\bversions\"\x80\x02\n" + - "\x12UpdateAgentRequest\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12!\n" + - "\n" + - "agent_name\x18\x02 \x01(\tB\x02\x18\x01R\tagentName\x12\x1e\n" + - "\breplicas\x18\x03 \x01(\x05B\x02\x18\x01R\breplicas\x12%\n" + - "\fmax_replicas\x18\x04 \x01(\x05B\x02\x18\x01R\vmaxReplicas\x12\x1b\n" + - "\acpu_req\x18\x05 \x01(\tB\x02\x18\x01R\x06cpuReq\x12\x18\n" + - "\aregions\x18\x06 \x03(\tR\aregions\x12.\n" + - "\asecrets\x18\a \x03(\v2\x14.livekit.AgentSecretR\asecrets\"I\n" + - "\x13UpdateAgentResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessage\"0\n" + - "\x13RestartAgentRequest\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\"J\n" + - "\x14RestartAgentResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessage\"\xe6\x01\n" + - "\x12DeployAgentRequest\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12!\n" + - "\n" + - "agent_name\x18\x02 \x01(\tB\x02\x18\x01R\tagentName\x12.\n" + - "\asecrets\x18\x03 \x03(\v2\x14.livekit.AgentSecretR\asecrets\x12\x1e\n" + - "\breplicas\x18\x04 \x01(\x05B\x02\x18\x01R\breplicas\x12%\n" + - "\fmax_replicas\x18\x05 \x01(\x05B\x02\x18\x01R\vmaxReplicas\x12\x1b\n" + - "\acpu_req\x18\x06 \x01(\tB\x02\x18\x01R\x06cpuReq\"\xf0\x01\n" + - "\x13DeployAgentResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessage\x12\x19\n" + - "\bagent_id\x18\x03 \x01(\tR\aagentId\x12#\n" + - "\rpresigned_url\x18\x04 \x01(\tR\fpresignedUrl\x12\x10\n" + - "\x03tag\x18\x05 \x01(\tR\x03tag\x12S\n" + - "\x16presigned_post_request\x18\x06 \x01(\v2\x1d.livekit.PresignedPostRequestR\x14presignedPostRequest\"\xbb\x01\n" + - "\x19UpdateAgentSecretsRequest\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + - "\n" + - "agent_name\x18\x02 \x01(\tR\tagentName\x12\x1c\n" + - "\toverwrite\x18\x03 \x01(\bR\toverwrite\x12.\n" + - "\asecrets\x18\x04 \x03(\v2\x14.livekit.AgentSecretR\asecrets\x12\x16\n" + - "\x06remove\x18\x05 \x03(\tR\x06remove\"P\n" + - "\x1aUpdateAgentSecretsResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessage\"j\n" + - "\x14RollbackAgentRequest\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + - "\n" + - "agent_name\x18\x02 \x01(\tR\tagentName\x12\x18\n" + - "\aversion\x18\x03 \x01(\tR\aversion\"K\n" + - "\x15RollbackAgentResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessage\"N\n" + - "\x12DeleteAgentRequest\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + - "\n" + - "agent_name\x18\x02 \x01(\tR\tagentName\"I\n" + - "\x13DeleteAgentResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessage\"S\n" + - "\x17ListAgentSecretsRequest\x12\x19\n" + - "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + - "\n" + - "agent_name\x18\x02 \x01(\tR\tagentName\"J\n" + +func (x *PrivateLink) Reset() { + *x = PrivateLink{} + mi := &file_livekit_cloud_agent_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PrivateLink) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivateLink) ProtoMessage() {} + +func (x *PrivateLink) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_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 PrivateLink.ProtoReflect.Descriptor instead. +func (*PrivateLink) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{29} +} + +func (x *PrivateLink) GetPrivateLinkId() string { + if x != nil { + return x.PrivateLinkId + } + return "" +} + +func (x *PrivateLink) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PrivateLink) GetConfig() isPrivateLink_Config { + if x != nil { + return x.Config + } + return nil +} + +func (x *PrivateLink) GetAws() *PrivateLink_AWSConfig { + if x != nil { + if x, ok := x.Config.(*PrivateLink_Aws); ok { + return x.Aws + } + } + return nil +} + +type isPrivateLink_Config interface { + isPrivateLink_Config() +} + +type PrivateLink_Aws struct { + Aws *PrivateLink_AWSConfig `protobuf:"bytes,3,opt,name=aws,proto3,oneof"` +} + +func (*PrivateLink_Aws) isPrivateLink_Config() {} + +type PrivateLinkProvisioningStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status PrivateLinkProvisioningStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=livekit.PrivateLinkProvisioningStatus_Status" json:"status,omitempty"` + Error *string `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PrivateLinkProvisioningStatus) Reset() { + *x = PrivateLinkProvisioningStatus{} + mi := &file_livekit_cloud_agent_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PrivateLinkProvisioningStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivateLinkProvisioningStatus) ProtoMessage() {} + +func (x *PrivateLinkProvisioningStatus) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_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 PrivateLinkProvisioningStatus.ProtoReflect.Descriptor instead. +func (*PrivateLinkProvisioningStatus) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{30} +} + +func (x *PrivateLinkProvisioningStatus) GetStatus() PrivateLinkProvisioningStatus_Status { + if x != nil { + return x.Status + } + return PrivateLinkProvisioningStatus_PRIVATE_LINK_STATUS_UNKNOWN +} + +func (x *PrivateLinkProvisioningStatus) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +type PrivateLinkHealthStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status PrivateLinkHealthStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=livekit.PrivateLinkHealthStatus_Status" json:"status,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PrivateLinkHealthStatus) Reset() { + *x = PrivateLinkHealthStatus{} + mi := &file_livekit_cloud_agent_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PrivateLinkHealthStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivateLinkHealthStatus) ProtoMessage() {} + +func (x *PrivateLinkHealthStatus) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_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 PrivateLinkHealthStatus.ProtoReflect.Descriptor instead. +func (*PrivateLinkHealthStatus) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{31} +} + +func (x *PrivateLinkHealthStatus) GetStatus() PrivateLinkHealthStatus_Status { + if x != nil { + return x.Status + } + return PrivateLinkHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN +} + +func (x *PrivateLinkHealthStatus) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +type PrivateLinkAttachment struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrivateLinkAttachmentId string `protobuf:"bytes,1,opt,name=private_link_attachment_id,json=privateLinkAttachmentId,proto3" json:"private_link_attachment_id,omitempty"` + PrivateLinkId string `protobuf:"bytes,2,opt,name=private_link_id,json=privateLinkId,proto3" json:"private_link_id,omitempty"` + AgentId string `protobuf:"bytes,3,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PrivateLinkAttachment) Reset() { + *x = PrivateLinkAttachment{} + mi := &file_livekit_cloud_agent_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PrivateLinkAttachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivateLinkAttachment) ProtoMessage() {} + +func (x *PrivateLinkAttachment) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_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 PrivateLinkAttachment.ProtoReflect.Descriptor instead. +func (*PrivateLinkAttachment) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{32} +} + +func (x *PrivateLinkAttachment) GetPrivateLinkAttachmentId() string { + if x != nil { + return x.PrivateLinkAttachmentId + } + return "" +} + +func (x *PrivateLinkAttachment) GetPrivateLinkId() string { + if x != nil { + return x.PrivateLinkId + } + return "" +} + +func (x *PrivateLinkAttachment) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +func (x *PrivateLinkAttachment) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +type PrivateLinkAttachmentProvisioningStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status PrivateLinkAttachmentProvisioningStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=livekit.PrivateLinkAttachmentProvisioningStatus_Status" json:"status,omitempty"` + Error *string `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PrivateLinkAttachmentProvisioningStatus) Reset() { + *x = PrivateLinkAttachmentProvisioningStatus{} + mi := &file_livekit_cloud_agent_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PrivateLinkAttachmentProvisioningStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivateLinkAttachmentProvisioningStatus) ProtoMessage() {} + +func (x *PrivateLinkAttachmentProvisioningStatus) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_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 PrivateLinkAttachmentProvisioningStatus.ProtoReflect.Descriptor instead. +func (*PrivateLinkAttachmentProvisioningStatus) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{33} +} + +func (x *PrivateLinkAttachmentProvisioningStatus) GetStatus() PrivateLinkAttachmentProvisioningStatus_Status { + if x != nil { + return x.Status + } + return PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN +} + +func (x *PrivateLinkAttachmentProvisioningStatus) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +type PrivateLinkAttachementHealthStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status PrivateLinkAttachementHealthStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=livekit.PrivateLinkAttachementHealthStatus_Status" json:"status,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PrivateLinkAttachementHealthStatus) Reset() { + *x = PrivateLinkAttachementHealthStatus{} + mi := &file_livekit_cloud_agent_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PrivateLinkAttachementHealthStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivateLinkAttachementHealthStatus) ProtoMessage() {} + +func (x *PrivateLinkAttachementHealthStatus) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_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 PrivateLinkAttachementHealthStatus.ProtoReflect.Descriptor instead. +func (*PrivateLinkAttachementHealthStatus) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{34} +} + +func (x *PrivateLinkAttachementHealthStatus) GetStatus() PrivateLinkAttachementHealthStatus_Status { + if x != nil { + return x.Status + } + return PrivateLinkAttachementHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN +} + +func (x *PrivateLinkAttachementHealthStatus) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +type CreatePrivateLinkRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to Config: + // + // *CreatePrivateLinkRequest_Aws + Config isCreatePrivateLinkRequest_Config `protobuf_oneof:"config"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreatePrivateLinkRequest) Reset() { + *x = CreatePrivateLinkRequest{} + mi := &file_livekit_cloud_agent_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreatePrivateLinkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePrivateLinkRequest) ProtoMessage() {} + +func (x *CreatePrivateLinkRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_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 CreatePrivateLinkRequest.ProtoReflect.Descriptor instead. +func (*CreatePrivateLinkRequest) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{35} +} + +func (x *CreatePrivateLinkRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreatePrivateLinkRequest) GetConfig() isCreatePrivateLinkRequest_Config { + if x != nil { + return x.Config + } + return nil +} + +func (x *CreatePrivateLinkRequest) GetAws() *CreatePrivateLinkRequest_AWSCreateConfig { + if x != nil { + if x, ok := x.Config.(*CreatePrivateLinkRequest_Aws); ok { + return x.Aws + } + } + return nil +} + +type isCreatePrivateLinkRequest_Config interface { + isCreatePrivateLinkRequest_Config() +} + +type CreatePrivateLinkRequest_Aws struct { + Aws *CreatePrivateLinkRequest_AWSCreateConfig `protobuf:"bytes,2,opt,name=aws,proto3,oneof"` +} + +func (*CreatePrivateLinkRequest_Aws) isCreatePrivateLinkRequest_Config() {} + +type CreatePrivateLinkResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrivateLink *PrivateLink `protobuf:"bytes,1,opt,name=private_link,json=privateLink,proto3" json:"private_link,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreatePrivateLinkResponse) Reset() { + *x = CreatePrivateLinkResponse{} + mi := &file_livekit_cloud_agent_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreatePrivateLinkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePrivateLinkResponse) ProtoMessage() {} + +func (x *CreatePrivateLinkResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[36] + 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 CreatePrivateLinkResponse.ProtoReflect.Descriptor instead. +func (*CreatePrivateLinkResponse) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{36} +} + +func (x *CreatePrivateLinkResponse) GetPrivateLink() *PrivateLink { + if x != nil { + return x.PrivateLink + } + return nil +} + +type GetPrivateLinkProvisioningStatusRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrivateLinkId string `protobuf:"bytes,1,opt,name=private_link_id,json=privateLinkId,proto3" json:"private_link_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPrivateLinkProvisioningStatusRequest) Reset() { + *x = GetPrivateLinkProvisioningStatusRequest{} + mi := &file_livekit_cloud_agent_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPrivateLinkProvisioningStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPrivateLinkProvisioningStatusRequest) ProtoMessage() {} + +func (x *GetPrivateLinkProvisioningStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[37] + 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 GetPrivateLinkProvisioningStatusRequest.ProtoReflect.Descriptor instead. +func (*GetPrivateLinkProvisioningStatusRequest) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{37} +} + +func (x *GetPrivateLinkProvisioningStatusRequest) GetPrivateLinkId() string { + if x != nil { + return x.PrivateLinkId + } + return "" +} + +type GetPrivateLinkProvisioningStatusResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Value *PrivateLinkProvisioningStatus `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPrivateLinkProvisioningStatusResponse) Reset() { + *x = GetPrivateLinkProvisioningStatusResponse{} + mi := &file_livekit_cloud_agent_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPrivateLinkProvisioningStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPrivateLinkProvisioningStatusResponse) ProtoMessage() {} + +func (x *GetPrivateLinkProvisioningStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[38] + 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 GetPrivateLinkProvisioningStatusResponse.ProtoReflect.Descriptor instead. +func (*GetPrivateLinkProvisioningStatusResponse) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{38} +} + +func (x *GetPrivateLinkProvisioningStatusResponse) GetValue() *PrivateLinkProvisioningStatus { + if x != nil { + return x.Value + } + return nil +} + +type GetPrivateLinkHealthStatusRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrivateLinkId string `protobuf:"bytes,1,opt,name=private_link_id,json=privateLinkId,proto3" json:"private_link_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPrivateLinkHealthStatusRequest) Reset() { + *x = GetPrivateLinkHealthStatusRequest{} + mi := &file_livekit_cloud_agent_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPrivateLinkHealthStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPrivateLinkHealthStatusRequest) ProtoMessage() {} + +func (x *GetPrivateLinkHealthStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[39] + 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 GetPrivateLinkHealthStatusRequest.ProtoReflect.Descriptor instead. +func (*GetPrivateLinkHealthStatusRequest) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{39} +} + +func (x *GetPrivateLinkHealthStatusRequest) GetPrivateLinkId() string { + if x != nil { + return x.PrivateLinkId + } + return "" +} + +type GetPrivateLinkHealthStatusResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Value *PrivateLinkHealthStatus `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPrivateLinkHealthStatusResponse) Reset() { + *x = GetPrivateLinkHealthStatusResponse{} + mi := &file_livekit_cloud_agent_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPrivateLinkHealthStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPrivateLinkHealthStatusResponse) ProtoMessage() {} + +func (x *GetPrivateLinkHealthStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[40] + 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 GetPrivateLinkHealthStatusResponse.ProtoReflect.Descriptor instead. +func (*GetPrivateLinkHealthStatusResponse) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{40} +} + +func (x *GetPrivateLinkHealthStatusResponse) GetValue() *PrivateLinkHealthStatus { + if x != nil { + return x.Value + } + return nil +} + +type PrivateLink_AWSConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PrivateLink_AWSConfig) Reset() { + *x = PrivateLink_AWSConfig{} + mi := &file_livekit_cloud_agent_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PrivateLink_AWSConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivateLink_AWSConfig) ProtoMessage() {} + +func (x *PrivateLink_AWSConfig) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[43] + 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 PrivateLink_AWSConfig.ProtoReflect.Descriptor instead. +func (*PrivateLink_AWSConfig) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{29, 0} +} + +func (x *PrivateLink_AWSConfig) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +type CreatePrivateLinkRequest_AWSCreateConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreatePrivateLinkRequest_AWSCreateConfig) Reset() { + *x = CreatePrivateLinkRequest_AWSCreateConfig{} + mi := &file_livekit_cloud_agent_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreatePrivateLinkRequest_AWSCreateConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePrivateLinkRequest_AWSCreateConfig) ProtoMessage() {} + +func (x *CreatePrivateLinkRequest_AWSCreateConfig) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[44] + 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 CreatePrivateLinkRequest_AWSCreateConfig.ProtoReflect.Descriptor instead. +func (*CreatePrivateLinkRequest_AWSCreateConfig) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{35, 0} +} + +func (x *CreatePrivateLinkRequest_AWSCreateConfig) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +var File_livekit_cloud_agent_proto protoreflect.FileDescriptor + +const file_livekit_cloud_agent_proto_rawDesc = "" + + "\n" + + "\x19livekit_cloud_agent.proto\x12\alivekit\x1a\x1fgoogle/protobuf/timestamp.proto\"\x89\x01\n" + + "\n" + + "AgentEvent\x12+\n" + + "\x04type\x18\x01 \x01(\x0e2\x17.livekit.AgentEventTypeR\x04type\x12\x14\n" + + "\x05count\x18\x02 \x01(\x05R\x05count\x128\n" + + "\ttimestamp\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\"\xdb\x01\n" + + "\vAgentSecret\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05value\x18\x02 \x01(\fR\x05value\x129\n" + + "\n" + + "created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" + + "\n" + + "updated_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12,\n" + + "\x04kind\x18\x05 \x01(\x0e2\x18.livekit.AgentSecretKindR\x04kind\"\xe5\x01\n" + + "\x12CreateAgentRequest\x12!\n" + + "\n" + + "agent_name\x18\x01 \x01(\tB\x02\x18\x01R\tagentName\x12.\n" + + "\asecrets\x18\x02 \x03(\v2\x14.livekit.AgentSecretR\asecrets\x12\x1e\n" + + "\breplicas\x18\x03 \x01(\x05B\x02\x18\x01R\breplicas\x12%\n" + + "\fmax_replicas\x18\x04 \x01(\x05B\x02\x18\x01R\vmaxReplicas\x12\x1b\n" + + "\acpu_req\x18\x05 \x01(\tB\x02\x18\x01R\x06cpuReq\x12\x18\n" + + "\aregions\x18\x06 \x03(\tR\aregions\"\xb4\x02\n" + + "\x13CreateAgentResponse\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + + "\n" + + "agent_name\x18\x02 \x01(\tR\tagentName\x12\x16\n" + + "\x06status\x18\x03 \x01(\tR\x06status\x12\x18\n" + + "\aversion\x18\x04 \x01(\tR\aversion\x12#\n" + + "\rpresigned_url\x18\x05 \x01(\tR\fpresignedUrl\x12\x10\n" + + "\x03tag\x18\x06 \x01(\tR\x03tag\x12%\n" + + "\x0eserver_regions\x18\a \x03(\tR\rserverRegions\x12S\n" + + "\x16presigned_post_request\x18\b \x01(\v2\x1d.livekit.PresignedPostRequestR\x14presignedPostRequest\"\xa6\x01\n" + + "\x14PresignedPostRequest\x12\x10\n" + + "\x03url\x18\x01 \x01(\tR\x03url\x12A\n" + + "\x06values\x18\x02 \x03(\v2).livekit.PresignedPostRequest.ValuesEntryR\x06values\x1a9\n" + + "\vValuesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xae\x03\n" + + "\x0fAgentDeployment\x12\x16\n" + + "\x06region\x18\x01 \x01(\tR\x06region\x12\x19\n" + + "\bagent_id\x18\x02 \x01(\tR\aagentId\x12\x16\n" + + "\x06status\x18\x03 \x01(\tR\x06status\x12\x1a\n" + + "\breplicas\x18\x04 \x01(\x05R\breplicas\x12!\n" + + "\fmin_replicas\x18\x05 \x01(\x05R\vminReplicas\x12!\n" + + "\fmax_replicas\x18\x06 \x01(\x05R\vmaxReplicas\x12\x17\n" + + "\acpu_req\x18\a \x01(\tR\x06cpuReq\x12\x17\n" + + "\acur_cpu\x18\b \x01(\tR\x06curCpu\x12\x17\n" + + "\acur_mem\x18\t \x01(\tR\x06curMem\x12\x17\n" + + "\amem_req\x18\n" + + " \x01(\tR\x06memReq\x12\x1b\n" + + "\tmem_limit\x18\v \x01(\tR\bmemLimit\x12\x1b\n" + + "\tcpu_limit\x18\f \x01(\tR\bcpuLimit\x12#\n" + + "\rserver_region\x18\r \x01(\tR\fserverRegion\x12+\n" + + "\x06events\x18\x0e \x03(\v2\x13.livekit.AgentEventR\x06events\"\x93\x02\n" + + "\tAgentInfo\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + + "\n" + + "agent_name\x18\x02 \x01(\tR\tagentName\x12\x18\n" + + "\aversion\x18\x03 \x01(\tR\aversion\x12E\n" + + "\x11agent_deployments\x18\x04 \x03(\v2\x18.livekit.AgentDeploymentR\x10agentDeployments\x12.\n" + + "\asecrets\x18\x05 \x03(\v2\x14.livekit.AgentSecretR\asecrets\x12;\n" + + "\vdeployed_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "deployedAt\"M\n" + + "\x11ListAgentsRequest\x12\x1d\n" + + "\n" + + "agent_name\x18\x01 \x01(\tR\tagentName\x12\x19\n" + + "\bagent_id\x18\x02 \x01(\tR\aagentId\"@\n" + + "\x12ListAgentsResponse\x12*\n" + + "\x06agents\x18\x01 \x03(\v2\x12.livekit.AgentInfoR\x06agents\"\xee\x02\n" + + "\fAgentVersion\x12\x18\n" + + "\aversion\x18\x01 \x01(\tR\aversion\x12\x18\n" + + "\acurrent\x18\x02 \x01(\bR\acurrent\x129\n" + + "\n" + + "created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12;\n" + + "\vdeployed_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "deployedAt\x12E\n" + + "\n" + + "attributes\x18\x05 \x03(\v2%.livekit.AgentVersion.AttributesEntryR\n" + + "attributes\x12\x16\n" + + "\x06status\x18\x06 \x01(\tR\x06status\x12\x14\n" + + "\x05owner\x18\a \x01(\tR\x05owner\x1a=\n" + + "\x0fAttributesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"T\n" + + "\x18ListAgentVersionsRequest\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + + "\n" + + "agent_name\x18\x02 \x01(\tR\tagentName\"N\n" + + "\x19ListAgentVersionsResponse\x121\n" + + "\bversions\x18\x01 \x03(\v2\x15.livekit.AgentVersionR\bversions\"\x80\x02\n" + + "\x12UpdateAgentRequest\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12!\n" + + "\n" + + "agent_name\x18\x02 \x01(\tB\x02\x18\x01R\tagentName\x12\x1e\n" + + "\breplicas\x18\x03 \x01(\x05B\x02\x18\x01R\breplicas\x12%\n" + + "\fmax_replicas\x18\x04 \x01(\x05B\x02\x18\x01R\vmaxReplicas\x12\x1b\n" + + "\acpu_req\x18\x05 \x01(\tB\x02\x18\x01R\x06cpuReq\x12\x18\n" + + "\aregions\x18\x06 \x03(\tR\aregions\x12.\n" + + "\asecrets\x18\a \x03(\v2\x14.livekit.AgentSecretR\asecrets\"I\n" + + "\x13UpdateAgentResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\"0\n" + + "\x13RestartAgentRequest\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\"J\n" + + "\x14RestartAgentResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\"\xe6\x01\n" + + "\x12DeployAgentRequest\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12!\n" + + "\n" + + "agent_name\x18\x02 \x01(\tB\x02\x18\x01R\tagentName\x12.\n" + + "\asecrets\x18\x03 \x03(\v2\x14.livekit.AgentSecretR\asecrets\x12\x1e\n" + + "\breplicas\x18\x04 \x01(\x05B\x02\x18\x01R\breplicas\x12%\n" + + "\fmax_replicas\x18\x05 \x01(\x05B\x02\x18\x01R\vmaxReplicas\x12\x1b\n" + + "\acpu_req\x18\x06 \x01(\tB\x02\x18\x01R\x06cpuReq\"\xf0\x01\n" + + "\x13DeployAgentResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12\x19\n" + + "\bagent_id\x18\x03 \x01(\tR\aagentId\x12#\n" + + "\rpresigned_url\x18\x04 \x01(\tR\fpresignedUrl\x12\x10\n" + + "\x03tag\x18\x05 \x01(\tR\x03tag\x12S\n" + + "\x16presigned_post_request\x18\x06 \x01(\v2\x1d.livekit.PresignedPostRequestR\x14presignedPostRequest\"\xbb\x01\n" + + "\x19UpdateAgentSecretsRequest\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + + "\n" + + "agent_name\x18\x02 \x01(\tR\tagentName\x12\x1c\n" + + "\toverwrite\x18\x03 \x01(\bR\toverwrite\x12.\n" + + "\asecrets\x18\x04 \x03(\v2\x14.livekit.AgentSecretR\asecrets\x12\x16\n" + + "\x06remove\x18\x05 \x03(\tR\x06remove\"P\n" + + "\x1aUpdateAgentSecretsResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\"j\n" + + "\x14RollbackAgentRequest\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + + "\n" + + "agent_name\x18\x02 \x01(\tR\tagentName\x12\x18\n" + + "\aversion\x18\x03 \x01(\tR\aversion\"K\n" + + "\x15RollbackAgentResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\"N\n" + + "\x12DeleteAgentRequest\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + + "\n" + + "agent_name\x18\x02 \x01(\tR\tagentName\"I\n" + + "\x13DeleteAgentResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\"S\n" + + "\x17ListAgentSecretsRequest\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12\x1d\n" + + "\n" + + "agent_name\x18\x02 \x01(\tR\tagentName\"J\n" + "\x18ListAgentSecretsResponse\x12.\n" + "\asecrets\x18\x01 \x03(\v2\x14.livekit.AgentSecretR\asecrets\"9\n" + "\rSettingsParam\x12\x12\n" + @@ -2191,7 +3145,74 @@ const file_livekit_cloud_agent_proto_rawDesc = "" + "\x05value\x18\x02 \x01(\tR\x05value\"H\n" + "\x16ClientSettingsResponse\x12.\n" + "\x06params\x18\x01 \x03(\v2\x16.livekit.SettingsParamR\x06params\"\x17\n" + - "\x15ClientSettingsRequest*o\n" + + "\x15ClientSettingsRequest\"\xb0\x01\n" + + "\vPrivateLink\x12&\n" + + "\x0fprivate_link_id\x18\x01 \x01(\tR\rprivateLinkId\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x122\n" + + "\x03aws\x18\x03 \x01(\v2\x1e.livekit.PrivateLink.AWSConfigH\x00R\x03aws\x1a'\n" + + "\tAWSConfig\x12\x1a\n" + + "\bendpoint\x18\x01 \x01(\tR\bendpointB\b\n" + + "\x06config\"\xda\x02\n" + + "\x1dPrivateLinkProvisioningStatus\x12E\n" + + "\x06status\x18\x01 \x01(\x0e2-.livekit.PrivateLinkProvisioningStatus.StatusR\x06status\x12\x19\n" + + "\x05error\x18\x02 \x01(\tH\x00R\x05error\x88\x01\x01\"\xcc\x01\n" + + "\x06Status\x12\x1f\n" + + "\x1bPRIVATE_LINK_STATUS_UNKNOWN\x10\x00\x12\x1f\n" + + "\x1bPRIVATE_LINK_STATUS_PENDING\x10\x01\x12\x1d\n" + + "\x19PRIVATE_LINK_STATUS_READY\x10\x02\x12 \n" + + "\x1cPRIVATE_LINK_STATUS_DELETING\x10\x03\x12\x1f\n" + + "\x1bPRIVATE_LINK_STATUS_DELETED\x10\x04\x12\x1e\n" + + "\x1aPRIVATE_LINK_STATUS_FAILED\x10\x05B\b\n" + + "\x06_error\"\xbb\x02\n" + + "\x17PrivateLinkHealthStatus\x12?\n" + + "\x06status\x18\x01 \x01(\x0e2'.livekit.PrivateLinkHealthStatus.StatusR\x06status\x129\n" + + "\n" + + "updated_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\"\xa3\x01\n" + + "\x06Status\x121\n" + + "-PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN\x10\x00\x121\n" + + "-PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY\x10\x01\x123\n" + + "/PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY\x10\x02\"\xd2\x01\n" + + "\x15PrivateLinkAttachment\x12;\n" + + "\x1aprivate_link_attachment_id\x18\x01 \x01(\tR\x17privateLinkAttachmentId\x12&\n" + + "\x0fprivate_link_id\x18\x02 \x01(\tR\rprivateLinkId\x12\x19\n" + + "\bagent_id\x18\x03 \x01(\tR\aagentId\x129\n" + + "\n" + + "created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xb0\x03\n" + + "'PrivateLinkAttachmentProvisioningStatus\x12O\n" + + "\x06status\x18\x01 \x01(\x0e27.livekit.PrivateLinkAttachmentProvisioningStatus.StatusR\x06status\x12\x19\n" + + "\x05error\x18\x02 \x01(\tH\x00R\x05error\x88\x01\x01\"\x8e\x02\n" + + "\x06Status\x12*\n" + + "&PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN\x10\x00\x12*\n" + + "&PRIVATE_LINK_ATTACHMENT_STATUS_PENDING\x10\x01\x12(\n" + + "$PRIVATE_LINK_ATTACHMENT_STATUS_READY\x10\x02\x12+\n" + + "'PRIVATE_LINK_ATTACHMENT_STATUS_DELETING\x10\x03\x12*\n" + + "&PRIVATE_LINK_ATTACHMENT_STATUS_DELETED\x10\x04\x12)\n" + + "%PRIVATE_LINK_ATTACHMENT_STATUS_FAILED\x10\x05B\b\n" + + "\x06_error\"\xd1\x02\n" + + "\"PrivateLinkAttachementHealthStatus\x12J\n" + + "\x06status\x18\x01 \x01(\x0e22.livekit.PrivateLinkAttachementHealthStatus.StatusR\x06status\x129\n" + + "\n" + + "updated_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\"\xa3\x01\n" + + "\x06Status\x121\n" + + "-PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN\x10\x00\x121\n" + + "-PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY\x10\x01\x123\n" + + "/PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY\x10\x02\"\xae\x01\n" + + "\x18CreatePrivateLinkRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12E\n" + + "\x03aws\x18\x02 \x01(\v21.livekit.CreatePrivateLinkRequest.AWSCreateConfigH\x00R\x03aws\x1a-\n" + + "\x0fAWSCreateConfig\x12\x1a\n" + + "\bendpoint\x18\x01 \x01(\tR\bendpointB\b\n" + + "\x06config\"T\n" + + "\x19CreatePrivateLinkResponse\x127\n" + + "\fprivate_link\x18\x01 \x01(\v2\x14.livekit.PrivateLinkR\vprivateLink\"Q\n" + + "'GetPrivateLinkProvisioningStatusRequest\x12&\n" + + "\x0fprivate_link_id\x18\x01 \x01(\tR\rprivateLinkId\"h\n" + + "(GetPrivateLinkProvisioningStatusResponse\x12<\n" + + "\x05value\x18\x01 \x01(\v2&.livekit.PrivateLinkProvisioningStatusR\x05value\"K\n" + + "!GetPrivateLinkHealthStatusRequest\x12&\n" + + "\x0fprivate_link_id\x18\x01 \x01(\tR\rprivateLinkId\"\\\n" + + "\"GetPrivateLinkHealthStatusResponse\x126\n" + + "\x05value\x18\x01 \x01(\v2 .livekit.PrivateLinkHealthStatusR\x05value*o\n" + "\x0fAgentSecretKind\x12\x1d\n" + "\x19AGENT_SECRET_KIND_UNKNOWN\x10\x00\x12!\n" + "\x1dAGENT_SECRET_KIND_ENVIRONMENT\x10\x01\x12\x1a\n" + @@ -2200,7 +3221,7 @@ const file_livekit_cloud_agent_proto_rawDesc = "" + "\x18AGENT_EVENT_TYPE_UNKNOWN\x10\x00\x12(\n" + "$AGENT_EVENT_TYPE_APPLICATION_CRASHED\x10\x01\x12.\n" + "*AGENT_EVENT_TYPE_RESTARTED_HIGH_DISK_USAGE\x10\x02\x120\n" + - ",AGENT_EVENT_TYPE_RESTARTED_HIGH_MEMORY_USAGE\x10\x032\x98\a\n" + + ",AGENT_EVENT_TYPE_RESTARTED_HIGH_MEMORY_USAGE\x10\x032\xfb\t\n" + "\n" + "CloudAgent\x12J\n" + "\vCreateAgent\x12\x1b.livekit.CreateAgentRequest\x1a\x1c.livekit.CreateAgentResponse\"\x00\x12G\n" + @@ -2214,7 +3235,10 @@ const file_livekit_cloud_agent_proto_rawDesc = "" + "\x12UpdateAgentSecrets\x12\".livekit.UpdateAgentSecretsRequest\x1a#.livekit.UpdateAgentSecretsResponse\"\x00\x12P\n" + "\rRollbackAgent\x12\x1d.livekit.RollbackAgentRequest\x1a\x1e.livekit.RollbackAgentResponse\"\x00\x12J\n" + "\vDeleteAgent\x12\x1b.livekit.DeleteAgentRequest\x1a\x1c.livekit.DeleteAgentResponse\"\x00\x12V\n" + - "\x11GetClientSettings\x12\x1e.livekit.ClientSettingsRequest\x1a\x1f.livekit.ClientSettingsResponse\"\x00BFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3" + "\x11GetClientSettings\x12\x1e.livekit.ClientSettingsRequest\x1a\x1f.livekit.ClientSettingsResponse\"\x00\x12\\\n" + + "\x11CreatePrivateLink\x12!.livekit.CreatePrivateLinkRequest\x1a\".livekit.CreatePrivateLinkResponse\"\x00\x12\x89\x01\n" + + " GetPrivateLinkProvisioningStatus\x120.livekit.GetPrivateLinkProvisioningStatusRequest\x1a1.livekit.GetPrivateLinkProvisioningStatusResponse\"\x00\x12w\n" + + "\x1aGetPrivateLinkHealthStatus\x12*.livekit.GetPrivateLinkHealthStatusRequest\x1a+.livekit.GetPrivateLinkHealthStatusResponse\"\x00BFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3" var ( file_livekit_cloud_agent_proto_rawDescOnce sync.Once @@ -2228,95 +3252,131 @@ func file_livekit_cloud_agent_proto_rawDescGZIP() []byte { return file_livekit_cloud_agent_proto_rawDescData } -var file_livekit_cloud_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_livekit_cloud_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 31) +var file_livekit_cloud_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_livekit_cloud_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_livekit_cloud_agent_proto_goTypes = []any{ - (AgentSecretKind)(0), // 0: livekit.AgentSecretKind - (AgentEventType)(0), // 1: livekit.AgentEventType - (*AgentEvent)(nil), // 2: livekit.AgentEvent - (*AgentSecret)(nil), // 3: livekit.AgentSecret - (*CreateAgentRequest)(nil), // 4: livekit.CreateAgentRequest - (*CreateAgentResponse)(nil), // 5: livekit.CreateAgentResponse - (*PresignedPostRequest)(nil), // 6: livekit.PresignedPostRequest - (*AgentDeployment)(nil), // 7: livekit.AgentDeployment - (*AgentInfo)(nil), // 8: livekit.AgentInfo - (*ListAgentsRequest)(nil), // 9: livekit.ListAgentsRequest - (*ListAgentsResponse)(nil), // 10: livekit.ListAgentsResponse - (*AgentVersion)(nil), // 11: livekit.AgentVersion - (*ListAgentVersionsRequest)(nil), // 12: livekit.ListAgentVersionsRequest - (*ListAgentVersionsResponse)(nil), // 13: livekit.ListAgentVersionsResponse - (*UpdateAgentRequest)(nil), // 14: livekit.UpdateAgentRequest - (*UpdateAgentResponse)(nil), // 15: livekit.UpdateAgentResponse - (*RestartAgentRequest)(nil), // 16: livekit.RestartAgentRequest - (*RestartAgentResponse)(nil), // 17: livekit.RestartAgentResponse - (*DeployAgentRequest)(nil), // 18: livekit.DeployAgentRequest - (*DeployAgentResponse)(nil), // 19: livekit.DeployAgentResponse - (*UpdateAgentSecretsRequest)(nil), // 20: livekit.UpdateAgentSecretsRequest - (*UpdateAgentSecretsResponse)(nil), // 21: livekit.UpdateAgentSecretsResponse - (*RollbackAgentRequest)(nil), // 22: livekit.RollbackAgentRequest - (*RollbackAgentResponse)(nil), // 23: livekit.RollbackAgentResponse - (*DeleteAgentRequest)(nil), // 24: livekit.DeleteAgentRequest - (*DeleteAgentResponse)(nil), // 25: livekit.DeleteAgentResponse - (*ListAgentSecretsRequest)(nil), // 26: livekit.ListAgentSecretsRequest - (*ListAgentSecretsResponse)(nil), // 27: livekit.ListAgentSecretsResponse - (*SettingsParam)(nil), // 28: livekit.SettingsParam - (*ClientSettingsResponse)(nil), // 29: livekit.ClientSettingsResponse - (*ClientSettingsRequest)(nil), // 30: livekit.ClientSettingsRequest - nil, // 31: livekit.PresignedPostRequest.ValuesEntry - nil, // 32: livekit.AgentVersion.AttributesEntry - (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp + (AgentSecretKind)(0), // 0: livekit.AgentSecretKind + (AgentEventType)(0), // 1: livekit.AgentEventType + (PrivateLinkProvisioningStatus_Status)(0), // 2: livekit.PrivateLinkProvisioningStatus.Status + (PrivateLinkHealthStatus_Status)(0), // 3: livekit.PrivateLinkHealthStatus.Status + (PrivateLinkAttachmentProvisioningStatus_Status)(0), // 4: livekit.PrivateLinkAttachmentProvisioningStatus.Status + (PrivateLinkAttachementHealthStatus_Status)(0), // 5: livekit.PrivateLinkAttachementHealthStatus.Status + (*AgentEvent)(nil), // 6: livekit.AgentEvent + (*AgentSecret)(nil), // 7: livekit.AgentSecret + (*CreateAgentRequest)(nil), // 8: livekit.CreateAgentRequest + (*CreateAgentResponse)(nil), // 9: livekit.CreateAgentResponse + (*PresignedPostRequest)(nil), // 10: livekit.PresignedPostRequest + (*AgentDeployment)(nil), // 11: livekit.AgentDeployment + (*AgentInfo)(nil), // 12: livekit.AgentInfo + (*ListAgentsRequest)(nil), // 13: livekit.ListAgentsRequest + (*ListAgentsResponse)(nil), // 14: livekit.ListAgentsResponse + (*AgentVersion)(nil), // 15: livekit.AgentVersion + (*ListAgentVersionsRequest)(nil), // 16: livekit.ListAgentVersionsRequest + (*ListAgentVersionsResponse)(nil), // 17: livekit.ListAgentVersionsResponse + (*UpdateAgentRequest)(nil), // 18: livekit.UpdateAgentRequest + (*UpdateAgentResponse)(nil), // 19: livekit.UpdateAgentResponse + (*RestartAgentRequest)(nil), // 20: livekit.RestartAgentRequest + (*RestartAgentResponse)(nil), // 21: livekit.RestartAgentResponse + (*DeployAgentRequest)(nil), // 22: livekit.DeployAgentRequest + (*DeployAgentResponse)(nil), // 23: livekit.DeployAgentResponse + (*UpdateAgentSecretsRequest)(nil), // 24: livekit.UpdateAgentSecretsRequest + (*UpdateAgentSecretsResponse)(nil), // 25: livekit.UpdateAgentSecretsResponse + (*RollbackAgentRequest)(nil), // 26: livekit.RollbackAgentRequest + (*RollbackAgentResponse)(nil), // 27: livekit.RollbackAgentResponse + (*DeleteAgentRequest)(nil), // 28: livekit.DeleteAgentRequest + (*DeleteAgentResponse)(nil), // 29: livekit.DeleteAgentResponse + (*ListAgentSecretsRequest)(nil), // 30: livekit.ListAgentSecretsRequest + (*ListAgentSecretsResponse)(nil), // 31: livekit.ListAgentSecretsResponse + (*SettingsParam)(nil), // 32: livekit.SettingsParam + (*ClientSettingsResponse)(nil), // 33: livekit.ClientSettingsResponse + (*ClientSettingsRequest)(nil), // 34: livekit.ClientSettingsRequest + (*PrivateLink)(nil), // 35: livekit.PrivateLink + (*PrivateLinkProvisioningStatus)(nil), // 36: livekit.PrivateLinkProvisioningStatus + (*PrivateLinkHealthStatus)(nil), // 37: livekit.PrivateLinkHealthStatus + (*PrivateLinkAttachment)(nil), // 38: livekit.PrivateLinkAttachment + (*PrivateLinkAttachmentProvisioningStatus)(nil), // 39: livekit.PrivateLinkAttachmentProvisioningStatus + (*PrivateLinkAttachementHealthStatus)(nil), // 40: livekit.PrivateLinkAttachementHealthStatus + (*CreatePrivateLinkRequest)(nil), // 41: livekit.CreatePrivateLinkRequest + (*CreatePrivateLinkResponse)(nil), // 42: livekit.CreatePrivateLinkResponse + (*GetPrivateLinkProvisioningStatusRequest)(nil), // 43: livekit.GetPrivateLinkProvisioningStatusRequest + (*GetPrivateLinkProvisioningStatusResponse)(nil), // 44: livekit.GetPrivateLinkProvisioningStatusResponse + (*GetPrivateLinkHealthStatusRequest)(nil), // 45: livekit.GetPrivateLinkHealthStatusRequest + (*GetPrivateLinkHealthStatusResponse)(nil), // 46: livekit.GetPrivateLinkHealthStatusResponse + nil, // 47: livekit.PresignedPostRequest.ValuesEntry + nil, // 48: livekit.AgentVersion.AttributesEntry + (*PrivateLink_AWSConfig)(nil), // 49: livekit.PrivateLink.AWSConfig + (*CreatePrivateLinkRequest_AWSCreateConfig)(nil), // 50: livekit.CreatePrivateLinkRequest.AWSCreateConfig + (*timestamppb.Timestamp)(nil), // 51: google.protobuf.Timestamp } var file_livekit_cloud_agent_proto_depIdxs = []int32{ 1, // 0: livekit.AgentEvent.type:type_name -> livekit.AgentEventType - 33, // 1: livekit.AgentEvent.timestamp:type_name -> google.protobuf.Timestamp - 33, // 2: livekit.AgentSecret.created_at:type_name -> google.protobuf.Timestamp - 33, // 3: livekit.AgentSecret.updated_at:type_name -> google.protobuf.Timestamp + 51, // 1: livekit.AgentEvent.timestamp:type_name -> google.protobuf.Timestamp + 51, // 2: livekit.AgentSecret.created_at:type_name -> google.protobuf.Timestamp + 51, // 3: livekit.AgentSecret.updated_at:type_name -> google.protobuf.Timestamp 0, // 4: livekit.AgentSecret.kind:type_name -> livekit.AgentSecretKind - 3, // 5: livekit.CreateAgentRequest.secrets:type_name -> livekit.AgentSecret - 6, // 6: livekit.CreateAgentResponse.presigned_post_request:type_name -> livekit.PresignedPostRequest - 31, // 7: livekit.PresignedPostRequest.values:type_name -> livekit.PresignedPostRequest.ValuesEntry - 2, // 8: livekit.AgentDeployment.events:type_name -> livekit.AgentEvent - 7, // 9: livekit.AgentInfo.agent_deployments:type_name -> livekit.AgentDeployment - 3, // 10: livekit.AgentInfo.secrets:type_name -> livekit.AgentSecret - 33, // 11: livekit.AgentInfo.deployed_at:type_name -> google.protobuf.Timestamp - 8, // 12: livekit.ListAgentsResponse.agents:type_name -> livekit.AgentInfo - 33, // 13: livekit.AgentVersion.created_at:type_name -> google.protobuf.Timestamp - 33, // 14: livekit.AgentVersion.deployed_at:type_name -> google.protobuf.Timestamp - 32, // 15: livekit.AgentVersion.attributes:type_name -> livekit.AgentVersion.AttributesEntry - 11, // 16: livekit.ListAgentVersionsResponse.versions:type_name -> livekit.AgentVersion - 3, // 17: livekit.UpdateAgentRequest.secrets:type_name -> livekit.AgentSecret - 3, // 18: livekit.DeployAgentRequest.secrets:type_name -> livekit.AgentSecret - 6, // 19: livekit.DeployAgentResponse.presigned_post_request:type_name -> livekit.PresignedPostRequest - 3, // 20: livekit.UpdateAgentSecretsRequest.secrets:type_name -> livekit.AgentSecret - 3, // 21: livekit.ListAgentSecretsResponse.secrets:type_name -> livekit.AgentSecret - 28, // 22: livekit.ClientSettingsResponse.params:type_name -> livekit.SettingsParam - 4, // 23: livekit.CloudAgent.CreateAgent:input_type -> livekit.CreateAgentRequest - 9, // 24: livekit.CloudAgent.ListAgents:input_type -> livekit.ListAgentsRequest - 12, // 25: livekit.CloudAgent.ListAgentVersions:input_type -> livekit.ListAgentVersionsRequest - 26, // 26: livekit.CloudAgent.ListAgentSecrets:input_type -> livekit.ListAgentSecretsRequest - 14, // 27: livekit.CloudAgent.UpdateAgent:input_type -> livekit.UpdateAgentRequest - 16, // 28: livekit.CloudAgent.RestartAgent:input_type -> livekit.RestartAgentRequest - 18, // 29: livekit.CloudAgent.DeployAgent:input_type -> livekit.DeployAgentRequest - 20, // 30: livekit.CloudAgent.UpdateAgentSecrets:input_type -> livekit.UpdateAgentSecretsRequest - 22, // 31: livekit.CloudAgent.RollbackAgent:input_type -> livekit.RollbackAgentRequest - 24, // 32: livekit.CloudAgent.DeleteAgent:input_type -> livekit.DeleteAgentRequest - 30, // 33: livekit.CloudAgent.GetClientSettings:input_type -> livekit.ClientSettingsRequest - 5, // 34: livekit.CloudAgent.CreateAgent:output_type -> livekit.CreateAgentResponse - 10, // 35: livekit.CloudAgent.ListAgents:output_type -> livekit.ListAgentsResponse - 13, // 36: livekit.CloudAgent.ListAgentVersions:output_type -> livekit.ListAgentVersionsResponse - 27, // 37: livekit.CloudAgent.ListAgentSecrets:output_type -> livekit.ListAgentSecretsResponse - 15, // 38: livekit.CloudAgent.UpdateAgent:output_type -> livekit.UpdateAgentResponse - 17, // 39: livekit.CloudAgent.RestartAgent:output_type -> livekit.RestartAgentResponse - 19, // 40: livekit.CloudAgent.DeployAgent:output_type -> livekit.DeployAgentResponse - 21, // 41: livekit.CloudAgent.UpdateAgentSecrets:output_type -> livekit.UpdateAgentSecretsResponse - 23, // 42: livekit.CloudAgent.RollbackAgent:output_type -> livekit.RollbackAgentResponse - 25, // 43: livekit.CloudAgent.DeleteAgent:output_type -> livekit.DeleteAgentResponse - 29, // 44: livekit.CloudAgent.GetClientSettings:output_type -> livekit.ClientSettingsResponse - 34, // [34:45] is the sub-list for method output_type - 23, // [23:34] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name + 7, // 5: livekit.CreateAgentRequest.secrets:type_name -> livekit.AgentSecret + 10, // 6: livekit.CreateAgentResponse.presigned_post_request:type_name -> livekit.PresignedPostRequest + 47, // 7: livekit.PresignedPostRequest.values:type_name -> livekit.PresignedPostRequest.ValuesEntry + 6, // 8: livekit.AgentDeployment.events:type_name -> livekit.AgentEvent + 11, // 9: livekit.AgentInfo.agent_deployments:type_name -> livekit.AgentDeployment + 7, // 10: livekit.AgentInfo.secrets:type_name -> livekit.AgentSecret + 51, // 11: livekit.AgentInfo.deployed_at:type_name -> google.protobuf.Timestamp + 12, // 12: livekit.ListAgentsResponse.agents:type_name -> livekit.AgentInfo + 51, // 13: livekit.AgentVersion.created_at:type_name -> google.protobuf.Timestamp + 51, // 14: livekit.AgentVersion.deployed_at:type_name -> google.protobuf.Timestamp + 48, // 15: livekit.AgentVersion.attributes:type_name -> livekit.AgentVersion.AttributesEntry + 15, // 16: livekit.ListAgentVersionsResponse.versions:type_name -> livekit.AgentVersion + 7, // 17: livekit.UpdateAgentRequest.secrets:type_name -> livekit.AgentSecret + 7, // 18: livekit.DeployAgentRequest.secrets:type_name -> livekit.AgentSecret + 10, // 19: livekit.DeployAgentResponse.presigned_post_request:type_name -> livekit.PresignedPostRequest + 7, // 20: livekit.UpdateAgentSecretsRequest.secrets:type_name -> livekit.AgentSecret + 7, // 21: livekit.ListAgentSecretsResponse.secrets:type_name -> livekit.AgentSecret + 32, // 22: livekit.ClientSettingsResponse.params:type_name -> livekit.SettingsParam + 49, // 23: livekit.PrivateLink.aws:type_name -> livekit.PrivateLink.AWSConfig + 2, // 24: livekit.PrivateLinkProvisioningStatus.status:type_name -> livekit.PrivateLinkProvisioningStatus.Status + 3, // 25: livekit.PrivateLinkHealthStatus.status:type_name -> livekit.PrivateLinkHealthStatus.Status + 51, // 26: livekit.PrivateLinkHealthStatus.updated_at:type_name -> google.protobuf.Timestamp + 51, // 27: livekit.PrivateLinkAttachment.created_at:type_name -> google.protobuf.Timestamp + 4, // 28: livekit.PrivateLinkAttachmentProvisioningStatus.status:type_name -> livekit.PrivateLinkAttachmentProvisioningStatus.Status + 5, // 29: livekit.PrivateLinkAttachementHealthStatus.status:type_name -> livekit.PrivateLinkAttachementHealthStatus.Status + 51, // 30: livekit.PrivateLinkAttachementHealthStatus.updated_at:type_name -> google.protobuf.Timestamp + 50, // 31: livekit.CreatePrivateLinkRequest.aws:type_name -> livekit.CreatePrivateLinkRequest.AWSCreateConfig + 35, // 32: livekit.CreatePrivateLinkResponse.private_link:type_name -> livekit.PrivateLink + 36, // 33: livekit.GetPrivateLinkProvisioningStatusResponse.value:type_name -> livekit.PrivateLinkProvisioningStatus + 37, // 34: livekit.GetPrivateLinkHealthStatusResponse.value:type_name -> livekit.PrivateLinkHealthStatus + 8, // 35: livekit.CloudAgent.CreateAgent:input_type -> livekit.CreateAgentRequest + 13, // 36: livekit.CloudAgent.ListAgents:input_type -> livekit.ListAgentsRequest + 16, // 37: livekit.CloudAgent.ListAgentVersions:input_type -> livekit.ListAgentVersionsRequest + 30, // 38: livekit.CloudAgent.ListAgentSecrets:input_type -> livekit.ListAgentSecretsRequest + 18, // 39: livekit.CloudAgent.UpdateAgent:input_type -> livekit.UpdateAgentRequest + 20, // 40: livekit.CloudAgent.RestartAgent:input_type -> livekit.RestartAgentRequest + 22, // 41: livekit.CloudAgent.DeployAgent:input_type -> livekit.DeployAgentRequest + 24, // 42: livekit.CloudAgent.UpdateAgentSecrets:input_type -> livekit.UpdateAgentSecretsRequest + 26, // 43: livekit.CloudAgent.RollbackAgent:input_type -> livekit.RollbackAgentRequest + 28, // 44: livekit.CloudAgent.DeleteAgent:input_type -> livekit.DeleteAgentRequest + 34, // 45: livekit.CloudAgent.GetClientSettings:input_type -> livekit.ClientSettingsRequest + 41, // 46: livekit.CloudAgent.CreatePrivateLink:input_type -> livekit.CreatePrivateLinkRequest + 43, // 47: livekit.CloudAgent.GetPrivateLinkProvisioningStatus:input_type -> livekit.GetPrivateLinkProvisioningStatusRequest + 45, // 48: livekit.CloudAgent.GetPrivateLinkHealthStatus:input_type -> livekit.GetPrivateLinkHealthStatusRequest + 9, // 49: livekit.CloudAgent.CreateAgent:output_type -> livekit.CreateAgentResponse + 14, // 50: livekit.CloudAgent.ListAgents:output_type -> livekit.ListAgentsResponse + 17, // 51: livekit.CloudAgent.ListAgentVersions:output_type -> livekit.ListAgentVersionsResponse + 31, // 52: livekit.CloudAgent.ListAgentSecrets:output_type -> livekit.ListAgentSecretsResponse + 19, // 53: livekit.CloudAgent.UpdateAgent:output_type -> livekit.UpdateAgentResponse + 21, // 54: livekit.CloudAgent.RestartAgent:output_type -> livekit.RestartAgentResponse + 23, // 55: livekit.CloudAgent.DeployAgent:output_type -> livekit.DeployAgentResponse + 25, // 56: livekit.CloudAgent.UpdateAgentSecrets:output_type -> livekit.UpdateAgentSecretsResponse + 27, // 57: livekit.CloudAgent.RollbackAgent:output_type -> livekit.RollbackAgentResponse + 29, // 58: livekit.CloudAgent.DeleteAgent:output_type -> livekit.DeleteAgentResponse + 33, // 59: livekit.CloudAgent.GetClientSettings:output_type -> livekit.ClientSettingsResponse + 42, // 60: livekit.CloudAgent.CreatePrivateLink:output_type -> livekit.CreatePrivateLinkResponse + 44, // 61: livekit.CloudAgent.GetPrivateLinkProvisioningStatus:output_type -> livekit.GetPrivateLinkProvisioningStatusResponse + 46, // 62: livekit.CloudAgent.GetPrivateLinkHealthStatus:output_type -> livekit.GetPrivateLinkHealthStatusResponse + 49, // [49:63] is the sub-list for method output_type + 35, // [35:49] is the sub-list for method input_type + 35, // [35:35] is the sub-list for extension type_name + 35, // [35:35] is the sub-list for extension extendee + 0, // [0:35] is the sub-list for field type_name } func init() { file_livekit_cloud_agent_proto_init() } @@ -2324,13 +3384,21 @@ func file_livekit_cloud_agent_proto_init() { if File_livekit_cloud_agent_proto != nil { return } + file_livekit_cloud_agent_proto_msgTypes[29].OneofWrappers = []any{ + (*PrivateLink_Aws)(nil), + } + file_livekit_cloud_agent_proto_msgTypes[30].OneofWrappers = []any{} + file_livekit_cloud_agent_proto_msgTypes[33].OneofWrappers = []any{} + file_livekit_cloud_agent_proto_msgTypes[35].OneofWrappers = []any{ + (*CreatePrivateLinkRequest_Aws)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_livekit_cloud_agent_proto_rawDesc), len(file_livekit_cloud_agent_proto_rawDesc)), - NumEnums: 2, - NumMessages: 31, + NumEnums: 6, + NumMessages: 45, NumExtensions: 0, NumServices: 1, }, diff --git a/livekit/livekit_cloud_agent.twirp.go b/livekit/livekit_cloud_agent.twirp.go index 4399410f5..f33f1def1 100644 --- a/livekit/livekit_cloud_agent.twirp.go +++ b/livekit/livekit_cloud_agent.twirp.go @@ -48,6 +48,12 @@ type CloudAgent interface { DeleteAgent(context.Context, *DeleteAgentRequest) (*DeleteAgentResponse, error) GetClientSettings(context.Context, *ClientSettingsRequest) (*ClientSettingsResponse, error) + + CreatePrivateLink(context.Context, *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) + + GetPrivateLinkProvisioningStatus(context.Context, *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) + + GetPrivateLinkHealthStatus(context.Context, *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) } // ========================== @@ -56,7 +62,7 @@ type CloudAgent interface { type cloudAgentProtobufClient struct { client HTTPClient - urls [11]string + urls [14]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -84,7 +90,7 @@ func NewCloudAgentProtobufClient(baseURL string, client HTTPClient, opts ...twir // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "CloudAgent") - urls := [11]string{ + urls := [14]string{ serviceURL + "CreateAgent", serviceURL + "ListAgents", serviceURL + "ListAgentVersions", @@ -96,6 +102,9 @@ func NewCloudAgentProtobufClient(baseURL string, client HTTPClient, opts ...twir serviceURL + "RollbackAgent", serviceURL + "DeleteAgent", serviceURL + "GetClientSettings", + serviceURL + "CreatePrivateLink", + serviceURL + "GetPrivateLinkProvisioningStatus", + serviceURL + "GetPrivateLinkHealthStatus", } return &cloudAgentProtobufClient{ @@ -612,13 +621,151 @@ func (c *cloudAgentProtobufClient) callGetClientSettings(ctx context.Context, in return out, nil } +func (c *cloudAgentProtobufClient) CreatePrivateLink(ctx context.Context, in *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "CreatePrivateLink") + caller := c.callCreatePrivateLink + if c.interceptor != nil { + caller = func(ctx context.Context, req *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*CreatePrivateLinkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*CreatePrivateLinkRequest) when calling interceptor") + } + return c.callCreatePrivateLink(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*CreatePrivateLinkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*CreatePrivateLinkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentProtobufClient) callCreatePrivateLink(ctx context.Context, in *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) { + out := new(CreatePrivateLinkResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[11], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *cloudAgentProtobufClient) GetPrivateLinkProvisioningStatus(ctx context.Context, in *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "GetPrivateLinkProvisioningStatus") + caller := c.callGetPrivateLinkProvisioningStatus + if c.interceptor != nil { + caller = func(ctx context.Context, req *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPrivateLinkProvisioningStatusRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPrivateLinkProvisioningStatusRequest) when calling interceptor") + } + return c.callGetPrivateLinkProvisioningStatus(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPrivateLinkProvisioningStatusResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPrivateLinkProvisioningStatusResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentProtobufClient) callGetPrivateLinkProvisioningStatus(ctx context.Context, in *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { + out := new(GetPrivateLinkProvisioningStatusResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *cloudAgentProtobufClient) GetPrivateLinkHealthStatus(ctx context.Context, in *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "GetPrivateLinkHealthStatus") + caller := c.callGetPrivateLinkHealthStatus + if c.interceptor != nil { + caller = func(ctx context.Context, req *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPrivateLinkHealthStatusRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPrivateLinkHealthStatusRequest) when calling interceptor") + } + return c.callGetPrivateLinkHealthStatus(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPrivateLinkHealthStatusResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPrivateLinkHealthStatusResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentProtobufClient) callGetPrivateLinkHealthStatus(ctx context.Context, in *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { + out := new(GetPrivateLinkHealthStatusResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[13], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + // ====================== // CloudAgent JSON Client // ====================== type cloudAgentJSONClient struct { client HTTPClient - urls [11]string + urls [14]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -646,7 +793,7 @@ func NewCloudAgentJSONClient(baseURL string, client HTTPClient, opts ...twirp.Cl // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "CloudAgent") - urls := [11]string{ + urls := [14]string{ serviceURL + "CreateAgent", serviceURL + "ListAgents", serviceURL + "ListAgentVersions", @@ -658,6 +805,9 @@ func NewCloudAgentJSONClient(baseURL string, client HTTPClient, opts ...twirp.Cl serviceURL + "RollbackAgent", serviceURL + "DeleteAgent", serviceURL + "GetClientSettings", + serviceURL + "CreatePrivateLink", + serviceURL + "GetPrivateLinkProvisioningStatus", + serviceURL + "GetPrivateLinkHealthStatus", } return &cloudAgentJSONClient{ @@ -1174,6 +1324,144 @@ func (c *cloudAgentJSONClient) callGetClientSettings(ctx context.Context, in *Cl return out, nil } +func (c *cloudAgentJSONClient) CreatePrivateLink(ctx context.Context, in *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "CreatePrivateLink") + caller := c.callCreatePrivateLink + if c.interceptor != nil { + caller = func(ctx context.Context, req *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*CreatePrivateLinkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*CreatePrivateLinkRequest) when calling interceptor") + } + return c.callCreatePrivateLink(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*CreatePrivateLinkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*CreatePrivateLinkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentJSONClient) callCreatePrivateLink(ctx context.Context, in *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) { + out := new(CreatePrivateLinkResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[11], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *cloudAgentJSONClient) GetPrivateLinkProvisioningStatus(ctx context.Context, in *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "GetPrivateLinkProvisioningStatus") + caller := c.callGetPrivateLinkProvisioningStatus + if c.interceptor != nil { + caller = func(ctx context.Context, req *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPrivateLinkProvisioningStatusRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPrivateLinkProvisioningStatusRequest) when calling interceptor") + } + return c.callGetPrivateLinkProvisioningStatus(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPrivateLinkProvisioningStatusResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPrivateLinkProvisioningStatusResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentJSONClient) callGetPrivateLinkProvisioningStatus(ctx context.Context, in *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { + out := new(GetPrivateLinkProvisioningStatusResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *cloudAgentJSONClient) GetPrivateLinkHealthStatus(ctx context.Context, in *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "GetPrivateLinkHealthStatus") + caller := c.callGetPrivateLinkHealthStatus + if c.interceptor != nil { + caller = func(ctx context.Context, req *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPrivateLinkHealthStatusRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPrivateLinkHealthStatusRequest) when calling interceptor") + } + return c.callGetPrivateLinkHealthStatus(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPrivateLinkHealthStatusResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPrivateLinkHealthStatusResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentJSONClient) callGetPrivateLinkHealthStatus(ctx context.Context, in *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { + out := new(GetPrivateLinkHealthStatusResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[13], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + // ========================= // CloudAgent Server Handler // ========================= @@ -1304,6 +1592,15 @@ func (s *cloudAgentServer) ServeHTTP(resp http.ResponseWriter, req *http.Request case "GetClientSettings": s.serveGetClientSettings(ctx, resp, req) return + case "CreatePrivateLink": + s.serveCreatePrivateLink(ctx, resp, req) + return + case "GetPrivateLinkProvisioningStatus": + s.serveGetPrivateLinkProvisioningStatus(ctx, resp, req) + return + case "GetPrivateLinkHealthStatus": + s.serveGetPrivateLinkHealthStatus(ctx, resp, req) + return default: msg := fmt.Sprintf("no handler for path %q", req.URL.Path) s.writeError(ctx, resp, badRouteError(msg, req.Method, req.URL.Path)) @@ -3291,6 +3588,546 @@ func (s *cloudAgentServer) serveGetClientSettingsProtobuf(ctx context.Context, r callResponseSent(ctx, s.hooks) } +func (s *cloudAgentServer) serveCreatePrivateLink(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveCreatePrivateLinkJSON(ctx, resp, req) + case "application/protobuf": + s.serveCreatePrivateLinkProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *cloudAgentServer) serveCreatePrivateLinkJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "CreatePrivateLink") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(CreatePrivateLinkRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.CloudAgent.CreatePrivateLink + if s.interceptor != nil { + handler = func(ctx context.Context, req *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*CreatePrivateLinkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*CreatePrivateLinkRequest) when calling interceptor") + } + return s.CloudAgent.CreatePrivateLink(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*CreatePrivateLinkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*CreatePrivateLinkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *CreatePrivateLinkResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *CreatePrivateLinkResponse and nil error while calling CreatePrivateLink. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *cloudAgentServer) serveCreatePrivateLinkProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "CreatePrivateLink") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(CreatePrivateLinkRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.CloudAgent.CreatePrivateLink + if s.interceptor != nil { + handler = func(ctx context.Context, req *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*CreatePrivateLinkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*CreatePrivateLinkRequest) when calling interceptor") + } + return s.CloudAgent.CreatePrivateLink(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*CreatePrivateLinkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*CreatePrivateLinkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *CreatePrivateLinkResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *CreatePrivateLinkResponse and nil error while calling CreatePrivateLink. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *cloudAgentServer) serveGetPrivateLinkProvisioningStatus(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveGetPrivateLinkProvisioningStatusJSON(ctx, resp, req) + case "application/protobuf": + s.serveGetPrivateLinkProvisioningStatusProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *cloudAgentServer) serveGetPrivateLinkProvisioningStatusJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetPrivateLinkProvisioningStatus") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(GetPrivateLinkProvisioningStatusRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.CloudAgent.GetPrivateLinkProvisioningStatus + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPrivateLinkProvisioningStatusRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPrivateLinkProvisioningStatusRequest) when calling interceptor") + } + return s.CloudAgent.GetPrivateLinkProvisioningStatus(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPrivateLinkProvisioningStatusResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPrivateLinkProvisioningStatusResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetPrivateLinkProvisioningStatusResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetPrivateLinkProvisioningStatusResponse and nil error while calling GetPrivateLinkProvisioningStatus. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *cloudAgentServer) serveGetPrivateLinkProvisioningStatusProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetPrivateLinkProvisioningStatus") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(GetPrivateLinkProvisioningStatusRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.CloudAgent.GetPrivateLinkProvisioningStatus + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPrivateLinkProvisioningStatusRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPrivateLinkProvisioningStatusRequest) when calling interceptor") + } + return s.CloudAgent.GetPrivateLinkProvisioningStatus(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPrivateLinkProvisioningStatusResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPrivateLinkProvisioningStatusResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetPrivateLinkProvisioningStatusResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetPrivateLinkProvisioningStatusResponse and nil error while calling GetPrivateLinkProvisioningStatus. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *cloudAgentServer) serveGetPrivateLinkHealthStatus(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveGetPrivateLinkHealthStatusJSON(ctx, resp, req) + case "application/protobuf": + s.serveGetPrivateLinkHealthStatusProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *cloudAgentServer) serveGetPrivateLinkHealthStatusJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetPrivateLinkHealthStatus") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(GetPrivateLinkHealthStatusRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.CloudAgent.GetPrivateLinkHealthStatus + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPrivateLinkHealthStatusRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPrivateLinkHealthStatusRequest) when calling interceptor") + } + return s.CloudAgent.GetPrivateLinkHealthStatus(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPrivateLinkHealthStatusResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPrivateLinkHealthStatusResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetPrivateLinkHealthStatusResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetPrivateLinkHealthStatusResponse and nil error while calling GetPrivateLinkHealthStatus. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *cloudAgentServer) serveGetPrivateLinkHealthStatusProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetPrivateLinkHealthStatus") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(GetPrivateLinkHealthStatusRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.CloudAgent.GetPrivateLinkHealthStatus + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPrivateLinkHealthStatusRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPrivateLinkHealthStatusRequest) when calling interceptor") + } + return s.CloudAgent.GetPrivateLinkHealthStatus(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPrivateLinkHealthStatusResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPrivateLinkHealthStatusResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetPrivateLinkHealthStatusResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetPrivateLinkHealthStatusResponse and nil error while calling GetPrivateLinkHealthStatus. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + func (s *cloudAgentServer) ServiceDescriptor() ([]byte, int) { return twirpFileDescriptor5, 0 } @@ -3307,111 +4144,149 @@ func (s *cloudAgentServer) PathPrefix() string { } var twirpFileDescriptor5 = []byte{ - // 1682 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4b, 0x53, 0x1b, 0xcb, - 0x15, 0x66, 0xf4, 0xd6, 0x11, 0x60, 0xb9, 0xc1, 0x30, 0x08, 0x63, 0xc3, 0x10, 0x57, 0x11, 0xec, - 0x92, 0x1d, 0xb2, 0xb1, 0x9d, 0x4a, 0x55, 0x64, 0x18, 0x83, 0x78, 0x08, 0x55, 0x4b, 0x90, 0x72, - 0x2a, 0x55, 0x53, 0x83, 0xd4, 0x56, 0x26, 0x68, 0x1e, 0x9e, 0xe9, 0x91, 0xcd, 0x2e, 0xdb, 0xac, - 0xb3, 0xc9, 0x2f, 0xc8, 0x22, 0x8b, 0xac, 0xb2, 0x4a, 0x7e, 0x4a, 0xd6, 0xb9, 0x8b, 0xbb, 0xb8, - 0x75, 0x7f, 0xc2, 0xad, 0xee, 0x79, 0xa8, 0x47, 0x12, 0x20, 0x83, 0xab, 0xee, 0x86, 0xa2, 0xfb, - 0x7c, 0x7d, 0x9e, 0x5f, 0x9f, 0x3e, 0x23, 0x58, 0xe9, 0x1b, 0x03, 0x72, 0x69, 0x50, 0xad, 0xd3, - 0xb7, 0xfd, 0xae, 0xa6, 0xf7, 0x88, 0x45, 0xab, 0x8e, 0x6b, 0x53, 0x1b, 0xe5, 0x43, 0x51, 0xe5, - 0x69, 0xcf, 0xb6, 0x7b, 0x7d, 0xf2, 0x92, 0x6f, 0x5f, 0xf8, 0x1f, 0x5f, 0x52, 0xc3, 0x24, 0x1e, - 0xd5, 0x4d, 0x27, 0x40, 0x2a, 0x7f, 0x95, 0x00, 0x6a, 0xec, 0xa4, 0x3a, 0x20, 0x16, 0x45, 0xcf, - 0x21, 0x43, 0xaf, 0x1c, 0x22, 0x4b, 0xeb, 0xd2, 0xd6, 0xfc, 0xce, 0x72, 0x35, 0xd4, 0x53, 0x1d, - 0x42, 0xda, 0x57, 0x0e, 0xc1, 0x1c, 0x84, 0x16, 0x21, 0xdb, 0xb1, 0x7d, 0x8b, 0xca, 0xa9, 0x75, - 0x69, 0x2b, 0x8b, 0x83, 0x05, 0x7a, 0x0d, 0xc5, 0xd8, 0x88, 0x9c, 0x5e, 0x97, 0xb6, 0x4a, 0x3b, - 0x95, 0x6a, 0xe0, 0x46, 0x35, 0x72, 0xa3, 0xda, 0x8e, 0x10, 0x78, 0x08, 0x56, 0xfe, 0x27, 0x41, - 0x89, 0x1b, 0x6a, 0x91, 0x8e, 0x4b, 0x28, 0x42, 0x90, 0xb1, 0x74, 0x33, 0x70, 0xa6, 0x88, 0xf9, - 0xff, 0xcc, 0xe6, 0x40, 0xef, 0xfb, 0x84, 0xdb, 0x9c, 0xc5, 0xc1, 0x02, 0xbd, 0x01, 0xe8, 0xb8, - 0x44, 0xa7, 0xa4, 0xab, 0xe9, 0x74, 0x1a, 0xa3, 0x21, 0xba, 0x46, 0xd9, 0x51, 0xdf, 0xe9, 0x46, - 0x47, 0x33, 0xb7, 0x1f, 0x0d, 0xd1, 0x35, 0x8a, 0x5e, 0x40, 0xe6, 0xd2, 0xb0, 0xba, 0x72, 0x96, - 0x27, 0x4b, 0x4e, 0x26, 0x2b, 0x88, 0xe1, 0xc8, 0xb0, 0xba, 0x98, 0xa3, 0x94, 0xff, 0x4b, 0x80, - 0x76, 0xb9, 0x59, 0x2e, 0xc7, 0xe4, 0x93, 0x4f, 0x3c, 0x8a, 0x36, 0x00, 0x78, 0xe5, 0xb4, 0x61, - 0xa8, 0xef, 0x52, 0xb2, 0x84, 0x8b, 0x7c, 0xb7, 0xc1, 0x62, 0xae, 0x42, 0xde, 0xe3, 0xda, 0x3c, - 0x39, 0xb5, 0x9e, 0xde, 0x2a, 0xed, 0x2c, 0x4e, 0x32, 0x85, 0x23, 0x10, 0x7a, 0x02, 0x05, 0x97, - 0x38, 0x7d, 0xa3, 0xa3, 0x7b, 0x3c, 0x17, 0x59, 0xae, 0x30, 0xde, 0x43, 0xcf, 0x60, 0xd6, 0xd4, - 0xbf, 0x68, 0x31, 0x26, 0x13, 0x63, 0x4a, 0xa6, 0xfe, 0x05, 0x47, 0xb0, 0x55, 0xc8, 0x77, 0x1c, - 0x5f, 0x73, 0xc9, 0x27, 0x1e, 0x61, 0xe0, 0x56, 0xae, 0xe3, 0xf8, 0x98, 0x7c, 0x42, 0x32, 0xe4, - 0x5d, 0xd2, 0x33, 0x6c, 0xcb, 0x93, 0x73, 0xeb, 0xe9, 0xad, 0x22, 0x8e, 0x96, 0xca, 0xbf, 0x53, - 0xb0, 0x90, 0x88, 0xd3, 0x73, 0x6c, 0xcb, 0x23, 0x68, 0x05, 0x0a, 0x41, 0xa0, 0x46, 0x37, 0xac, - 0x68, 0x9e, 0xaf, 0xeb, 0x5d, 0xb4, 0x96, 0xc8, 0x41, 0x8a, 0x0b, 0x85, 0xf8, 0x97, 0x20, 0xe7, - 0x51, 0x9d, 0xfa, 0x41, 0x34, 0x45, 0x1c, 0xae, 0x98, 0x0f, 0x03, 0xe2, 0x7a, 0x86, 0x6d, 0xf1, - 0x10, 0x8a, 0x38, 0x5a, 0xa2, 0x4d, 0x98, 0x73, 0x5c, 0xe2, 0x19, 0x3d, 0x8b, 0x74, 0x35, 0xdf, - 0xed, 0x07, 0x01, 0xe0, 0xd9, 0x78, 0xf3, 0xcc, 0xed, 0xa3, 0x32, 0xa4, 0xa9, 0xde, 0x93, 0x73, - 0x5c, 0xc4, 0xfe, 0x45, 0xcf, 0x60, 0xde, 0x23, 0xee, 0x80, 0xb8, 0x5a, 0x14, 0x5b, 0x9e, 0xc7, - 0x36, 0x17, 0xec, 0xe2, 0x60, 0x13, 0xb5, 0x60, 0x69, 0xa8, 0xdd, 0xb1, 0x3d, 0xca, 0x72, 0xc4, - 0x8a, 0x29, 0x17, 0x38, 0x7d, 0xd6, 0xe2, 0xf2, 0x34, 0x23, 0x58, 0xd3, 0xf6, 0xa2, 0x8a, 0xe3, - 0x45, 0x67, 0xc2, 0xae, 0xf2, 0x0f, 0x09, 0x16, 0x27, 0xc1, 0x99, 0x9b, 0x2c, 0x82, 0x20, 0x65, - 0xec, 0x5f, 0x54, 0x83, 0x1c, 0xa7, 0x7d, 0x44, 0x87, 0x5f, 0xde, 0x68, 0xaf, 0x7a, 0xce, 0xb1, - 0xaa, 0x45, 0xdd, 0x2b, 0x1c, 0x1e, 0xac, 0xbc, 0x81, 0x92, 0xb0, 0xcd, 0x6c, 0x5c, 0x92, 0xab, - 0xc8, 0xc6, 0x25, 0xb9, 0x4a, 0xde, 0xb3, 0x62, 0x78, 0xcf, 0xde, 0xa6, 0x5e, 0x4b, 0xca, 0xbf, - 0xd2, 0xf0, 0x80, 0x57, 0x76, 0x8f, 0x38, 0x7d, 0xfb, 0xca, 0x64, 0x6d, 0x63, 0x09, 0x72, 0x41, - 0xc6, 0x42, 0x15, 0xe1, 0x2a, 0x51, 0xf3, 0x54, 0xb2, 0xe6, 0xd7, 0x15, 0xb5, 0x22, 0x90, 0x97, - 0x13, 0x53, 0x20, 0xee, 0x06, 0xcc, 0x9a, 0x86, 0x35, 0x24, 0x6e, 0x96, 0xcb, 0x4b, 0xa6, 0x61, - 0x61, 0x11, 0x22, 0x72, 0x3b, 0x17, 0x42, 0x04, 0x5e, 0x2f, 0x0f, 0x79, 0x9d, 0x0f, 0x4c, 0x87, - 0x9c, 0x66, 0x02, 0xdf, 0xd5, 0x3a, 0x8e, 0xcf, 0x0b, 0xc9, 0x04, 0xbe, 0xbb, 0xeb, 0xf8, 0x91, - 0xc0, 0x24, 0xa6, 0x5c, 0x8c, 0x05, 0x27, 0xc4, 0x64, 0x02, 0x93, 0x98, 0x5c, 0x15, 0x04, 0x02, - 0x93, 0x98, 0x4c, 0xd5, 0x2a, 0x14, 0x99, 0xa0, 0x6f, 0x98, 0x06, 0x95, 0x4b, 0x5c, 0x54, 0x30, - 0x89, 0x79, 0xcc, 0xd6, 0x4c, 0xc8, 0x1c, 0x08, 0x84, 0xb3, 0x81, 0xb0, 0xe3, 0xf8, 0x81, 0x70, - 0x13, 0xe6, 0x12, 0x1c, 0x94, 0xe7, 0x02, 0xea, 0x8a, 0x14, 0x44, 0xcf, 0x21, 0x47, 0x58, 0x33, - 0xf6, 0xe4, 0x79, 0xce, 0x80, 0x85, 0x09, 0x8d, 0x1a, 0x87, 0x10, 0xe5, 0x6f, 0x29, 0x28, 0xf2, - 0xed, 0xba, 0xf5, 0xd1, 0xbe, 0xc7, 0x35, 0x14, 0xae, 0x5b, 0x3a, 0x79, 0xdd, 0x54, 0x78, 0x18, - 0x1c, 0xec, 0xc6, 0x94, 0x60, 0xc5, 0x63, 0x9e, 0x8d, 0x74, 0xc5, 0x21, 0x67, 0x70, 0x59, 0x4f, - 0x6e, 0x78, 0x62, 0x9f, 0xcb, 0x4e, 0xd3, 0xe7, 0x7e, 0x03, 0xa5, 0xc0, 0x60, 0xd0, 0xbb, 0x73, - 0xb7, 0xf6, 0x6e, 0x88, 0xe0, 0x35, 0xaa, 0x9c, 0xc0, 0xc3, 0x63, 0xc3, 0xa3, 0x5c, 0xb1, 0x17, - 0xdd, 0xb5, 0xb5, 0xf1, 0x66, 0x2c, 0x66, 0xe0, 0x7a, 0x3a, 0x2b, 0xbf, 0x03, 0x24, 0xaa, 0x0b, - 0x7b, 0xde, 0x36, 0xe4, 0x38, 0xc0, 0x93, 0x25, 0x1e, 0x10, 0x4a, 0x06, 0xc4, 0x0a, 0x82, 0x43, - 0x84, 0xf2, 0x43, 0x0a, 0x66, 0xf9, 0xee, 0x79, 0x98, 0x55, 0x21, 0xdf, 0x52, 0x32, 0xdf, 0x32, - 0xe7, 0xa3, 0x4b, 0xc2, 0xa7, 0xb7, 0x80, 0xa3, 0xe5, 0x7d, 0x1e, 0xc2, 0x91, 0x6c, 0x66, 0xbe, - 0x26, 0x9b, 0x48, 0x05, 0xd0, 0x29, 0x75, 0x8d, 0x0b, 0x9f, 0x92, 0xa8, 0x7a, 0xcf, 0x92, 0xc1, - 0x86, 0x61, 0x55, 0x6b, 0x31, 0x2e, 0x68, 0x49, 0xc2, 0x41, 0xa1, 0x29, 0xe4, 0x12, 0x4d, 0x61, - 0x11, 0xb2, 0xf6, 0x67, 0x8b, 0xb8, 0xe1, 0x85, 0x0d, 0x16, 0x95, 0xdf, 0xc2, 0x83, 0x11, 0x65, - 0x5f, 0xd5, 0xc8, 0xda, 0x20, 0xc7, 0x25, 0x0b, 0x9d, 0x8b, 0x89, 0x70, 0xe7, 0x5b, 0xa2, 0x34, - 0x60, 0x65, 0x82, 0xd6, 0x90, 0x0f, 0xbf, 0x82, 0x42, 0x58, 0xc3, 0x88, 0x11, 0x8f, 0x26, 0x26, - 0x09, 0xc7, 0x30, 0xe5, 0x2f, 0x29, 0x40, 0x67, 0x7c, 0xe4, 0x48, 0x8c, 0x0d, 0x37, 0x38, 0xb8, - 0x31, 0xee, 0xe0, 0xe8, 0x44, 0xf1, 0xb3, 0x4e, 0x08, 0xe2, 0x3d, 0xcf, 0x4f, 0x71, 0xcf, 0x95, - 0x3a, 0x2c, 0x24, 0x32, 0x10, 0x26, 0x53, 0x86, 0xbc, 0xe7, 0x77, 0x3a, 0xc4, 0xf3, 0x78, 0x06, - 0x0a, 0x38, 0x5a, 0x32, 0x89, 0x49, 0x3c, 0x4f, 0xef, 0x45, 0xf5, 0x89, 0x96, 0xca, 0x2b, 0x58, - 0xc0, 0x8c, 0xbe, 0x2e, 0x9d, 0x32, 0x9b, 0xca, 0x21, 0x2c, 0x26, 0x4f, 0xdc, 0xc3, 0xfa, 0x77, - 0x12, 0xa0, 0xa0, 0xe1, 0x7d, 0xc3, 0x5a, 0x0a, 0xd9, 0x4c, 0x7f, 0xed, 0x74, 0x98, 0x99, 0xa2, - 0xf6, 0xd9, 0x5b, 0x6b, 0x9f, 0x1b, 0xad, 0xbd, 0xf2, 0xa3, 0x04, 0x0b, 0x89, 0x40, 0xef, 0x9e, - 0xb4, 0x44, 0x76, 0xd2, 0xc9, 0xec, 0x8c, 0x8d, 0x79, 0x99, 0xeb, 0xc7, 0xbc, 0xec, 0x70, 0xcc, - 0xbb, 0x7e, 0x7e, 0xcb, 0xdd, 0x7d, 0x7e, 0xfb, 0xaf, 0x04, 0x2b, 0x02, 0x4b, 0x83, 0xac, 0xdf, - 0xbf, 0x9f, 0xa0, 0xc7, 0x50, 0xb4, 0x07, 0xc4, 0xfd, 0xec, 0x1a, 0x94, 0xf0, 0xf8, 0x0b, 0x78, - 0xb8, 0x21, 0x16, 0x3f, 0x33, 0x4d, 0xf1, 0xf9, 0xa0, 0x66, 0xda, 0x03, 0xc2, 0x7b, 0x34, 0x1f, - 0xd4, 0xd8, 0x4a, 0x69, 0x42, 0x65, 0x92, 0xf3, 0xf7, 0xe0, 0xfa, 0x9f, 0x61, 0x11, 0xdb, 0xfd, - 0xfe, 0x85, 0xde, 0xb9, 0x9c, 0x96, 0xec, 0x77, 0x9d, 0x3f, 0x94, 0x23, 0x78, 0x34, 0x62, 0xeb, - 0x1e, 0x8e, 0x37, 0xd8, 0x1d, 0xed, 0x93, 0xe9, 0xfb, 0xed, 0x2d, 0x0f, 0x42, 0x9d, 0x5d, 0x05, - 0x41, 0xdf, 0x3d, 0x5c, 0x6b, 0xc1, 0x72, 0xfc, 0xb6, 0x7c, 0x2b, 0x82, 0x29, 0x87, 0xc2, 0x33, - 0x38, 0x5a, 0x78, 0x81, 0x5e, 0xd2, 0x34, 0x9d, 0xfa, 0x0d, 0xcc, 0xb5, 0x08, 0xa5, 0x86, 0xd5, - 0xf3, 0x9a, 0xba, 0xab, 0x9b, 0xb7, 0x7f, 0xc2, 0x47, 0x2f, 0xb2, 0x72, 0x00, 0x4b, 0xbb, 0x7d, - 0x83, 0xeb, 0x0c, 0x14, 0x08, 0x4e, 0xe4, 0x1c, 0xa6, 0x2c, 0xf2, 0x61, 0x29, 0xf6, 0x21, 0x61, - 0x0b, 0x87, 0x28, 0x65, 0x19, 0x1e, 0x8d, 0x6a, 0xe2, 0x39, 0xda, 0xb6, 0xc3, 0x0f, 0x97, 0xe1, - 0xa7, 0x39, 0x5a, 0x83, 0x95, 0xda, 0xbe, 0xda, 0x68, 0x6b, 0x2d, 0x75, 0x17, 0xab, 0x6d, 0xed, - 0xa8, 0xde, 0xd8, 0xd3, 0xce, 0x1a, 0x47, 0x8d, 0xd3, 0xdf, 0x37, 0xca, 0x33, 0x68, 0x03, 0xd6, - 0xc6, 0xc5, 0x6a, 0xe3, 0xbc, 0x8e, 0x4f, 0x1b, 0x27, 0x6a, 0xa3, 0x5d, 0x96, 0x50, 0x05, 0x96, - 0xc6, 0x21, 0xef, 0xeb, 0xc7, 0x6a, 0x39, 0xb5, 0xfd, 0x1f, 0x09, 0xe6, 0x93, 0xbf, 0x9c, 0xa0, - 0xc7, 0x20, 0x07, 0x70, 0xf5, 0x9c, 0xfd, 0x6d, 0x7f, 0x68, 0xaa, 0x82, 0xbd, 0x2d, 0xf8, 0xc5, - 0x98, 0xb4, 0xd6, 0x6c, 0x1e, 0xd7, 0x77, 0x6b, 0xed, 0xfa, 0x69, 0x43, 0xdb, 0xc5, 0xb5, 0xd6, - 0x81, 0xba, 0x57, 0x96, 0x50, 0x15, 0xb6, 0xc7, 0x90, 0x58, 0x6d, 0xb5, 0x6b, 0xb8, 0xad, 0xee, - 0x69, 0x07, 0xf5, 0xfd, 0x03, 0x6d, 0xaf, 0xde, 0x3a, 0xd2, 0xce, 0x5a, 0xb5, 0x7d, 0xb5, 0x9c, - 0x42, 0xaf, 0xe0, 0xc5, 0x6d, 0xf8, 0x13, 0xf5, 0xe4, 0x14, 0x7f, 0x08, 0x4f, 0xa4, 0x77, 0xfe, - 0x9e, 0x07, 0xd8, 0xed, 0xdb, 0x7e, 0x97, 0x47, 0x80, 0x0e, 0xa1, 0x24, 0x7c, 0xd5, 0xa3, 0xd5, - 0xb8, 0x08, 0xe3, 0xbf, 0x69, 0x54, 0x1e, 0x4f, 0x16, 0x06, 0xf5, 0x54, 0x66, 0xd0, 0x3e, 0xc0, - 0x70, 0x58, 0x46, 0x95, 0x18, 0x3d, 0x36, 0x90, 0x57, 0x56, 0x27, 0xca, 0x62, 0x45, 0x7f, 0x14, - 0x86, 0xf8, 0x68, 0xd8, 0x42, 0x1b, 0xe3, 0x67, 0x46, 0xc6, 0xbb, 0x8a, 0x72, 0x13, 0x24, 0xd6, - 0xfe, 0x01, 0xca, 0xa3, 0x37, 0x03, 0xad, 0x8f, 0x9f, 0x4c, 0xde, 0xc4, 0xca, 0xc6, 0x0d, 0x88, - 0x58, 0xf5, 0x21, 0x94, 0x84, 0x7e, 0x2b, 0x64, 0x73, 0x7c, 0xd4, 0x13, 0xb2, 0x39, 0x61, 0x0a, - 0x52, 0x66, 0xd0, 0x09, 0xcc, 0x8a, 0x13, 0x0a, 0x1a, 0xe2, 0x27, 0x8c, 0x3a, 0x95, 0xb5, 0x6b, - 0xa4, 0xa2, 0x6b, 0xc2, 0xd3, 0x2d, 0xb8, 0x36, 0x3e, 0xb9, 0x08, 0xae, 0x4d, 0x78, 0xed, 0x95, - 0x19, 0xa4, 0x25, 0x66, 0xd7, 0x28, 0x87, 0xca, 0xa4, 0x80, 0x46, 0xb2, 0xb8, 0x79, 0x23, 0x26, - 0x36, 0xd0, 0x84, 0xb9, 0x44, 0xe7, 0x47, 0x42, 0x78, 0x13, 0x5e, 0x9f, 0xca, 0x93, 0xeb, 0xc4, - 0xc9, 0xf0, 0xe3, 0x76, 0x9d, 0x08, 0x7f, 0xf4, 0x51, 0x48, 0x84, 0x3f, 0xd6, 0xe1, 0x95, 0x19, - 0x74, 0x0e, 0x0f, 0xf7, 0x09, 0x4d, 0x36, 0x23, 0x34, 0x74, 0x61, 0x62, 0x97, 0xaa, 0x3c, 0xbd, - 0x56, 0x1e, 0xe9, 0x7d, 0xf7, 0xfe, 0x0f, 0x9b, 0x3d, 0x83, 0xfe, 0xc9, 0xbf, 0xa8, 0x76, 0x6c, - 0xf3, 0x65, 0x08, 0x0f, 0x7e, 0xe3, 0xed, 0xd8, 0xfd, 0x68, 0xe3, 0x9f, 0xa9, 0xb9, 0x63, 0x63, - 0x40, 0x8e, 0xf8, 0x1c, 0x63, 0x53, 0xfb, 0xfb, 0xd4, 0x7c, 0xb8, 0x7e, 0xfb, 0x96, 0x6f, 0x5c, - 0xe4, 0xf8, 0x91, 0x5f, 0xff, 0x14, 0x00, 0x00, 0xff, 0xff, 0xab, 0xcd, 0x1b, 0xdb, 0x4a, 0x16, - 0x00, 0x00, + // 2304 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xbf, 0x73, 0xdb, 0xc8, + 0xf5, 0x17, 0xc0, 0x1f, 0x12, 0x1f, 0x25, 0x9b, 0x5e, 0xcb, 0x12, 0x04, 0x5b, 0xb6, 0x04, 0x9f, + 0x6d, 0x9d, 0x7c, 0xa6, 0x6d, 0xdd, 0xcc, 0xf7, 0xce, 0xbe, 0x6f, 0x26, 0x81, 0x25, 0x58, 0xa4, + 0x45, 0xd1, 0x0c, 0x48, 0xeb, 0xc6, 0x99, 0x9b, 0xc1, 0x40, 0xe4, 0x9a, 0x46, 0x44, 0xfc, 0x30, + 0x00, 0xd2, 0xa7, 0x2e, 0x65, 0xae, 0x49, 0x93, 0x3f, 0x21, 0x33, 0x29, 0x52, 0xdc, 0x5c, 0x91, + 0x2a, 0xf7, 0x2f, 0xa4, 0x49, 0xca, 0xa4, 0x4e, 0x8a, 0x14, 0x99, 0xf4, 0x69, 0x32, 0xd8, 0x05, + 0xc0, 0x05, 0x09, 0x8a, 0x94, 0x75, 0x33, 0x29, 0xd2, 0xd8, 0xdc, 0x7d, 0x9f, 0x7d, 0xbf, 0xdf, + 0xee, 0xdb, 0x85, 0x60, 0xad, 0x67, 0x0c, 0xf0, 0x89, 0xe1, 0x6b, 0xed, 0x9e, 0xdd, 0xef, 0x68, + 0x7a, 0x17, 0x5b, 0x7e, 0xd9, 0x71, 0x6d, 0xdf, 0x46, 0xf3, 0x21, 0x49, 0xbc, 0xd5, 0xb5, 0xed, + 0x6e, 0x0f, 0x3f, 0x24, 0xd3, 0xc7, 0xfd, 0x37, 0x0f, 0x7d, 0xc3, 0xc4, 0x9e, 0xaf, 0x9b, 0x0e, + 0x45, 0x4a, 0xdf, 0x70, 0x00, 0x72, 0xb0, 0x52, 0x19, 0x60, 0xcb, 0x47, 0xf7, 0x21, 0xeb, 0x9f, + 0x3a, 0x58, 0xe0, 0x36, 0xb8, 0xad, 0x4b, 0x3b, 0xab, 0xe5, 0x90, 0x4f, 0x79, 0x08, 0x69, 0x9d, + 0x3a, 0x58, 0x25, 0x20, 0xb4, 0x0c, 0xb9, 0xb6, 0xdd, 0xb7, 0x7c, 0x81, 0xdf, 0xe0, 0xb6, 0x72, + 0x2a, 0x1d, 0xa0, 0xcf, 0xa1, 0x10, 0x0b, 0x11, 0x32, 0x1b, 0xdc, 0x56, 0x71, 0x47, 0x2c, 0x53, + 0x35, 0xca, 0x91, 0x1a, 0xe5, 0x56, 0x84, 0x50, 0x87, 0x60, 0xe9, 0xaf, 0x1c, 0x14, 0x89, 0xa0, + 0x26, 0x6e, 0xbb, 0xd8, 0x47, 0x08, 0xb2, 0x96, 0x6e, 0x52, 0x65, 0x0a, 0x2a, 0xf9, 0x1d, 0xc8, + 0x1c, 0xe8, 0xbd, 0x3e, 0x26, 0x32, 0x17, 0x55, 0x3a, 0x40, 0x4f, 0x00, 0xda, 0x2e, 0xd6, 0x7d, + 0xdc, 0xd1, 0x74, 0x7f, 0x16, 0xa1, 0x21, 0x5a, 0xf6, 0x83, 0xa5, 0x7d, 0xa7, 0x13, 0x2d, 0xcd, + 0x4e, 0x5f, 0x1a, 0xa2, 0x65, 0x1f, 0x7d, 0x02, 0xd9, 0x13, 0xc3, 0xea, 0x08, 0x39, 0xe2, 0x2c, + 0x21, 0xe9, 0x2c, 0x6a, 0xc3, 0x81, 0x61, 0x75, 0x54, 0x82, 0x92, 0xfe, 0xc6, 0x01, 0xda, 0x25, + 0x62, 0x09, 0x5d, 0xc5, 0xef, 0xfa, 0xd8, 0xf3, 0xd1, 0x26, 0x00, 0x89, 0x9c, 0x36, 0x34, 0xf5, + 0x19, 0x2f, 0x70, 0x6a, 0x81, 0xcc, 0xd6, 0x03, 0x9b, 0xcb, 0x30, 0xef, 0x11, 0x6e, 0x9e, 0xc0, + 0x6f, 0x64, 0xb6, 0x8a, 0x3b, 0xcb, 0x69, 0xa2, 0xd4, 0x08, 0x84, 0x6e, 0xc2, 0x82, 0x8b, 0x9d, + 0x9e, 0xd1, 0xd6, 0x3d, 0xe2, 0x8b, 0x1c, 0x61, 0x18, 0xcf, 0xa1, 0x3b, 0xb0, 0x68, 0xea, 0x5f, + 0x6b, 0x31, 0x26, 0x1b, 0x63, 0x8a, 0xa6, 0xfe, 0xb5, 0x1a, 0xc1, 0xae, 0xc3, 0x7c, 0xdb, 0xe9, + 0x6b, 0x2e, 0x7e, 0x47, 0x2c, 0xa4, 0x6a, 0xe5, 0xdb, 0x4e, 0x5f, 0xc5, 0xef, 0x90, 0x00, 0xf3, + 0x2e, 0xee, 0x1a, 0xb6, 0xe5, 0x09, 0xf9, 0x8d, 0xcc, 0x56, 0x41, 0x8d, 0x86, 0xd2, 0xef, 0x79, + 0xb8, 0x9a, 0xb0, 0xd3, 0x73, 0x6c, 0xcb, 0xc3, 0x68, 0x0d, 0x16, 0xa8, 0xa1, 0x46, 0x27, 0x8c, + 0xe8, 0x3c, 0x19, 0x57, 0x3b, 0x68, 0x3d, 0xe1, 0x03, 0x9e, 0x10, 0x19, 0xfb, 0x57, 0x20, 0xef, + 0xf9, 0xba, 0xdf, 0xa7, 0xd6, 0x14, 0xd4, 0x70, 0x14, 0xe8, 0x30, 0xc0, 0xae, 0x67, 0xd8, 0x16, + 0x31, 0xa1, 0xa0, 0x46, 0x43, 0x74, 0x1b, 0x96, 0x1c, 0x17, 0x7b, 0x46, 0xd7, 0xc2, 0x1d, 0xad, + 0xef, 0xf6, 0xa8, 0x01, 0xea, 0x62, 0x3c, 0xf9, 0xca, 0xed, 0xa1, 0x12, 0x64, 0x7c, 0xbd, 0x2b, + 0xe4, 0x09, 0x29, 0xf8, 0x89, 0xee, 0xc0, 0x25, 0x0f, 0xbb, 0x03, 0xec, 0x6a, 0x91, 0x6d, 0xf3, + 0xc4, 0xb6, 0x25, 0x3a, 0xab, 0xd2, 0x49, 0xd4, 0x84, 0x95, 0x21, 0x77, 0xc7, 0xf6, 0xfc, 0xc0, + 0x47, 0x41, 0x30, 0x85, 0x05, 0x92, 0x3e, 0xeb, 0x71, 0x78, 0x1a, 0x11, 0xac, 0x61, 0x7b, 0x51, + 0xc4, 0xd5, 0x65, 0x27, 0x65, 0x56, 0xfa, 0x2d, 0x07, 0xcb, 0x69, 0xf0, 0x40, 0xcd, 0xc0, 0x02, + 0xea, 0xb2, 0xe0, 0x27, 0x92, 0x21, 0x4f, 0xd2, 0x3e, 0x4a, 0x87, 0x8f, 0xcf, 0x94, 0x57, 0x3e, + 0x22, 0x58, 0xc5, 0xf2, 0xdd, 0x53, 0x35, 0x5c, 0x28, 0x3e, 0x81, 0x22, 0x33, 0x1d, 0xc8, 0x38, + 0xc1, 0xa7, 0x91, 0x8c, 0x13, 0x7c, 0x9a, 0xac, 0xb3, 0x42, 0x58, 0x67, 0x4f, 0xf9, 0xcf, 0x39, + 0xe9, 0xdb, 0x0c, 0x5c, 0x26, 0x91, 0xdd, 0xc3, 0x4e, 0xcf, 0x3e, 0x35, 0x83, 0x6d, 0x63, 0x05, + 0xf2, 0xd4, 0x63, 0x21, 0x8b, 0x70, 0x94, 0x88, 0x39, 0x9f, 0x8c, 0xf9, 0xa4, 0xa0, 0x8a, 0x4c, + 0xf2, 0x92, 0xc4, 0x64, 0x12, 0x77, 0x13, 0x16, 0x4d, 0xc3, 0x1a, 0x26, 0x6e, 0x8e, 0xd0, 0x8b, + 0xa6, 0x61, 0xa9, 0x2c, 0x84, 0xcd, 0xed, 0x7c, 0x08, 0x61, 0xf2, 0x7a, 0x75, 0x98, 0xd7, 0xf3, + 0x54, 0x74, 0x98, 0xd3, 0x01, 0xa1, 0xef, 0x6a, 0x6d, 0xa7, 0x4f, 0x02, 0x19, 0x10, 0xfa, 0xee, + 0xae, 0xd3, 0x8f, 0x08, 0x26, 0x36, 0x85, 0x42, 0x4c, 0x38, 0xc4, 0x66, 0x40, 0x30, 0xb1, 0x49, + 0x58, 0x01, 0x25, 0x98, 0xd8, 0x0c, 0x58, 0x5d, 0x87, 0x42, 0x40, 0xe8, 0x19, 0xa6, 0xe1, 0x0b, + 0x45, 0x42, 0x5a, 0x30, 0xb1, 0x59, 0x0b, 0xc6, 0x01, 0x31, 0x50, 0x80, 0x12, 0x17, 0x29, 0xb1, + 0xed, 0xf4, 0x29, 0xf1, 0x36, 0x2c, 0x25, 0x72, 0x50, 0x58, 0xa2, 0xa9, 0xcb, 0xa6, 0x20, 0xba, + 0x0f, 0x79, 0x1c, 0x6c, 0xc6, 0x9e, 0x70, 0x89, 0x64, 0xc0, 0xd5, 0x94, 0x8d, 0x5a, 0x0d, 0x21, + 0xd2, 0xaf, 0x79, 0x28, 0x90, 0xe9, 0xaa, 0xf5, 0xc6, 0xbe, 0x40, 0x19, 0x32, 0xe5, 0x96, 0x49, + 0x96, 0x9b, 0x02, 0x57, 0xe8, 0xc2, 0x4e, 0x9c, 0x12, 0x41, 0xf0, 0x02, 0xcd, 0x46, 0x76, 0xc5, + 0x61, 0xce, 0xa8, 0x25, 0x3d, 0x39, 0xe1, 0xb1, 0xfb, 0x5c, 0x6e, 0x96, 0x7d, 0xee, 0x0b, 0x28, + 0x52, 0x81, 0x74, 0xef, 0xce, 0x4f, 0xdd, 0xbb, 0x21, 0x82, 0xcb, 0xbe, 0x74, 0x08, 0x57, 0x6a, + 0x86, 0xe7, 0x13, 0xc6, 0x5e, 0x54, 0x6b, 0xeb, 0xe3, 0x9b, 0x31, 0xeb, 0x81, 0xc9, 0xe9, 0x2c, + 0xfd, 0x04, 0x10, 0xcb, 0x2e, 0xdc, 0xf3, 0xb6, 0x21, 0x4f, 0x00, 0x9e, 0xc0, 0x11, 0x83, 0x50, + 0xd2, 0xa0, 0x20, 0x20, 0x6a, 0x88, 0x90, 0xfe, 0xc9, 0xc3, 0x22, 0x99, 0x3d, 0x0a, 0xbd, 0xca, + 0xf8, 0x9b, 0x4b, 0xfa, 0x5b, 0x20, 0xf9, 0xe8, 0xe2, 0xf0, 0xe8, 0x5d, 0x50, 0xa3, 0xe1, 0x45, + 0x0e, 0xc2, 0x11, 0x6f, 0x66, 0xcf, 0xe3, 0x4d, 0xa4, 0x00, 0xe8, 0xbe, 0xef, 0x1a, 0xc7, 0x7d, + 0x1f, 0x47, 0xd1, 0xbb, 0x93, 0x34, 0x36, 0x34, 0xab, 0x2c, 0xc7, 0x38, 0xba, 0x25, 0x31, 0x0b, + 0x99, 0x4d, 0x21, 0x9f, 0xd8, 0x14, 0x96, 0x21, 0x67, 0xbf, 0xb7, 0xb0, 0x1b, 0x16, 0x2c, 0x1d, + 0x88, 0x3f, 0x82, 0xcb, 0x23, 0xcc, 0xce, 0xb5, 0x91, 0xb5, 0x40, 0x88, 0x43, 0x16, 0x2a, 0x17, + 0x27, 0xc2, 0x07, 0x57, 0x89, 0x54, 0x87, 0xb5, 0x14, 0xae, 0x61, 0x3e, 0x3c, 0x86, 0x85, 0x30, + 0x86, 0x51, 0x46, 0x5c, 0x4b, 0x75, 0x92, 0x1a, 0xc3, 0xa4, 0x5f, 0xf0, 0x80, 0x5e, 0x91, 0x96, + 0x23, 0xd1, 0x36, 0x9c, 0xa1, 0xe0, 0xe6, 0xb8, 0x82, 0xa3, 0x1d, 0xc5, 0x7f, 0xb5, 0x43, 0x60, + 0xeb, 0x7c, 0x7e, 0x86, 0x3a, 0x97, 0xaa, 0x70, 0x35, 0xe1, 0x81, 0xd0, 0x99, 0x02, 0xcc, 0x7b, + 0xfd, 0x76, 0x1b, 0x7b, 0x1e, 0xf1, 0xc0, 0x82, 0x1a, 0x0d, 0x03, 0x8a, 0x89, 0x3d, 0x4f, 0xef, + 0x46, 0xf1, 0x89, 0x86, 0xd2, 0x23, 0xb8, 0xaa, 0x06, 0xe9, 0xeb, 0xfa, 0x33, 0x7a, 0x53, 0x7a, + 0x01, 0xcb, 0xc9, 0x15, 0x17, 0x90, 0xfe, 0x77, 0x0e, 0x10, 0xdd, 0xf0, 0x7e, 0xc0, 0x58, 0x32, + 0xde, 0xcc, 0x9c, 0xb7, 0x3b, 0xcc, 0xce, 0x10, 0xfb, 0xdc, 0xd4, 0xd8, 0xe7, 0x47, 0x63, 0x2f, + 0xfd, 0x8b, 0x83, 0xab, 0x09, 0x43, 0x3f, 0xdc, 0x69, 0x09, 0xef, 0x64, 0x92, 0xde, 0x19, 0x6b, + 0xf3, 0xb2, 0x93, 0xdb, 0xbc, 0xdc, 0xb0, 0xcd, 0x9b, 0xdc, 0xbf, 0xe5, 0x3f, 0xbc, 0x7f, 0xfb, + 0x9e, 0x83, 0x35, 0x26, 0x4b, 0xa9, 0xd7, 0x2f, 0xbe, 0x9f, 0xa0, 0x1b, 0x50, 0xb0, 0x07, 0xd8, + 0x7d, 0xef, 0x1a, 0x3e, 0x26, 0xf6, 0x2f, 0xa8, 0xc3, 0x09, 0x36, 0xf8, 0xd9, 0x59, 0x82, 0x4f, + 0x1a, 0x35, 0xd3, 0x1e, 0x60, 0xb2, 0x47, 0x93, 0x46, 0x2d, 0x18, 0x49, 0x0d, 0x10, 0xd3, 0x94, + 0xbf, 0x40, 0xae, 0xff, 0x1c, 0x96, 0x55, 0xbb, 0xd7, 0x3b, 0xd6, 0xdb, 0x27, 0xb3, 0x26, 0xfb, + 0x87, 0xf6, 0x1f, 0xd2, 0x01, 0x5c, 0x1b, 0x91, 0x75, 0x01, 0xc5, 0xeb, 0x41, 0x8d, 0xf6, 0xf0, + 0xec, 0xfb, 0xed, 0x94, 0x03, 0xa1, 0x1a, 0x94, 0x02, 0xc3, 0xef, 0x02, 0xaa, 0x35, 0x61, 0x35, + 0x3e, 0x5b, 0x7e, 0xa8, 0x04, 0x93, 0x5e, 0x30, 0xc7, 0xe0, 0x68, 0xe0, 0x99, 0xf4, 0xe2, 0x66, + 0xd9, 0xa9, 0x9f, 0xc0, 0x52, 0x13, 0xfb, 0xbe, 0x61, 0x75, 0xbd, 0x86, 0xee, 0xea, 0xe6, 0xf4, + 0x2b, 0x7c, 0x74, 0x22, 0x4b, 0x15, 0x58, 0xd9, 0xed, 0x19, 0x84, 0x27, 0x65, 0xc0, 0x28, 0x91, + 0x77, 0x02, 0x66, 0x91, 0x0e, 0x2b, 0xb1, 0x0e, 0x09, 0x59, 0x6a, 0x88, 0x92, 0x56, 0xe1, 0xda, + 0x28, 0x27, 0x5a, 0xa2, 0xdf, 0x71, 0x50, 0x6c, 0xb8, 0xc6, 0x40, 0xf7, 0x71, 0xcd, 0xb0, 0x4e, + 0xd0, 0x5d, 0xb8, 0xec, 0xd0, 0xa1, 0xd6, 0x33, 0xac, 0x93, 0xa1, 0xeb, 0x96, 0x9c, 0x21, 0xaa, + 0xda, 0x89, 0x8d, 0xe0, 0x19, 0x23, 0x76, 0x20, 0xa3, 0xbf, 0xf7, 0xc2, 0x0e, 0xeb, 0x26, 0xb3, + 0x61, 0xc4, 0x0b, 0xcb, 0xf2, 0x97, 0xcd, 0x5d, 0xdb, 0x7a, 0x63, 0x74, 0x2b, 0x73, 0x6a, 0x00, + 0x16, 0xef, 0x41, 0x21, 0x9e, 0x0b, 0xee, 0x39, 0xd8, 0xea, 0x38, 0xb6, 0x61, 0xf9, 0xa1, 0xd4, + 0x78, 0xfc, 0x6c, 0x01, 0xf2, 0x6d, 0x82, 0x92, 0xfe, 0xc2, 0xc3, 0x3a, 0xc3, 0xb3, 0xe1, 0xda, + 0x03, 0x23, 0x48, 0x79, 0xc3, 0xea, 0x36, 0x69, 0x6b, 0xa4, 0xc4, 0x2d, 0x13, 0x7d, 0xb3, 0x79, + 0x90, 0xa6, 0xcb, 0xf8, 0xba, 0x32, 0xfd, 0x2f, 0xee, 0xb0, 0xd6, 0x20, 0x87, 0x5d, 0xd7, 0x76, + 0xa9, 0x91, 0x95, 0x39, 0x95, 0x0e, 0x7f, 0xc9, 0x71, 0xd2, 0x1f, 0x39, 0xc8, 0x87, 0xc2, 0x6e, + 0xc1, 0xf5, 0x86, 0x5a, 0x3d, 0x92, 0x5b, 0x8a, 0x56, 0xab, 0xd6, 0x0f, 0xb4, 0x66, 0x4b, 0x6e, + 0xbd, 0x6a, 0x6a, 0xaf, 0xea, 0x07, 0xf5, 0x97, 0x5f, 0xd6, 0x4b, 0x73, 0x93, 0x00, 0x0d, 0xa5, + 0xbe, 0x57, 0xad, 0xef, 0x97, 0x38, 0xb4, 0x0e, 0x6b, 0x69, 0x00, 0x55, 0x91, 0xf7, 0x5e, 0x97, + 0x78, 0xb4, 0x01, 0x37, 0xd2, 0xc8, 0x7b, 0x4a, 0x4d, 0x69, 0x05, 0x0c, 0x32, 0x93, 0x24, 0x10, + 0x84, 0xb2, 0x57, 0xca, 0xa2, 0x9b, 0x20, 0xa6, 0x01, 0x9e, 0xcb, 0xd5, 0x9a, 0xb2, 0x57, 0xca, + 0x05, 0xce, 0xd5, 0x88, 0x6d, 0xd2, 0xf7, 0x3c, 0xac, 0x32, 0x4e, 0xaa, 0x60, 0xbd, 0xe7, 0xbf, + 0x0d, 0x2d, 0xfd, 0xf1, 0x88, 0x5b, 0xef, 0xa5, 0xb9, 0x95, 0x5d, 0x31, 0xea, 0xd0, 0xe4, 0xbb, + 0x12, 0x7f, 0x8e, 0x77, 0x25, 0xe9, 0x37, 0x43, 0x87, 0x3f, 0x86, 0x07, 0x09, 0x63, 0xe4, 0x56, + 0x4b, 0xde, 0xad, 0x1c, 0x2a, 0xf5, 0x96, 0x56, 0x51, 0xe4, 0x5a, 0xab, 0x32, 0x1e, 0x82, 0x99, + 0x97, 0xd0, 0xd1, 0xeb, 0x12, 0x87, 0x3e, 0x85, 0x87, 0xb3, 0x4a, 0x89, 0x16, 0xf1, 0xd2, 0x9f, + 0x39, 0xb8, 0xc6, 0xf8, 0x42, 0xf6, 0x7d, 0xbd, 0xfd, 0x96, 0xbc, 0x06, 0x7c, 0x01, 0x62, 0xa2, + 0xae, 0xf4, 0x98, 0x34, 0x2c, 0xb1, 0x55, 0x27, 0x6d, 0x69, 0xb5, 0x93, 0x56, 0x94, 0x7c, 0x5a, + 0x51, 0x9e, 0xd1, 0x16, 0x24, 0x2f, 0x41, 0xd9, 0x73, 0x5c, 0x82, 0xa4, 0xef, 0x32, 0x70, 0x2f, + 0xd5, 0xa8, 0x94, 0xca, 0x7b, 0x39, 0x92, 0x22, 0x9f, 0xa5, 0xa5, 0xc8, 0x59, 0x1c, 0xce, 0x51, + 0x83, 0xbf, 0xe2, 0xe3, 0x94, 0xd8, 0x86, 0xbb, 0x93, 0x82, 0x35, 0x96, 0x0b, 0xd3, 0xb1, 0xc3, + 0xca, 0xdc, 0x82, 0x8f, 0xa6, 0x60, 0xa3, 0x22, 0xbd, 0x0f, 0xf7, 0xa6, 0x20, 0x99, 0x7a, 0x9d, + 0xae, 0xc2, 0xb0, 0x74, 0x3f, 0x86, 0x3b, 0x53, 0xb0, 0x29, 0x55, 0xfc, 0x27, 0x1e, 0xa4, 0x31, + 0x87, 0xe3, 0xc0, 0xe3, 0x89, 0x82, 0x7e, 0x31, 0x12, 0xad, 0x9d, 0xc9, 0xd1, 0x1a, 0x5b, 0xfc, + 0x3f, 0x57, 0xdb, 0xdf, 0x72, 0x20, 0xd0, 0x37, 0x5c, 0xc6, 0x39, 0x51, 0xab, 0x91, 0x76, 0xa6, + 0x2b, 0xf4, 0x38, 0xa4, 0xae, 0x78, 0x1c, 0xbb, 0x76, 0x12, 0x0f, 0x72, 0x36, 0x12, 0x5a, 0xf2, + 0x84, 0x7c, 0x00, 0x97, 0x47, 0x28, 0x33, 0x9e, 0x93, 0x2d, 0x58, 0x4b, 0x91, 0x15, 0x36, 0x10, + 0x9f, 0xc1, 0x22, 0xbb, 0xa5, 0x10, 0x36, 0x6c, 0x2b, 0xc3, 0xae, 0x29, 0x32, 0xbb, 0x8c, 0xf4, + 0x53, 0xb8, 0xb7, 0x8f, 0xfd, 0x33, 0xcf, 0xd1, 0xc8, 0x29, 0x33, 0xf6, 0x12, 0xd2, 0x5b, 0xd8, + 0x9a, 0xce, 0x32, 0xd4, 0xfb, 0xff, 0xa3, 0x46, 0x89, 0x2a, 0x7c, 0x77, 0xb6, 0x93, 0x3d, 0x6a, + 0xa8, 0x0e, 0x60, 0x33, 0x29, 0x89, 0xcd, 0xe8, 0xf3, 0xaa, 0xfd, 0x15, 0x48, 0x67, 0x31, 0x0b, + 0x15, 0xfe, 0xbf, 0xa4, 0xc2, 0x1b, 0xd3, 0xce, 0xcc, 0x50, 0xd5, 0x6d, 0x3b, 0x7c, 0x51, 0x1e, + 0x7e, 0x33, 0x09, 0xfa, 0x04, 0x79, 0x9f, 0x14, 0xbe, 0xb2, 0xab, 0x2a, 0x2d, 0xed, 0xa0, 0x5a, + 0xdf, 0x63, 0x0a, 0x61, 0x13, 0xd6, 0xc7, 0xc9, 0x4a, 0xfd, 0xa8, 0xaa, 0xbe, 0xac, 0x07, 0xb9, + 0x5d, 0xe2, 0x90, 0x08, 0x2b, 0xe3, 0x90, 0xe7, 0xd5, 0x9a, 0x52, 0xe2, 0xb7, 0xff, 0xc0, 0xc1, + 0xa5, 0xe4, 0x27, 0x2d, 0x74, 0x03, 0x04, 0x0a, 0x57, 0x8e, 0x82, 0x7f, 0x5b, 0xaf, 0x1b, 0x0a, + 0x23, 0x6f, 0x0b, 0x3e, 0x1a, 0xa3, 0xca, 0x8d, 0x46, 0xad, 0xba, 0x2b, 0xb7, 0xaa, 0x2f, 0xeb, + 0xda, 0xae, 0x2a, 0x37, 0x2b, 0xca, 0x5e, 0x89, 0x43, 0x65, 0xd8, 0x1e, 0x43, 0xaa, 0x4a, 0xb3, + 0x25, 0xab, 0x2d, 0x65, 0x4f, 0xab, 0x54, 0xf7, 0x2b, 0xda, 0x5e, 0xb5, 0x79, 0xa0, 0xbd, 0x6a, + 0xca, 0xfb, 0x4a, 0x89, 0x47, 0x8f, 0xe0, 0x93, 0x69, 0xf8, 0x43, 0xe5, 0xf0, 0xa5, 0xfa, 0x3a, + 0x5c, 0x91, 0xd9, 0xf9, 0x77, 0x01, 0x60, 0xb7, 0x67, 0xf7, 0x3b, 0xc4, 0x02, 0xf4, 0x02, 0x8a, + 0xcc, 0xe7, 0x16, 0x74, 0x7d, 0xa4, 0xf8, 0xd8, 0x5b, 0x8c, 0x78, 0x23, 0x9d, 0x48, 0xc3, 0x27, + 0xcd, 0xa1, 0x7d, 0x80, 0xe1, 0x2b, 0x26, 0x12, 0x63, 0xf4, 0xd8, 0x4b, 0xa9, 0x78, 0x3d, 0x95, + 0x16, 0x33, 0xfa, 0x8a, 0x79, 0x5d, 0x8d, 0x5e, 0xc1, 0xd0, 0xe6, 0xf8, 0x9a, 0x91, 0x77, 0x37, + 0x51, 0x3a, 0x0b, 0x12, 0x73, 0x7f, 0x0d, 0xa5, 0xd1, 0x2b, 0x0b, 0xda, 0x18, 0x5f, 0x99, 0xbc, + 0x22, 0x89, 0x9b, 0x67, 0x20, 0x62, 0xd6, 0x2f, 0xa0, 0xc8, 0x5c, 0x84, 0x19, 0x6f, 0x8e, 0xbf, + 0xc1, 0x31, 0xde, 0x4c, 0x79, 0x9e, 0x92, 0xe6, 0xd0, 0x21, 0x2c, 0xb2, 0x4f, 0x47, 0x68, 0x88, + 0x4f, 0x79, 0x83, 0x12, 0xd7, 0x27, 0x50, 0x59, 0xd5, 0x98, 0x37, 0x15, 0x46, 0xb5, 0xf1, 0x27, + 0x25, 0x46, 0xb5, 0x94, 0x67, 0x18, 0x69, 0x0e, 0x69, 0x89, 0x47, 0xc5, 0xc8, 0x87, 0x52, 0x9a, + 0x41, 0x23, 0x5e, 0xbc, 0x7d, 0x26, 0x26, 0x16, 0xd0, 0x80, 0xa5, 0xc4, 0x95, 0x1c, 0x31, 0xe6, + 0xa5, 0x3c, 0x0b, 0x88, 0x37, 0x27, 0x91, 0x93, 0xe6, 0xc7, 0xf7, 0xe8, 0x84, 0xf9, 0xa3, 0xb7, + 0xf5, 0x84, 0xf9, 0x63, 0x57, 0x6f, 0x69, 0x0e, 0x1d, 0xc1, 0x95, 0x7d, 0xec, 0x27, 0x6f, 0x89, + 0x68, 0xa8, 0x42, 0xea, 0xf5, 0x51, 0xbc, 0x35, 0x91, 0xce, 0xa6, 0xfd, 0xd8, 0x31, 0xc4, 0xa4, + 0xfd, 0xa4, 0xe3, 0x90, 0x49, 0xfb, 0x89, 0xa7, 0x98, 0x34, 0x87, 0xbe, 0xe1, 0x60, 0x63, 0xda, + 0xe1, 0x81, 0x1e, 0xc5, 0xac, 0x66, 0x3c, 0xba, 0xc4, 0xc7, 0xe7, 0x58, 0x11, 0xeb, 0xf2, 0x1e, + 0xc4, 0xc9, 0x07, 0x02, 0xda, 0x9e, 0xc0, 0x32, 0xe5, 0x08, 0x12, 0xef, 0xcf, 0x84, 0x8d, 0x04, + 0x3f, 0x7b, 0xfe, 0xb3, 0xdb, 0x5d, 0xc3, 0x7f, 0xdb, 0x3f, 0x2e, 0xb7, 0x6d, 0xf3, 0x61, 0xb8, + 0x94, 0xfe, 0x7d, 0x43, 0xdb, 0xee, 0x45, 0x13, 0xbf, 0xe3, 0x97, 0x6a, 0xc6, 0x00, 0x1f, 0x90, + 0xb3, 0xc7, 0xf6, 0xed, 0x7f, 0xf0, 0x97, 0xc2, 0xf1, 0xd3, 0xa7, 0x64, 0xe2, 0x38, 0x4f, 0x96, + 0x7c, 0xfa, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x39, 0xe9, 0x3e, 0x9d, 0x46, 0x21, 0x00, 0x00, } diff --git a/rpc/analytics_grpc.pb.go b/rpc/analytics_grpc.pb.go index 14cb42ae7..5c8c48002 100644 --- a/rpc/analytics_grpc.pb.go +++ b/rpc/analytics_grpc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.6.0 +// - protoc-gen-go-grpc v1.6.1 // - protoc v4.23.4 // source: rpc/analytics.proto From 25f7c69a8f8dfca05bcd4add3cdd39d01f5d3a39 Mon Sep 17 00:00:00 2001 From: keepingitneil Date: Thu, 5 Feb 2026 13:07:19 -0800 Subject: [PATCH 5/9] more CRUD --- protobufs/livekit_cloud_agent.proto | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/protobufs/livekit_cloud_agent.proto b/protobufs/livekit_cloud_agent.proto index 51d34e702..4925dd05c 100644 --- a/protobufs/livekit_cloud_agent.proto +++ b/protobufs/livekit_cloud_agent.proto @@ -309,6 +309,20 @@ message CreatePrivateLinkResponse { PrivateLink private_link = 1; } +message DestroyPrivateLinkRequest { + string private_link_id = 1; +} + +message DestroyPrivateLinkResponse { +} + +message ListPrivateLinksRequest { +} + +message ListPrivateLinksResponse { + repeated PrivateLink items = 1; +} + message GetPrivateLinkProvisioningStatusRequest { string private_link_id = 1; } @@ -339,6 +353,8 @@ service CloudAgent { rpc GetClientSettings(ClientSettingsRequest) returns (ClientSettingsResponse) {} rpc CreatePrivateLink(CreatePrivateLinkRequest) returns (CreatePrivateLinkResponse) {} + rpc DestroyPrivateLink(DestroyPrivateLinkRequest) returns (DestroyPrivateLinkResponse) {} + rpc ListPrivateLinks(ListPrivateLinksRequest) returns (ListPrivateLinksResponse) {} rpc GetPrivateLinkProvisioningStatus(GetPrivateLinkProvisioningStatusRequest) returns (GetPrivateLinkProvisioningStatusResponse) {} rpc GetPrivateLinkHealthStatus(GetPrivateLinkHealthStatusRequest) returns (GetPrivateLinkHealthStatusResponse) {} } From 23b3db2571ee9fe1199facd67cbb4738ca4b5ae7 Mon Sep 17 00:00:00 2001 From: keepingitneil Date: Fri, 6 Feb 2026 09:33:47 -0800 Subject: [PATCH 6/9] Agent private link prefix --- utils/guid/id.go | 7 +++++-- utils/id.go | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/utils/guid/id.go b/utils/guid/id.go index 196ed9e9d..17177d2d3 100644 --- a/utils/guid/id.go +++ b/utils/guid/id.go @@ -58,6 +58,7 @@ const ( AgentDispatchPrefix = "AD_" AgentBuilderPrefix = "AB_" AgentBuilderVersionPrefix = "ABV_" + AgentPrivateLinkPrefix = "APL_" CloudAgentPrefix = "CA_" CloudAgentRegionPrefix = "CAR_" CloudAgentVersionPrefix = "CAV_" @@ -102,8 +103,10 @@ func LocalNodeID() (string, error) { return fmt.Sprintf("%s%s", NodePrefix, HashedID(hostname)[:8]), nil } -var b57Index = newB57Index() -var b57Chars = []byte(shortuuid.DefaultAlphabet) +var ( + b57Index = newB57Index() + b57Chars = []byte(shortuuid.DefaultAlphabet) +) func newB57Index() [256]byte { var index [256]byte diff --git a/utils/id.go b/utils/id.go index 4f66583c6..8dba5e5b4 100644 --- a/utils/id.go +++ b/utils/id.go @@ -44,6 +44,7 @@ const ( AgentWorkerPrefix = guid.AgentWorkerPrefix AgentJobPrefix = guid.AgentJobPrefix AgentDispatchPrefix = guid.AgentDispatchPrefix + AgentPrivateLinkPrefix = guid.AgentPrivateLinkPrefix CloudAgentPrefix = guid.CloudAgentPrefix CloudAgentRegionPrefix = guid.CloudAgentRegionPrefix CloudAgentVersionPrefix = guid.CloudAgentVersionPrefix From bc49e56ba959c3be7ef1618b580077100b84a92f Mon Sep 17 00:00:00 2001 From: keepingitneil Date: Fri, 6 Feb 2026 09:34:59 -0800 Subject: [PATCH 7/9] Cloud agent, not agent --- utils/guid/id.go | 64 ++++++++++++++++++++++++------------------------ utils/id.go | 52 +++++++++++++++++++-------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/utils/guid/id.go b/utils/guid/id.go index 17177d2d3..bd28610ba 100644 --- a/utils/guid/id.go +++ b/utils/guid/id.go @@ -35,38 +35,38 @@ import ( const Size = 12 const ( - RoomPrefix = "RM_" - NodePrefix = "ND_" - ParticipantPrefix = "PA_" - TrackPrefix = "TR_" - DataTrackPrefix = "DTR_" - APIKeyPrefix = "API" - EgressPrefix = "EG_" - IngressPrefix = "IN_" - SIPTrunkPrefix = "ST_" - SIPDispatchRulePrefix = "SDR_" - SIPCallPrefix = "SCL_" - SIPTransferPrefix = "STR_" - RPCPrefix = "RPC_" - WHIPResourcePrefix = "WH_" - RTMPResourcePrefix = "RT_" - URLResourcePrefix = "UR_" - SIPHostnamePrefix = "SH" - AgentPrefix = "A_" - AgentWorkerPrefix = "AW_" - AgentJobPrefix = "AJ_" - AgentDispatchPrefix = "AD_" - AgentBuilderPrefix = "AB_" - AgentBuilderVersionPrefix = "ABV_" - AgentPrivateLinkPrefix = "APL_" - CloudAgentPrefix = "CA_" - CloudAgentRegionPrefix = "CAR_" - CloudAgentVersionPrefix = "CAV_" - CloudAgentSecretPrefix = "CAS_" - CloudAgentWorkerPrefix = "CAW_" - AgentGatewayPrefix = "GW_" - CarrierPrefix = "CR_" - PhoneNumberPrefix = "PN_" + RoomPrefix = "RM_" + NodePrefix = "ND_" + ParticipantPrefix = "PA_" + TrackPrefix = "TR_" + DataTrackPrefix = "DTR_" + APIKeyPrefix = "API" + EgressPrefix = "EG_" + IngressPrefix = "IN_" + SIPTrunkPrefix = "ST_" + SIPDispatchRulePrefix = "SDR_" + SIPCallPrefix = "SCL_" + SIPTransferPrefix = "STR_" + RPCPrefix = "RPC_" + WHIPResourcePrefix = "WH_" + RTMPResourcePrefix = "RT_" + URLResourcePrefix = "UR_" + SIPHostnamePrefix = "SH" + AgentPrefix = "A_" + AgentWorkerPrefix = "AW_" + AgentJobPrefix = "AJ_" + AgentDispatchPrefix = "AD_" + AgentBuilderPrefix = "AB_" + AgentBuilderVersionPrefix = "ABV_" + CloudAgentPrefix = "CA_" + CloudAgentRegionPrefix = "CAR_" + CloudAgentVersionPrefix = "CAV_" + CloudAgentSecretPrefix = "CAS_" + CloudAgentWorkerPrefix = "CAW_" + CloudAgentPrivateLinkPrefix = "CAPL_" + AgentGatewayPrefix = "GW_" + CarrierPrefix = "CR_" + PhoneNumberPrefix = "PN_" ) var guidGeneratorPool = sync.Pool{ diff --git a/utils/id.go b/utils/id.go index 8dba5e5b4..b8d6a8948 100644 --- a/utils/id.go +++ b/utils/id.go @@ -24,32 +24,32 @@ const ( ) const ( - RoomPrefix = guid.RoomPrefix - NodePrefix = guid.NodePrefix - ParticipantPrefix = guid.ParticipantPrefix - TrackPrefix = guid.TrackPrefix - DataTrackPrefix = guid.DataTrackPrefix - APIKeyPrefix = guid.APIKeyPrefix - EgressPrefix = guid.EgressPrefix - IngressPrefix = guid.IngressPrefix - SIPTrunkPrefix = guid.SIPTrunkPrefix - SIPDispatchRulePrefix = guid.SIPDispatchRulePrefix - SIPCallPrefix = guid.SIPCallPrefix - SIPTransferPrefix = guid.SIPTransferPrefix - RPCPrefix = guid.RPCPrefix - WHIPResourcePrefix = guid.WHIPResourcePrefix - RTMPResourcePrefix = guid.RTMPResourcePrefix - URLResourcePrefix = guid.URLResourcePrefix - SIPHostnamePrefix = guid.SIPHostnamePrefix - AgentWorkerPrefix = guid.AgentWorkerPrefix - AgentJobPrefix = guid.AgentJobPrefix - AgentDispatchPrefix = guid.AgentDispatchPrefix - AgentPrivateLinkPrefix = guid.AgentPrivateLinkPrefix - CloudAgentPrefix = guid.CloudAgentPrefix - CloudAgentRegionPrefix = guid.CloudAgentRegionPrefix - CloudAgentVersionPrefix = guid.CloudAgentVersionPrefix - CloudAgentSecretPrefix = guid.CloudAgentSecretPrefix - CloudAgentWorkerPrefix = guid.CloudAgentWorkerPrefix + RoomPrefix = guid.RoomPrefix + NodePrefix = guid.NodePrefix + ParticipantPrefix = guid.ParticipantPrefix + TrackPrefix = guid.TrackPrefix + DataTrackPrefix = guid.DataTrackPrefix + APIKeyPrefix = guid.APIKeyPrefix + EgressPrefix = guid.EgressPrefix + IngressPrefix = guid.IngressPrefix + SIPTrunkPrefix = guid.SIPTrunkPrefix + SIPDispatchRulePrefix = guid.SIPDispatchRulePrefix + SIPCallPrefix = guid.SIPCallPrefix + SIPTransferPrefix = guid.SIPTransferPrefix + RPCPrefix = guid.RPCPrefix + WHIPResourcePrefix = guid.WHIPResourcePrefix + RTMPResourcePrefix = guid.RTMPResourcePrefix + URLResourcePrefix = guid.URLResourcePrefix + SIPHostnamePrefix = guid.SIPHostnamePrefix + AgentWorkerPrefix = guid.AgentWorkerPrefix + AgentJobPrefix = guid.AgentJobPrefix + AgentDispatchPrefix = guid.AgentDispatchPrefix + CloudAgentPrefix = guid.CloudAgentPrefix + CloudAgentRegionPrefix = guid.CloudAgentRegionPrefix + CloudAgentVersionPrefix = guid.CloudAgentVersionPrefix + CloudAgentSecretPrefix = guid.CloudAgentSecretPrefix + CloudAgentWorkerPrefix = guid.CloudAgentWorkerPrefix + CloudAgentPrivateLinkPrefix = guid.CloudAgentPrivateLinkPrefix ) func NewGuid(prefix string) string { From f5d08f0007f207a8f2f52f9d6e43486558912646 Mon Sep 17 00:00:00 2001 From: keepingitneil Date: Fri, 6 Feb 2026 14:25:44 -0800 Subject: [PATCH 8/9] remove unused --- protobufs/livekit_cloud_agent.proto | 32 ----------------------------- 1 file changed, 32 deletions(-) diff --git a/protobufs/livekit_cloud_agent.proto b/protobufs/livekit_cloud_agent.proto index 4925dd05c..159545436 100644 --- a/protobufs/livekit_cloud_agent.proto +++ b/protobufs/livekit_cloud_agent.proto @@ -262,38 +262,6 @@ message PrivateLinkHealthStatus { google.protobuf.Timestamp updated_at = 2; } -message PrivateLinkAttachment { - string private_link_attachment_id = 1; - string private_link_id = 2; - string agent_id = 3; - google.protobuf.Timestamp created_at = 4; -} - -message PrivateLinkAttachmentProvisioningStatus { - enum Status { - PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN = 0; - PRIVATE_LINK_ATTACHMENT_STATUS_PENDING = 1; - PRIVATE_LINK_ATTACHMENT_STATUS_READY = 2; - PRIVATE_LINK_ATTACHMENT_STATUS_DELETING = 3; - PRIVATE_LINK_ATTACHMENT_STATUS_DELETED = 4; - PRIVATE_LINK_ATTACHMENT_STATUS_FAILED = 5; - } - - Status status = 1; - optional string error = 2; -} - -message PrivateLinkAttachementHealthStatus { - enum Status { - PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN = 0; - PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY = 1; - PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY = 2; - } - - Status status = 1; - google.protobuf.Timestamp updated_at = 2; -} - message CreatePrivateLinkRequest { message AWSCreateConfig { string endpoint = 1; From 791e5703271841299243a597af50c8f60ad61076 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 22:26:42 +0000 Subject: [PATCH 9/9] generated protobuf --- livekit/livekit_cloud_agent.pb.go | 651 ++++++++------------ livekit/livekit_cloud_agent.twirp.go | 860 ++++++++++++++++++++++----- 2 files changed, 964 insertions(+), 547 deletions(-) diff --git a/livekit/livekit_cloud_agent.pb.go b/livekit/livekit_cloud_agent.pb.go index 529f76550..6bfb0ee62 100644 --- a/livekit/livekit_cloud_agent.pb.go +++ b/livekit/livekit_cloud_agent.pb.go @@ -244,113 +244,6 @@ func (PrivateLinkHealthStatus_Status) EnumDescriptor() ([]byte, []int) { return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{31, 0} } -type PrivateLinkAttachmentProvisioningStatus_Status int32 - -const ( - PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN PrivateLinkAttachmentProvisioningStatus_Status = 0 - PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_PENDING PrivateLinkAttachmentProvisioningStatus_Status = 1 - PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_READY PrivateLinkAttachmentProvisioningStatus_Status = 2 - PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_DELETING PrivateLinkAttachmentProvisioningStatus_Status = 3 - PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_DELETED PrivateLinkAttachmentProvisioningStatus_Status = 4 - PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_FAILED PrivateLinkAttachmentProvisioningStatus_Status = 5 -) - -// Enum value maps for PrivateLinkAttachmentProvisioningStatus_Status. -var ( - PrivateLinkAttachmentProvisioningStatus_Status_name = map[int32]string{ - 0: "PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN", - 1: "PRIVATE_LINK_ATTACHMENT_STATUS_PENDING", - 2: "PRIVATE_LINK_ATTACHMENT_STATUS_READY", - 3: "PRIVATE_LINK_ATTACHMENT_STATUS_DELETING", - 4: "PRIVATE_LINK_ATTACHMENT_STATUS_DELETED", - 5: "PRIVATE_LINK_ATTACHMENT_STATUS_FAILED", - } - PrivateLinkAttachmentProvisioningStatus_Status_value = map[string]int32{ - "PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN": 0, - "PRIVATE_LINK_ATTACHMENT_STATUS_PENDING": 1, - "PRIVATE_LINK_ATTACHMENT_STATUS_READY": 2, - "PRIVATE_LINK_ATTACHMENT_STATUS_DELETING": 3, - "PRIVATE_LINK_ATTACHMENT_STATUS_DELETED": 4, - "PRIVATE_LINK_ATTACHMENT_STATUS_FAILED": 5, - } -) - -func (x PrivateLinkAttachmentProvisioningStatus_Status) Enum() *PrivateLinkAttachmentProvisioningStatus_Status { - p := new(PrivateLinkAttachmentProvisioningStatus_Status) - *p = x - return p -} - -func (x PrivateLinkAttachmentProvisioningStatus_Status) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (PrivateLinkAttachmentProvisioningStatus_Status) Descriptor() protoreflect.EnumDescriptor { - return file_livekit_cloud_agent_proto_enumTypes[4].Descriptor() -} - -func (PrivateLinkAttachmentProvisioningStatus_Status) Type() protoreflect.EnumType { - return &file_livekit_cloud_agent_proto_enumTypes[4] -} - -func (x PrivateLinkAttachmentProvisioningStatus_Status) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use PrivateLinkAttachmentProvisioningStatus_Status.Descriptor instead. -func (PrivateLinkAttachmentProvisioningStatus_Status) EnumDescriptor() ([]byte, []int) { - return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{33, 0} -} - -type PrivateLinkAttachementHealthStatus_Status int32 - -const ( - PrivateLinkAttachementHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN PrivateLinkAttachementHealthStatus_Status = 0 - PrivateLinkAttachementHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY PrivateLinkAttachementHealthStatus_Status = 1 - PrivateLinkAttachementHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY PrivateLinkAttachementHealthStatus_Status = 2 -) - -// Enum value maps for PrivateLinkAttachementHealthStatus_Status. -var ( - PrivateLinkAttachementHealthStatus_Status_name = map[int32]string{ - 0: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN", - 1: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY", - 2: "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY", - } - PrivateLinkAttachementHealthStatus_Status_value = map[string]int32{ - "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN": 0, - "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY": 1, - "PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY": 2, - } -) - -func (x PrivateLinkAttachementHealthStatus_Status) Enum() *PrivateLinkAttachementHealthStatus_Status { - p := new(PrivateLinkAttachementHealthStatus_Status) - *p = x - return p -} - -func (x PrivateLinkAttachementHealthStatus_Status) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (PrivateLinkAttachementHealthStatus_Status) Descriptor() protoreflect.EnumDescriptor { - return file_livekit_cloud_agent_proto_enumTypes[5].Descriptor() -} - -func (PrivateLinkAttachementHealthStatus_Status) Type() protoreflect.EnumType { - return &file_livekit_cloud_agent_proto_enumTypes[5] -} - -func (x PrivateLinkAttachementHealthStatus_Status) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use PrivateLinkAttachementHealthStatus_Status.Descriptor instead. -func (PrivateLinkAttachementHealthStatus_Status) EnumDescriptor() ([]byte, []int) { - return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{34, 0} -} - type AgentEvent struct { state protoimpl.MessageState `protogen:"open.v1"` Type AgentEventType `protobuf:"varint,1,opt,name=type,proto3,enum=livekit.AgentEventType" json:"type,omitempty"` @@ -2429,30 +2322,31 @@ func (x *PrivateLinkHealthStatus) GetUpdatedAt() *timestamppb.Timestamp { return nil } -type PrivateLinkAttachment struct { - state protoimpl.MessageState `protogen:"open.v1"` - PrivateLinkAttachmentId string `protobuf:"bytes,1,opt,name=private_link_attachment_id,json=privateLinkAttachmentId,proto3" json:"private_link_attachment_id,omitempty"` - PrivateLinkId string `protobuf:"bytes,2,opt,name=private_link_id,json=privateLinkId,proto3" json:"private_link_id,omitempty"` - AgentId string `protobuf:"bytes,3,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache +type CreatePrivateLinkRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are valid to be assigned to Config: + // + // *CreatePrivateLinkRequest_Aws + Config isCreatePrivateLinkRequest_Config `protobuf_oneof:"config"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } -func (x *PrivateLinkAttachment) Reset() { - *x = PrivateLinkAttachment{} +func (x *CreatePrivateLinkRequest) Reset() { + *x = CreatePrivateLinkRequest{} mi := &file_livekit_cloud_agent_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PrivateLinkAttachment) String() string { +func (x *CreatePrivateLinkRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PrivateLinkAttachment) ProtoMessage() {} +func (*CreatePrivateLinkRequest) ProtoMessage() {} -func (x *PrivateLinkAttachment) ProtoReflect() protoreflect.Message { +func (x *CreatePrivateLinkRequest) ProtoReflect() protoreflect.Message { mi := &file_livekit_cloud_agent_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2464,61 +2358,65 @@ func (x *PrivateLinkAttachment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PrivateLinkAttachment.ProtoReflect.Descriptor instead. -func (*PrivateLinkAttachment) Descriptor() ([]byte, []int) { +// Deprecated: Use CreatePrivateLinkRequest.ProtoReflect.Descriptor instead. +func (*CreatePrivateLinkRequest) Descriptor() ([]byte, []int) { return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{32} } -func (x *PrivateLinkAttachment) GetPrivateLinkAttachmentId() string { +func (x *CreatePrivateLinkRequest) GetName() string { if x != nil { - return x.PrivateLinkAttachmentId + return x.Name } return "" } -func (x *PrivateLinkAttachment) GetPrivateLinkId() string { +func (x *CreatePrivateLinkRequest) GetConfig() isCreatePrivateLinkRequest_Config { if x != nil { - return x.PrivateLinkId + return x.Config } - return "" + return nil } -func (x *PrivateLinkAttachment) GetAgentId() string { +func (x *CreatePrivateLinkRequest) GetAws() *CreatePrivateLinkRequest_AWSCreateConfig { if x != nil { - return x.AgentId + if x, ok := x.Config.(*CreatePrivateLinkRequest_Aws); ok { + return x.Aws + } } - return "" + return nil } -func (x *PrivateLinkAttachment) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil +type isCreatePrivateLinkRequest_Config interface { + isCreatePrivateLinkRequest_Config() +} + +type CreatePrivateLinkRequest_Aws struct { + Aws *CreatePrivateLinkRequest_AWSCreateConfig `protobuf:"bytes,2,opt,name=aws,proto3,oneof"` } -type PrivateLinkAttachmentProvisioningStatus struct { - state protoimpl.MessageState `protogen:"open.v1"` - Status PrivateLinkAttachmentProvisioningStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=livekit.PrivateLinkAttachmentProvisioningStatus_Status" json:"status,omitempty"` - Error *string `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` +func (*CreatePrivateLinkRequest_Aws) isCreatePrivateLinkRequest_Config() {} + +type CreatePrivateLinkResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrivateLink *PrivateLink `protobuf:"bytes,1,opt,name=private_link,json=privateLink,proto3" json:"private_link,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *PrivateLinkAttachmentProvisioningStatus) Reset() { - *x = PrivateLinkAttachmentProvisioningStatus{} +func (x *CreatePrivateLinkResponse) Reset() { + *x = CreatePrivateLinkResponse{} mi := &file_livekit_cloud_agent_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PrivateLinkAttachmentProvisioningStatus) String() string { +func (x *CreatePrivateLinkResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PrivateLinkAttachmentProvisioningStatus) ProtoMessage() {} +func (*CreatePrivateLinkResponse) ProtoMessage() {} -func (x *PrivateLinkAttachmentProvisioningStatus) ProtoReflect() protoreflect.Message { +func (x *CreatePrivateLinkResponse) ProtoReflect() protoreflect.Message { mi := &file_livekit_cloud_agent_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2530,47 +2428,39 @@ func (x *PrivateLinkAttachmentProvisioningStatus) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PrivateLinkAttachmentProvisioningStatus.ProtoReflect.Descriptor instead. -func (*PrivateLinkAttachmentProvisioningStatus) Descriptor() ([]byte, []int) { +// Deprecated: Use CreatePrivateLinkResponse.ProtoReflect.Descriptor instead. +func (*CreatePrivateLinkResponse) Descriptor() ([]byte, []int) { return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{33} } -func (x *PrivateLinkAttachmentProvisioningStatus) GetStatus() PrivateLinkAttachmentProvisioningStatus_Status { +func (x *CreatePrivateLinkResponse) GetPrivateLink() *PrivateLink { if x != nil { - return x.Status - } - return PrivateLinkAttachmentProvisioningStatus_PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN -} - -func (x *PrivateLinkAttachmentProvisioningStatus) GetError() string { - if x != nil && x.Error != nil { - return *x.Error + return x.PrivateLink } - return "" + return nil } -type PrivateLinkAttachementHealthStatus struct { - state protoimpl.MessageState `protogen:"open.v1"` - Status PrivateLinkAttachementHealthStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=livekit.PrivateLinkAttachementHealthStatus_Status" json:"status,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` +type DestroyPrivateLinkRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrivateLinkId string `protobuf:"bytes,1,opt,name=private_link_id,json=privateLinkId,proto3" json:"private_link_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *PrivateLinkAttachementHealthStatus) Reset() { - *x = PrivateLinkAttachementHealthStatus{} +func (x *DestroyPrivateLinkRequest) Reset() { + *x = DestroyPrivateLinkRequest{} mi := &file_livekit_cloud_agent_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *PrivateLinkAttachementHealthStatus) String() string { +func (x *DestroyPrivateLinkRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PrivateLinkAttachementHealthStatus) ProtoMessage() {} +func (*DestroyPrivateLinkRequest) ProtoMessage() {} -func (x *PrivateLinkAttachementHealthStatus) ProtoReflect() protoreflect.Message { +func (x *DestroyPrivateLinkRequest) ProtoReflect() protoreflect.Message { mi := &file_livekit_cloud_agent_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2582,50 +2472,38 @@ func (x *PrivateLinkAttachementHealthStatus) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PrivateLinkAttachementHealthStatus.ProtoReflect.Descriptor instead. -func (*PrivateLinkAttachementHealthStatus) Descriptor() ([]byte, []int) { +// Deprecated: Use DestroyPrivateLinkRequest.ProtoReflect.Descriptor instead. +func (*DestroyPrivateLinkRequest) Descriptor() ([]byte, []int) { return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{34} } -func (x *PrivateLinkAttachementHealthStatus) GetStatus() PrivateLinkAttachementHealthStatus_Status { +func (x *DestroyPrivateLinkRequest) GetPrivateLinkId() string { if x != nil { - return x.Status - } - return PrivateLinkAttachementHealthStatus_PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN -} - -func (x *PrivateLinkAttachementHealthStatus) GetUpdatedAt() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedAt + return x.PrivateLinkId } - return nil + return "" } -type CreatePrivateLinkRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Types that are valid to be assigned to Config: - // - // *CreatePrivateLinkRequest_Aws - Config isCreatePrivateLinkRequest_Config `protobuf_oneof:"config"` +type DestroyPrivateLinkResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *CreatePrivateLinkRequest) Reset() { - *x = CreatePrivateLinkRequest{} +func (x *DestroyPrivateLinkResponse) Reset() { + *x = DestroyPrivateLinkResponse{} mi := &file_livekit_cloud_agent_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CreatePrivateLinkRequest) String() string { +func (x *DestroyPrivateLinkResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreatePrivateLinkRequest) ProtoMessage() {} +func (*DestroyPrivateLinkResponse) ProtoMessage() {} -func (x *CreatePrivateLinkRequest) ProtoReflect() protoreflect.Message { +func (x *DestroyPrivateLinkResponse) ProtoReflect() protoreflect.Message { mi := &file_livekit_cloud_agent_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2637,66 +2515,69 @@ func (x *CreatePrivateLinkRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreatePrivateLinkRequest.ProtoReflect.Descriptor instead. -func (*CreatePrivateLinkRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DestroyPrivateLinkResponse.ProtoReflect.Descriptor instead. +func (*DestroyPrivateLinkResponse) Descriptor() ([]byte, []int) { return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{35} } -func (x *CreatePrivateLinkRequest) GetName() string { - if x != nil { - return x.Name - } - return "" +type ListPrivateLinksRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } -func (x *CreatePrivateLinkRequest) GetConfig() isCreatePrivateLinkRequest_Config { - if x != nil { - return x.Config - } - return nil +func (x *ListPrivateLinksRequest) Reset() { + *x = ListPrivateLinksRequest{} + mi := &file_livekit_cloud_agent_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (x *CreatePrivateLinkRequest) GetAws() *CreatePrivateLinkRequest_AWSCreateConfig { +func (x *ListPrivateLinksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPrivateLinksRequest) ProtoMessage() {} + +func (x *ListPrivateLinksRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[36] if x != nil { - if x, ok := x.Config.(*CreatePrivateLinkRequest_Aws); ok { - return x.Aws + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) } + return ms } - return nil -} - -type isCreatePrivateLinkRequest_Config interface { - isCreatePrivateLinkRequest_Config() + return mi.MessageOf(x) } -type CreatePrivateLinkRequest_Aws struct { - Aws *CreatePrivateLinkRequest_AWSCreateConfig `protobuf:"bytes,2,opt,name=aws,proto3,oneof"` +// Deprecated: Use ListPrivateLinksRequest.ProtoReflect.Descriptor instead. +func (*ListPrivateLinksRequest) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{36} } -func (*CreatePrivateLinkRequest_Aws) isCreatePrivateLinkRequest_Config() {} - -type CreatePrivateLinkResponse struct { +type ListPrivateLinksResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - PrivateLink *PrivateLink `protobuf:"bytes,1,opt,name=private_link,json=privateLink,proto3" json:"private_link,omitempty"` + Items []*PrivateLink `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *CreatePrivateLinkResponse) Reset() { - *x = CreatePrivateLinkResponse{} - mi := &file_livekit_cloud_agent_proto_msgTypes[36] +func (x *ListPrivateLinksResponse) Reset() { + *x = ListPrivateLinksResponse{} + mi := &file_livekit_cloud_agent_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *CreatePrivateLinkResponse) String() string { +func (x *ListPrivateLinksResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreatePrivateLinkResponse) ProtoMessage() {} +func (*ListPrivateLinksResponse) ProtoMessage() {} -func (x *CreatePrivateLinkResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_cloud_agent_proto_msgTypes[36] +func (x *ListPrivateLinksResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_cloud_agent_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2707,14 +2588,14 @@ func (x *CreatePrivateLinkResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreatePrivateLinkResponse.ProtoReflect.Descriptor instead. -func (*CreatePrivateLinkResponse) Descriptor() ([]byte, []int) { - return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{36} +// Deprecated: Use ListPrivateLinksResponse.ProtoReflect.Descriptor instead. +func (*ListPrivateLinksResponse) Descriptor() ([]byte, []int) { + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{37} } -func (x *CreatePrivateLinkResponse) GetPrivateLink() *PrivateLink { +func (x *ListPrivateLinksResponse) GetItems() []*PrivateLink { if x != nil { - return x.PrivateLink + return x.Items } return nil } @@ -2728,7 +2609,7 @@ type GetPrivateLinkProvisioningStatusRequest struct { func (x *GetPrivateLinkProvisioningStatusRequest) Reset() { *x = GetPrivateLinkProvisioningStatusRequest{} - mi := &file_livekit_cloud_agent_proto_msgTypes[37] + mi := &file_livekit_cloud_agent_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2740,7 +2621,7 @@ func (x *GetPrivateLinkProvisioningStatusRequest) String() string { func (*GetPrivateLinkProvisioningStatusRequest) ProtoMessage() {} func (x *GetPrivateLinkProvisioningStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_cloud_agent_proto_msgTypes[37] + mi := &file_livekit_cloud_agent_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2753,7 +2634,7 @@ func (x *GetPrivateLinkProvisioningStatusRequest) ProtoReflect() protoreflect.Me // Deprecated: Use GetPrivateLinkProvisioningStatusRequest.ProtoReflect.Descriptor instead. func (*GetPrivateLinkProvisioningStatusRequest) Descriptor() ([]byte, []int) { - return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{37} + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{38} } func (x *GetPrivateLinkProvisioningStatusRequest) GetPrivateLinkId() string { @@ -2772,7 +2653,7 @@ type GetPrivateLinkProvisioningStatusResponse struct { func (x *GetPrivateLinkProvisioningStatusResponse) Reset() { *x = GetPrivateLinkProvisioningStatusResponse{} - mi := &file_livekit_cloud_agent_proto_msgTypes[38] + mi := &file_livekit_cloud_agent_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2784,7 +2665,7 @@ func (x *GetPrivateLinkProvisioningStatusResponse) String() string { func (*GetPrivateLinkProvisioningStatusResponse) ProtoMessage() {} func (x *GetPrivateLinkProvisioningStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_cloud_agent_proto_msgTypes[38] + mi := &file_livekit_cloud_agent_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2797,7 +2678,7 @@ func (x *GetPrivateLinkProvisioningStatusResponse) ProtoReflect() protoreflect.M // Deprecated: Use GetPrivateLinkProvisioningStatusResponse.ProtoReflect.Descriptor instead. func (*GetPrivateLinkProvisioningStatusResponse) Descriptor() ([]byte, []int) { - return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{38} + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{39} } func (x *GetPrivateLinkProvisioningStatusResponse) GetValue() *PrivateLinkProvisioningStatus { @@ -2816,7 +2697,7 @@ type GetPrivateLinkHealthStatusRequest struct { func (x *GetPrivateLinkHealthStatusRequest) Reset() { *x = GetPrivateLinkHealthStatusRequest{} - mi := &file_livekit_cloud_agent_proto_msgTypes[39] + mi := &file_livekit_cloud_agent_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2828,7 +2709,7 @@ func (x *GetPrivateLinkHealthStatusRequest) String() string { func (*GetPrivateLinkHealthStatusRequest) ProtoMessage() {} func (x *GetPrivateLinkHealthStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_cloud_agent_proto_msgTypes[39] + mi := &file_livekit_cloud_agent_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2841,7 +2722,7 @@ func (x *GetPrivateLinkHealthStatusRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GetPrivateLinkHealthStatusRequest.ProtoReflect.Descriptor instead. func (*GetPrivateLinkHealthStatusRequest) Descriptor() ([]byte, []int) { - return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{39} + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{40} } func (x *GetPrivateLinkHealthStatusRequest) GetPrivateLinkId() string { @@ -2860,7 +2741,7 @@ type GetPrivateLinkHealthStatusResponse struct { func (x *GetPrivateLinkHealthStatusResponse) Reset() { *x = GetPrivateLinkHealthStatusResponse{} - mi := &file_livekit_cloud_agent_proto_msgTypes[40] + mi := &file_livekit_cloud_agent_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2872,7 +2753,7 @@ func (x *GetPrivateLinkHealthStatusResponse) String() string { func (*GetPrivateLinkHealthStatusResponse) ProtoMessage() {} func (x *GetPrivateLinkHealthStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_cloud_agent_proto_msgTypes[40] + mi := &file_livekit_cloud_agent_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2885,7 +2766,7 @@ func (x *GetPrivateLinkHealthStatusResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetPrivateLinkHealthStatusResponse.ProtoReflect.Descriptor instead. func (*GetPrivateLinkHealthStatusResponse) Descriptor() ([]byte, []int) { - return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{40} + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{41} } func (x *GetPrivateLinkHealthStatusResponse) GetValue() *PrivateLinkHealthStatus { @@ -2904,7 +2785,7 @@ type PrivateLink_AWSConfig struct { func (x *PrivateLink_AWSConfig) Reset() { *x = PrivateLink_AWSConfig{} - mi := &file_livekit_cloud_agent_proto_msgTypes[43] + mi := &file_livekit_cloud_agent_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2916,7 +2797,7 @@ func (x *PrivateLink_AWSConfig) String() string { func (*PrivateLink_AWSConfig) ProtoMessage() {} func (x *PrivateLink_AWSConfig) ProtoReflect() protoreflect.Message { - mi := &file_livekit_cloud_agent_proto_msgTypes[43] + mi := &file_livekit_cloud_agent_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2948,7 +2829,7 @@ type CreatePrivateLinkRequest_AWSCreateConfig struct { func (x *CreatePrivateLinkRequest_AWSCreateConfig) Reset() { *x = CreatePrivateLinkRequest_AWSCreateConfig{} - mi := &file_livekit_cloud_agent_proto_msgTypes[44] + mi := &file_livekit_cloud_agent_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2960,7 +2841,7 @@ func (x *CreatePrivateLinkRequest_AWSCreateConfig) String() string { func (*CreatePrivateLinkRequest_AWSCreateConfig) ProtoMessage() {} func (x *CreatePrivateLinkRequest_AWSCreateConfig) ProtoReflect() protoreflect.Message { - mi := &file_livekit_cloud_agent_proto_msgTypes[44] + mi := &file_livekit_cloud_agent_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2973,7 +2854,7 @@ func (x *CreatePrivateLinkRequest_AWSCreateConfig) ProtoReflect() protoreflect.M // Deprecated: Use CreatePrivateLinkRequest_AWSCreateConfig.ProtoReflect.Descriptor instead. func (*CreatePrivateLinkRequest_AWSCreateConfig) Descriptor() ([]byte, []int) { - return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{35, 0} + return file_livekit_cloud_agent_proto_rawDescGZIP(), []int{32, 0} } func (x *CreatePrivateLinkRequest_AWSCreateConfig) GetEndpoint() string { @@ -3171,31 +3052,6 @@ const file_livekit_cloud_agent_proto_rawDesc = "" + "\x06Status\x121\n" + "-PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN\x10\x00\x121\n" + "-PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY\x10\x01\x123\n" + - "/PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY\x10\x02\"\xd2\x01\n" + - "\x15PrivateLinkAttachment\x12;\n" + - "\x1aprivate_link_attachment_id\x18\x01 \x01(\tR\x17privateLinkAttachmentId\x12&\n" + - "\x0fprivate_link_id\x18\x02 \x01(\tR\rprivateLinkId\x12\x19\n" + - "\bagent_id\x18\x03 \x01(\tR\aagentId\x129\n" + - "\n" + - "created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xb0\x03\n" + - "'PrivateLinkAttachmentProvisioningStatus\x12O\n" + - "\x06status\x18\x01 \x01(\x0e27.livekit.PrivateLinkAttachmentProvisioningStatus.StatusR\x06status\x12\x19\n" + - "\x05error\x18\x02 \x01(\tH\x00R\x05error\x88\x01\x01\"\x8e\x02\n" + - "\x06Status\x12*\n" + - "&PRIVATE_LINK_ATTACHMENT_STATUS_UNKNOWN\x10\x00\x12*\n" + - "&PRIVATE_LINK_ATTACHMENT_STATUS_PENDING\x10\x01\x12(\n" + - "$PRIVATE_LINK_ATTACHMENT_STATUS_READY\x10\x02\x12+\n" + - "'PRIVATE_LINK_ATTACHMENT_STATUS_DELETING\x10\x03\x12*\n" + - "&PRIVATE_LINK_ATTACHMENT_STATUS_DELETED\x10\x04\x12)\n" + - "%PRIVATE_LINK_ATTACHMENT_STATUS_FAILED\x10\x05B\b\n" + - "\x06_error\"\xd1\x02\n" + - "\"PrivateLinkAttachementHealthStatus\x12J\n" + - "\x06status\x18\x01 \x01(\x0e22.livekit.PrivateLinkAttachementHealthStatus.StatusR\x06status\x129\n" + - "\n" + - "updated_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\"\xa3\x01\n" + - "\x06Status\x121\n" + - "-PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNKNOWN\x10\x00\x121\n" + - "-PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_HEALTHY\x10\x01\x123\n" + "/PRIVATE_LINK_ATTACHMENT_HEALTH_STATUS_UNHEALTHY\x10\x02\"\xae\x01\n" + "\x18CreatePrivateLinkRequest\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12E\n" + @@ -3204,7 +3060,13 @@ const file_livekit_cloud_agent_proto_rawDesc = "" + "\bendpoint\x18\x01 \x01(\tR\bendpointB\b\n" + "\x06config\"T\n" + "\x19CreatePrivateLinkResponse\x127\n" + - "\fprivate_link\x18\x01 \x01(\v2\x14.livekit.PrivateLinkR\vprivateLink\"Q\n" + + "\fprivate_link\x18\x01 \x01(\v2\x14.livekit.PrivateLinkR\vprivateLink\"C\n" + + "\x19DestroyPrivateLinkRequest\x12&\n" + + "\x0fprivate_link_id\x18\x01 \x01(\tR\rprivateLinkId\"\x1c\n" + + "\x1aDestroyPrivateLinkResponse\"\x19\n" + + "\x17ListPrivateLinksRequest\"F\n" + + "\x18ListPrivateLinksResponse\x12*\n" + + "\x05items\x18\x01 \x03(\v2\x14.livekit.PrivateLinkR\x05items\"Q\n" + "'GetPrivateLinkProvisioningStatusRequest\x12&\n" + "\x0fprivate_link_id\x18\x01 \x01(\tR\rprivateLinkId\"h\n" + "(GetPrivateLinkProvisioningStatusResponse\x12<\n" + @@ -3221,7 +3083,7 @@ const file_livekit_cloud_agent_proto_rawDesc = "" + "\x18AGENT_EVENT_TYPE_UNKNOWN\x10\x00\x12(\n" + "$AGENT_EVENT_TYPE_APPLICATION_CRASHED\x10\x01\x12.\n" + "*AGENT_EVENT_TYPE_RESTARTED_HIGH_DISK_USAGE\x10\x02\x120\n" + - ",AGENT_EVENT_TYPE_RESTARTED_HIGH_MEMORY_USAGE\x10\x032\xfb\t\n" + + ",AGENT_EVENT_TYPE_RESTARTED_HIGH_MEMORY_USAGE\x10\x032\xb7\v\n" + "\n" + "CloudAgent\x12J\n" + "\vCreateAgent\x12\x1b.livekit.CreateAgentRequest\x1a\x1c.livekit.CreateAgentResponse\"\x00\x12G\n" + @@ -3236,7 +3098,9 @@ const file_livekit_cloud_agent_proto_rawDesc = "" + "\rRollbackAgent\x12\x1d.livekit.RollbackAgentRequest\x1a\x1e.livekit.RollbackAgentResponse\"\x00\x12J\n" + "\vDeleteAgent\x12\x1b.livekit.DeleteAgentRequest\x1a\x1c.livekit.DeleteAgentResponse\"\x00\x12V\n" + "\x11GetClientSettings\x12\x1e.livekit.ClientSettingsRequest\x1a\x1f.livekit.ClientSettingsResponse\"\x00\x12\\\n" + - "\x11CreatePrivateLink\x12!.livekit.CreatePrivateLinkRequest\x1a\".livekit.CreatePrivateLinkResponse\"\x00\x12\x89\x01\n" + + "\x11CreatePrivateLink\x12!.livekit.CreatePrivateLinkRequest\x1a\".livekit.CreatePrivateLinkResponse\"\x00\x12_\n" + + "\x12DestroyPrivateLink\x12\".livekit.DestroyPrivateLinkRequest\x1a#.livekit.DestroyPrivateLinkResponse\"\x00\x12Y\n" + + "\x10ListPrivateLinks\x12 .livekit.ListPrivateLinksRequest\x1a!.livekit.ListPrivateLinksResponse\"\x00\x12\x89\x01\n" + " GetPrivateLinkProvisioningStatus\x120.livekit.GetPrivateLinkProvisioningStatusRequest\x1a1.livekit.GetPrivateLinkProvisioningStatusResponse\"\x00\x12w\n" + "\x1aGetPrivateLinkHealthStatus\x12*.livekit.GetPrivateLinkHealthStatusRequest\x1a+.livekit.GetPrivateLinkHealthStatusResponse\"\x00BFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3" @@ -3252,131 +3116,131 @@ func file_livekit_cloud_agent_proto_rawDescGZIP() []byte { return file_livekit_cloud_agent_proto_rawDescData } -var file_livekit_cloud_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_livekit_cloud_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 45) +var file_livekit_cloud_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_livekit_cloud_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 46) var file_livekit_cloud_agent_proto_goTypes = []any{ - (AgentSecretKind)(0), // 0: livekit.AgentSecretKind - (AgentEventType)(0), // 1: livekit.AgentEventType - (PrivateLinkProvisioningStatus_Status)(0), // 2: livekit.PrivateLinkProvisioningStatus.Status - (PrivateLinkHealthStatus_Status)(0), // 3: livekit.PrivateLinkHealthStatus.Status - (PrivateLinkAttachmentProvisioningStatus_Status)(0), // 4: livekit.PrivateLinkAttachmentProvisioningStatus.Status - (PrivateLinkAttachementHealthStatus_Status)(0), // 5: livekit.PrivateLinkAttachementHealthStatus.Status - (*AgentEvent)(nil), // 6: livekit.AgentEvent - (*AgentSecret)(nil), // 7: livekit.AgentSecret - (*CreateAgentRequest)(nil), // 8: livekit.CreateAgentRequest - (*CreateAgentResponse)(nil), // 9: livekit.CreateAgentResponse - (*PresignedPostRequest)(nil), // 10: livekit.PresignedPostRequest - (*AgentDeployment)(nil), // 11: livekit.AgentDeployment - (*AgentInfo)(nil), // 12: livekit.AgentInfo - (*ListAgentsRequest)(nil), // 13: livekit.ListAgentsRequest - (*ListAgentsResponse)(nil), // 14: livekit.ListAgentsResponse - (*AgentVersion)(nil), // 15: livekit.AgentVersion - (*ListAgentVersionsRequest)(nil), // 16: livekit.ListAgentVersionsRequest - (*ListAgentVersionsResponse)(nil), // 17: livekit.ListAgentVersionsResponse - (*UpdateAgentRequest)(nil), // 18: livekit.UpdateAgentRequest - (*UpdateAgentResponse)(nil), // 19: livekit.UpdateAgentResponse - (*RestartAgentRequest)(nil), // 20: livekit.RestartAgentRequest - (*RestartAgentResponse)(nil), // 21: livekit.RestartAgentResponse - (*DeployAgentRequest)(nil), // 22: livekit.DeployAgentRequest - (*DeployAgentResponse)(nil), // 23: livekit.DeployAgentResponse - (*UpdateAgentSecretsRequest)(nil), // 24: livekit.UpdateAgentSecretsRequest - (*UpdateAgentSecretsResponse)(nil), // 25: livekit.UpdateAgentSecretsResponse - (*RollbackAgentRequest)(nil), // 26: livekit.RollbackAgentRequest - (*RollbackAgentResponse)(nil), // 27: livekit.RollbackAgentResponse - (*DeleteAgentRequest)(nil), // 28: livekit.DeleteAgentRequest - (*DeleteAgentResponse)(nil), // 29: livekit.DeleteAgentResponse - (*ListAgentSecretsRequest)(nil), // 30: livekit.ListAgentSecretsRequest - (*ListAgentSecretsResponse)(nil), // 31: livekit.ListAgentSecretsResponse - (*SettingsParam)(nil), // 32: livekit.SettingsParam - (*ClientSettingsResponse)(nil), // 33: livekit.ClientSettingsResponse - (*ClientSettingsRequest)(nil), // 34: livekit.ClientSettingsRequest - (*PrivateLink)(nil), // 35: livekit.PrivateLink - (*PrivateLinkProvisioningStatus)(nil), // 36: livekit.PrivateLinkProvisioningStatus - (*PrivateLinkHealthStatus)(nil), // 37: livekit.PrivateLinkHealthStatus - (*PrivateLinkAttachment)(nil), // 38: livekit.PrivateLinkAttachment - (*PrivateLinkAttachmentProvisioningStatus)(nil), // 39: livekit.PrivateLinkAttachmentProvisioningStatus - (*PrivateLinkAttachementHealthStatus)(nil), // 40: livekit.PrivateLinkAttachementHealthStatus - (*CreatePrivateLinkRequest)(nil), // 41: livekit.CreatePrivateLinkRequest - (*CreatePrivateLinkResponse)(nil), // 42: livekit.CreatePrivateLinkResponse - (*GetPrivateLinkProvisioningStatusRequest)(nil), // 43: livekit.GetPrivateLinkProvisioningStatusRequest - (*GetPrivateLinkProvisioningStatusResponse)(nil), // 44: livekit.GetPrivateLinkProvisioningStatusResponse - (*GetPrivateLinkHealthStatusRequest)(nil), // 45: livekit.GetPrivateLinkHealthStatusRequest - (*GetPrivateLinkHealthStatusResponse)(nil), // 46: livekit.GetPrivateLinkHealthStatusResponse - nil, // 47: livekit.PresignedPostRequest.ValuesEntry - nil, // 48: livekit.AgentVersion.AttributesEntry - (*PrivateLink_AWSConfig)(nil), // 49: livekit.PrivateLink.AWSConfig - (*CreatePrivateLinkRequest_AWSCreateConfig)(nil), // 50: livekit.CreatePrivateLinkRequest.AWSCreateConfig - (*timestamppb.Timestamp)(nil), // 51: google.protobuf.Timestamp + (AgentSecretKind)(0), // 0: livekit.AgentSecretKind + (AgentEventType)(0), // 1: livekit.AgentEventType + (PrivateLinkProvisioningStatus_Status)(0), // 2: livekit.PrivateLinkProvisioningStatus.Status + (PrivateLinkHealthStatus_Status)(0), // 3: livekit.PrivateLinkHealthStatus.Status + (*AgentEvent)(nil), // 4: livekit.AgentEvent + (*AgentSecret)(nil), // 5: livekit.AgentSecret + (*CreateAgentRequest)(nil), // 6: livekit.CreateAgentRequest + (*CreateAgentResponse)(nil), // 7: livekit.CreateAgentResponse + (*PresignedPostRequest)(nil), // 8: livekit.PresignedPostRequest + (*AgentDeployment)(nil), // 9: livekit.AgentDeployment + (*AgentInfo)(nil), // 10: livekit.AgentInfo + (*ListAgentsRequest)(nil), // 11: livekit.ListAgentsRequest + (*ListAgentsResponse)(nil), // 12: livekit.ListAgentsResponse + (*AgentVersion)(nil), // 13: livekit.AgentVersion + (*ListAgentVersionsRequest)(nil), // 14: livekit.ListAgentVersionsRequest + (*ListAgentVersionsResponse)(nil), // 15: livekit.ListAgentVersionsResponse + (*UpdateAgentRequest)(nil), // 16: livekit.UpdateAgentRequest + (*UpdateAgentResponse)(nil), // 17: livekit.UpdateAgentResponse + (*RestartAgentRequest)(nil), // 18: livekit.RestartAgentRequest + (*RestartAgentResponse)(nil), // 19: livekit.RestartAgentResponse + (*DeployAgentRequest)(nil), // 20: livekit.DeployAgentRequest + (*DeployAgentResponse)(nil), // 21: livekit.DeployAgentResponse + (*UpdateAgentSecretsRequest)(nil), // 22: livekit.UpdateAgentSecretsRequest + (*UpdateAgentSecretsResponse)(nil), // 23: livekit.UpdateAgentSecretsResponse + (*RollbackAgentRequest)(nil), // 24: livekit.RollbackAgentRequest + (*RollbackAgentResponse)(nil), // 25: livekit.RollbackAgentResponse + (*DeleteAgentRequest)(nil), // 26: livekit.DeleteAgentRequest + (*DeleteAgentResponse)(nil), // 27: livekit.DeleteAgentResponse + (*ListAgentSecretsRequest)(nil), // 28: livekit.ListAgentSecretsRequest + (*ListAgentSecretsResponse)(nil), // 29: livekit.ListAgentSecretsResponse + (*SettingsParam)(nil), // 30: livekit.SettingsParam + (*ClientSettingsResponse)(nil), // 31: livekit.ClientSettingsResponse + (*ClientSettingsRequest)(nil), // 32: livekit.ClientSettingsRequest + (*PrivateLink)(nil), // 33: livekit.PrivateLink + (*PrivateLinkProvisioningStatus)(nil), // 34: livekit.PrivateLinkProvisioningStatus + (*PrivateLinkHealthStatus)(nil), // 35: livekit.PrivateLinkHealthStatus + (*CreatePrivateLinkRequest)(nil), // 36: livekit.CreatePrivateLinkRequest + (*CreatePrivateLinkResponse)(nil), // 37: livekit.CreatePrivateLinkResponse + (*DestroyPrivateLinkRequest)(nil), // 38: livekit.DestroyPrivateLinkRequest + (*DestroyPrivateLinkResponse)(nil), // 39: livekit.DestroyPrivateLinkResponse + (*ListPrivateLinksRequest)(nil), // 40: livekit.ListPrivateLinksRequest + (*ListPrivateLinksResponse)(nil), // 41: livekit.ListPrivateLinksResponse + (*GetPrivateLinkProvisioningStatusRequest)(nil), // 42: livekit.GetPrivateLinkProvisioningStatusRequest + (*GetPrivateLinkProvisioningStatusResponse)(nil), // 43: livekit.GetPrivateLinkProvisioningStatusResponse + (*GetPrivateLinkHealthStatusRequest)(nil), // 44: livekit.GetPrivateLinkHealthStatusRequest + (*GetPrivateLinkHealthStatusResponse)(nil), // 45: livekit.GetPrivateLinkHealthStatusResponse + nil, // 46: livekit.PresignedPostRequest.ValuesEntry + nil, // 47: livekit.AgentVersion.AttributesEntry + (*PrivateLink_AWSConfig)(nil), // 48: livekit.PrivateLink.AWSConfig + (*CreatePrivateLinkRequest_AWSCreateConfig)(nil), // 49: livekit.CreatePrivateLinkRequest.AWSCreateConfig + (*timestamppb.Timestamp)(nil), // 50: google.protobuf.Timestamp } var file_livekit_cloud_agent_proto_depIdxs = []int32{ 1, // 0: livekit.AgentEvent.type:type_name -> livekit.AgentEventType - 51, // 1: livekit.AgentEvent.timestamp:type_name -> google.protobuf.Timestamp - 51, // 2: livekit.AgentSecret.created_at:type_name -> google.protobuf.Timestamp - 51, // 3: livekit.AgentSecret.updated_at:type_name -> google.protobuf.Timestamp + 50, // 1: livekit.AgentEvent.timestamp:type_name -> google.protobuf.Timestamp + 50, // 2: livekit.AgentSecret.created_at:type_name -> google.protobuf.Timestamp + 50, // 3: livekit.AgentSecret.updated_at:type_name -> google.protobuf.Timestamp 0, // 4: livekit.AgentSecret.kind:type_name -> livekit.AgentSecretKind - 7, // 5: livekit.CreateAgentRequest.secrets:type_name -> livekit.AgentSecret - 10, // 6: livekit.CreateAgentResponse.presigned_post_request:type_name -> livekit.PresignedPostRequest - 47, // 7: livekit.PresignedPostRequest.values:type_name -> livekit.PresignedPostRequest.ValuesEntry - 6, // 8: livekit.AgentDeployment.events:type_name -> livekit.AgentEvent - 11, // 9: livekit.AgentInfo.agent_deployments:type_name -> livekit.AgentDeployment - 7, // 10: livekit.AgentInfo.secrets:type_name -> livekit.AgentSecret - 51, // 11: livekit.AgentInfo.deployed_at:type_name -> google.protobuf.Timestamp - 12, // 12: livekit.ListAgentsResponse.agents:type_name -> livekit.AgentInfo - 51, // 13: livekit.AgentVersion.created_at:type_name -> google.protobuf.Timestamp - 51, // 14: livekit.AgentVersion.deployed_at:type_name -> google.protobuf.Timestamp - 48, // 15: livekit.AgentVersion.attributes:type_name -> livekit.AgentVersion.AttributesEntry - 15, // 16: livekit.ListAgentVersionsResponse.versions:type_name -> livekit.AgentVersion - 7, // 17: livekit.UpdateAgentRequest.secrets:type_name -> livekit.AgentSecret - 7, // 18: livekit.DeployAgentRequest.secrets:type_name -> livekit.AgentSecret - 10, // 19: livekit.DeployAgentResponse.presigned_post_request:type_name -> livekit.PresignedPostRequest - 7, // 20: livekit.UpdateAgentSecretsRequest.secrets:type_name -> livekit.AgentSecret - 7, // 21: livekit.ListAgentSecretsResponse.secrets:type_name -> livekit.AgentSecret - 32, // 22: livekit.ClientSettingsResponse.params:type_name -> livekit.SettingsParam - 49, // 23: livekit.PrivateLink.aws:type_name -> livekit.PrivateLink.AWSConfig + 5, // 5: livekit.CreateAgentRequest.secrets:type_name -> livekit.AgentSecret + 8, // 6: livekit.CreateAgentResponse.presigned_post_request:type_name -> livekit.PresignedPostRequest + 46, // 7: livekit.PresignedPostRequest.values:type_name -> livekit.PresignedPostRequest.ValuesEntry + 4, // 8: livekit.AgentDeployment.events:type_name -> livekit.AgentEvent + 9, // 9: livekit.AgentInfo.agent_deployments:type_name -> livekit.AgentDeployment + 5, // 10: livekit.AgentInfo.secrets:type_name -> livekit.AgentSecret + 50, // 11: livekit.AgentInfo.deployed_at:type_name -> google.protobuf.Timestamp + 10, // 12: livekit.ListAgentsResponse.agents:type_name -> livekit.AgentInfo + 50, // 13: livekit.AgentVersion.created_at:type_name -> google.protobuf.Timestamp + 50, // 14: livekit.AgentVersion.deployed_at:type_name -> google.protobuf.Timestamp + 47, // 15: livekit.AgentVersion.attributes:type_name -> livekit.AgentVersion.AttributesEntry + 13, // 16: livekit.ListAgentVersionsResponse.versions:type_name -> livekit.AgentVersion + 5, // 17: livekit.UpdateAgentRequest.secrets:type_name -> livekit.AgentSecret + 5, // 18: livekit.DeployAgentRequest.secrets:type_name -> livekit.AgentSecret + 8, // 19: livekit.DeployAgentResponse.presigned_post_request:type_name -> livekit.PresignedPostRequest + 5, // 20: livekit.UpdateAgentSecretsRequest.secrets:type_name -> livekit.AgentSecret + 5, // 21: livekit.ListAgentSecretsResponse.secrets:type_name -> livekit.AgentSecret + 30, // 22: livekit.ClientSettingsResponse.params:type_name -> livekit.SettingsParam + 48, // 23: livekit.PrivateLink.aws:type_name -> livekit.PrivateLink.AWSConfig 2, // 24: livekit.PrivateLinkProvisioningStatus.status:type_name -> livekit.PrivateLinkProvisioningStatus.Status 3, // 25: livekit.PrivateLinkHealthStatus.status:type_name -> livekit.PrivateLinkHealthStatus.Status - 51, // 26: livekit.PrivateLinkHealthStatus.updated_at:type_name -> google.protobuf.Timestamp - 51, // 27: livekit.PrivateLinkAttachment.created_at:type_name -> google.protobuf.Timestamp - 4, // 28: livekit.PrivateLinkAttachmentProvisioningStatus.status:type_name -> livekit.PrivateLinkAttachmentProvisioningStatus.Status - 5, // 29: livekit.PrivateLinkAttachementHealthStatus.status:type_name -> livekit.PrivateLinkAttachementHealthStatus.Status - 51, // 30: livekit.PrivateLinkAttachementHealthStatus.updated_at:type_name -> google.protobuf.Timestamp - 50, // 31: livekit.CreatePrivateLinkRequest.aws:type_name -> livekit.CreatePrivateLinkRequest.AWSCreateConfig - 35, // 32: livekit.CreatePrivateLinkResponse.private_link:type_name -> livekit.PrivateLink - 36, // 33: livekit.GetPrivateLinkProvisioningStatusResponse.value:type_name -> livekit.PrivateLinkProvisioningStatus - 37, // 34: livekit.GetPrivateLinkHealthStatusResponse.value:type_name -> livekit.PrivateLinkHealthStatus - 8, // 35: livekit.CloudAgent.CreateAgent:input_type -> livekit.CreateAgentRequest - 13, // 36: livekit.CloudAgent.ListAgents:input_type -> livekit.ListAgentsRequest - 16, // 37: livekit.CloudAgent.ListAgentVersions:input_type -> livekit.ListAgentVersionsRequest - 30, // 38: livekit.CloudAgent.ListAgentSecrets:input_type -> livekit.ListAgentSecretsRequest - 18, // 39: livekit.CloudAgent.UpdateAgent:input_type -> livekit.UpdateAgentRequest - 20, // 40: livekit.CloudAgent.RestartAgent:input_type -> livekit.RestartAgentRequest - 22, // 41: livekit.CloudAgent.DeployAgent:input_type -> livekit.DeployAgentRequest - 24, // 42: livekit.CloudAgent.UpdateAgentSecrets:input_type -> livekit.UpdateAgentSecretsRequest - 26, // 43: livekit.CloudAgent.RollbackAgent:input_type -> livekit.RollbackAgentRequest - 28, // 44: livekit.CloudAgent.DeleteAgent:input_type -> livekit.DeleteAgentRequest - 34, // 45: livekit.CloudAgent.GetClientSettings:input_type -> livekit.ClientSettingsRequest - 41, // 46: livekit.CloudAgent.CreatePrivateLink:input_type -> livekit.CreatePrivateLinkRequest - 43, // 47: livekit.CloudAgent.GetPrivateLinkProvisioningStatus:input_type -> livekit.GetPrivateLinkProvisioningStatusRequest - 45, // 48: livekit.CloudAgent.GetPrivateLinkHealthStatus:input_type -> livekit.GetPrivateLinkHealthStatusRequest - 9, // 49: livekit.CloudAgent.CreateAgent:output_type -> livekit.CreateAgentResponse - 14, // 50: livekit.CloudAgent.ListAgents:output_type -> livekit.ListAgentsResponse - 17, // 51: livekit.CloudAgent.ListAgentVersions:output_type -> livekit.ListAgentVersionsResponse - 31, // 52: livekit.CloudAgent.ListAgentSecrets:output_type -> livekit.ListAgentSecretsResponse - 19, // 53: livekit.CloudAgent.UpdateAgent:output_type -> livekit.UpdateAgentResponse - 21, // 54: livekit.CloudAgent.RestartAgent:output_type -> livekit.RestartAgentResponse - 23, // 55: livekit.CloudAgent.DeployAgent:output_type -> livekit.DeployAgentResponse - 25, // 56: livekit.CloudAgent.UpdateAgentSecrets:output_type -> livekit.UpdateAgentSecretsResponse - 27, // 57: livekit.CloudAgent.RollbackAgent:output_type -> livekit.RollbackAgentResponse - 29, // 58: livekit.CloudAgent.DeleteAgent:output_type -> livekit.DeleteAgentResponse - 33, // 59: livekit.CloudAgent.GetClientSettings:output_type -> livekit.ClientSettingsResponse - 42, // 60: livekit.CloudAgent.CreatePrivateLink:output_type -> livekit.CreatePrivateLinkResponse - 44, // 61: livekit.CloudAgent.GetPrivateLinkProvisioningStatus:output_type -> livekit.GetPrivateLinkProvisioningStatusResponse - 46, // 62: livekit.CloudAgent.GetPrivateLinkHealthStatus:output_type -> livekit.GetPrivateLinkHealthStatusResponse - 49, // [49:63] is the sub-list for method output_type - 35, // [35:49] is the sub-list for method input_type - 35, // [35:35] is the sub-list for extension type_name - 35, // [35:35] is the sub-list for extension extendee - 0, // [0:35] is the sub-list for field type_name + 50, // 26: livekit.PrivateLinkHealthStatus.updated_at:type_name -> google.protobuf.Timestamp + 49, // 27: livekit.CreatePrivateLinkRequest.aws:type_name -> livekit.CreatePrivateLinkRequest.AWSCreateConfig + 33, // 28: livekit.CreatePrivateLinkResponse.private_link:type_name -> livekit.PrivateLink + 33, // 29: livekit.ListPrivateLinksResponse.items:type_name -> livekit.PrivateLink + 34, // 30: livekit.GetPrivateLinkProvisioningStatusResponse.value:type_name -> livekit.PrivateLinkProvisioningStatus + 35, // 31: livekit.GetPrivateLinkHealthStatusResponse.value:type_name -> livekit.PrivateLinkHealthStatus + 6, // 32: livekit.CloudAgent.CreateAgent:input_type -> livekit.CreateAgentRequest + 11, // 33: livekit.CloudAgent.ListAgents:input_type -> livekit.ListAgentsRequest + 14, // 34: livekit.CloudAgent.ListAgentVersions:input_type -> livekit.ListAgentVersionsRequest + 28, // 35: livekit.CloudAgent.ListAgentSecrets:input_type -> livekit.ListAgentSecretsRequest + 16, // 36: livekit.CloudAgent.UpdateAgent:input_type -> livekit.UpdateAgentRequest + 18, // 37: livekit.CloudAgent.RestartAgent:input_type -> livekit.RestartAgentRequest + 20, // 38: livekit.CloudAgent.DeployAgent:input_type -> livekit.DeployAgentRequest + 22, // 39: livekit.CloudAgent.UpdateAgentSecrets:input_type -> livekit.UpdateAgentSecretsRequest + 24, // 40: livekit.CloudAgent.RollbackAgent:input_type -> livekit.RollbackAgentRequest + 26, // 41: livekit.CloudAgent.DeleteAgent:input_type -> livekit.DeleteAgentRequest + 32, // 42: livekit.CloudAgent.GetClientSettings:input_type -> livekit.ClientSettingsRequest + 36, // 43: livekit.CloudAgent.CreatePrivateLink:input_type -> livekit.CreatePrivateLinkRequest + 38, // 44: livekit.CloudAgent.DestroyPrivateLink:input_type -> livekit.DestroyPrivateLinkRequest + 40, // 45: livekit.CloudAgent.ListPrivateLinks:input_type -> livekit.ListPrivateLinksRequest + 42, // 46: livekit.CloudAgent.GetPrivateLinkProvisioningStatus:input_type -> livekit.GetPrivateLinkProvisioningStatusRequest + 44, // 47: livekit.CloudAgent.GetPrivateLinkHealthStatus:input_type -> livekit.GetPrivateLinkHealthStatusRequest + 7, // 48: livekit.CloudAgent.CreateAgent:output_type -> livekit.CreateAgentResponse + 12, // 49: livekit.CloudAgent.ListAgents:output_type -> livekit.ListAgentsResponse + 15, // 50: livekit.CloudAgent.ListAgentVersions:output_type -> livekit.ListAgentVersionsResponse + 29, // 51: livekit.CloudAgent.ListAgentSecrets:output_type -> livekit.ListAgentSecretsResponse + 17, // 52: livekit.CloudAgent.UpdateAgent:output_type -> livekit.UpdateAgentResponse + 19, // 53: livekit.CloudAgent.RestartAgent:output_type -> livekit.RestartAgentResponse + 21, // 54: livekit.CloudAgent.DeployAgent:output_type -> livekit.DeployAgentResponse + 23, // 55: livekit.CloudAgent.UpdateAgentSecrets:output_type -> livekit.UpdateAgentSecretsResponse + 25, // 56: livekit.CloudAgent.RollbackAgent:output_type -> livekit.RollbackAgentResponse + 27, // 57: livekit.CloudAgent.DeleteAgent:output_type -> livekit.DeleteAgentResponse + 31, // 58: livekit.CloudAgent.GetClientSettings:output_type -> livekit.ClientSettingsResponse + 37, // 59: livekit.CloudAgent.CreatePrivateLink:output_type -> livekit.CreatePrivateLinkResponse + 39, // 60: livekit.CloudAgent.DestroyPrivateLink:output_type -> livekit.DestroyPrivateLinkResponse + 41, // 61: livekit.CloudAgent.ListPrivateLinks:output_type -> livekit.ListPrivateLinksResponse + 43, // 62: livekit.CloudAgent.GetPrivateLinkProvisioningStatus:output_type -> livekit.GetPrivateLinkProvisioningStatusResponse + 45, // 63: livekit.CloudAgent.GetPrivateLinkHealthStatus:output_type -> livekit.GetPrivateLinkHealthStatusResponse + 48, // [48:64] is the sub-list for method output_type + 32, // [32:48] is the sub-list for method input_type + 32, // [32:32] is the sub-list for extension type_name + 32, // [32:32] is the sub-list for extension extendee + 0, // [0:32] is the sub-list for field type_name } func init() { file_livekit_cloud_agent_proto_init() } @@ -3388,8 +3252,7 @@ func file_livekit_cloud_agent_proto_init() { (*PrivateLink_Aws)(nil), } file_livekit_cloud_agent_proto_msgTypes[30].OneofWrappers = []any{} - file_livekit_cloud_agent_proto_msgTypes[33].OneofWrappers = []any{} - file_livekit_cloud_agent_proto_msgTypes[35].OneofWrappers = []any{ + file_livekit_cloud_agent_proto_msgTypes[32].OneofWrappers = []any{ (*CreatePrivateLinkRequest_Aws)(nil), } type x struct{} @@ -3397,8 +3260,8 @@ func file_livekit_cloud_agent_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_livekit_cloud_agent_proto_rawDesc), len(file_livekit_cloud_agent_proto_rawDesc)), - NumEnums: 6, - NumMessages: 45, + NumEnums: 4, + NumMessages: 46, NumExtensions: 0, NumServices: 1, }, diff --git a/livekit/livekit_cloud_agent.twirp.go b/livekit/livekit_cloud_agent.twirp.go index f33f1def1..e3be0fed2 100644 --- a/livekit/livekit_cloud_agent.twirp.go +++ b/livekit/livekit_cloud_agent.twirp.go @@ -51,6 +51,10 @@ type CloudAgent interface { CreatePrivateLink(context.Context, *CreatePrivateLinkRequest) (*CreatePrivateLinkResponse, error) + DestroyPrivateLink(context.Context, *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) + + ListPrivateLinks(context.Context, *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) + GetPrivateLinkProvisioningStatus(context.Context, *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) GetPrivateLinkHealthStatus(context.Context, *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) @@ -62,7 +66,7 @@ type CloudAgent interface { type cloudAgentProtobufClient struct { client HTTPClient - urls [14]string + urls [16]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -90,7 +94,7 @@ func NewCloudAgentProtobufClient(baseURL string, client HTTPClient, opts ...twir // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "CloudAgent") - urls := [14]string{ + urls := [16]string{ serviceURL + "CreateAgent", serviceURL + "ListAgents", serviceURL + "ListAgentVersions", @@ -103,6 +107,8 @@ func NewCloudAgentProtobufClient(baseURL string, client HTTPClient, opts ...twir serviceURL + "DeleteAgent", serviceURL + "GetClientSettings", serviceURL + "CreatePrivateLink", + serviceURL + "DestroyPrivateLink", + serviceURL + "ListPrivateLinks", serviceURL + "GetPrivateLinkProvisioningStatus", serviceURL + "GetPrivateLinkHealthStatus", } @@ -667,6 +673,98 @@ func (c *cloudAgentProtobufClient) callCreatePrivateLink(ctx context.Context, in return out, nil } +func (c *cloudAgentProtobufClient) DestroyPrivateLink(ctx context.Context, in *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "DestroyPrivateLink") + caller := c.callDestroyPrivateLink + if c.interceptor != nil { + caller = func(ctx context.Context, req *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*DestroyPrivateLinkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*DestroyPrivateLinkRequest) when calling interceptor") + } + return c.callDestroyPrivateLink(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*DestroyPrivateLinkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*DestroyPrivateLinkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentProtobufClient) callDestroyPrivateLink(ctx context.Context, in *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) { + out := new(DestroyPrivateLinkResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *cloudAgentProtobufClient) ListPrivateLinks(ctx context.Context, in *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "ListPrivateLinks") + caller := c.callListPrivateLinks + if c.interceptor != nil { + caller = func(ctx context.Context, req *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ListPrivateLinksRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ListPrivateLinksRequest) when calling interceptor") + } + return c.callListPrivateLinks(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ListPrivateLinksResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ListPrivateLinksResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentProtobufClient) callListPrivateLinks(ctx context.Context, in *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) { + out := new(ListPrivateLinksResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[13], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + func (c *cloudAgentProtobufClient) GetPrivateLinkProvisioningStatus(ctx context.Context, in *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { ctx = ctxsetters.WithPackageName(ctx, "livekit") ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") @@ -698,7 +796,7 @@ func (c *cloudAgentProtobufClient) GetPrivateLinkProvisioningStatus(ctx context. func (c *cloudAgentProtobufClient) callGetPrivateLinkProvisioningStatus(ctx context.Context, in *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { out := new(GetPrivateLinkProvisioningStatusResponse) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[14], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -744,7 +842,7 @@ func (c *cloudAgentProtobufClient) GetPrivateLinkHealthStatus(ctx context.Contex func (c *cloudAgentProtobufClient) callGetPrivateLinkHealthStatus(ctx context.Context, in *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { out := new(GetPrivateLinkHealthStatusResponse) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[13], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[15], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -765,7 +863,7 @@ func (c *cloudAgentProtobufClient) callGetPrivateLinkHealthStatus(ctx context.Co type cloudAgentJSONClient struct { client HTTPClient - urls [14]string + urls [16]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -793,7 +891,7 @@ func NewCloudAgentJSONClient(baseURL string, client HTTPClient, opts ...twirp.Cl // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "CloudAgent") - urls := [14]string{ + urls := [16]string{ serviceURL + "CreateAgent", serviceURL + "ListAgents", serviceURL + "ListAgentVersions", @@ -806,6 +904,8 @@ func NewCloudAgentJSONClient(baseURL string, client HTTPClient, opts ...twirp.Cl serviceURL + "DeleteAgent", serviceURL + "GetClientSettings", serviceURL + "CreatePrivateLink", + serviceURL + "DestroyPrivateLink", + serviceURL + "ListPrivateLinks", serviceURL + "GetPrivateLinkProvisioningStatus", serviceURL + "GetPrivateLinkHealthStatus", } @@ -1370,6 +1470,98 @@ func (c *cloudAgentJSONClient) callCreatePrivateLink(ctx context.Context, in *Cr return out, nil } +func (c *cloudAgentJSONClient) DestroyPrivateLink(ctx context.Context, in *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "DestroyPrivateLink") + caller := c.callDestroyPrivateLink + if c.interceptor != nil { + caller = func(ctx context.Context, req *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*DestroyPrivateLinkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*DestroyPrivateLinkRequest) when calling interceptor") + } + return c.callDestroyPrivateLink(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*DestroyPrivateLinkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*DestroyPrivateLinkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentJSONClient) callDestroyPrivateLink(ctx context.Context, in *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) { + out := new(DestroyPrivateLinkResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *cloudAgentJSONClient) ListPrivateLinks(ctx context.Context, in *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") + ctx = ctxsetters.WithMethodName(ctx, "ListPrivateLinks") + caller := c.callListPrivateLinks + if c.interceptor != nil { + caller = func(ctx context.Context, req *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ListPrivateLinksRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ListPrivateLinksRequest) when calling interceptor") + } + return c.callListPrivateLinks(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ListPrivateLinksResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ListPrivateLinksResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *cloudAgentJSONClient) callListPrivateLinks(ctx context.Context, in *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) { + out := new(ListPrivateLinksResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[13], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + func (c *cloudAgentJSONClient) GetPrivateLinkProvisioningStatus(ctx context.Context, in *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { ctx = ctxsetters.WithPackageName(ctx, "livekit") ctx = ctxsetters.WithServiceName(ctx, "CloudAgent") @@ -1401,7 +1593,7 @@ func (c *cloudAgentJSONClient) GetPrivateLinkProvisioningStatus(ctx context.Cont func (c *cloudAgentJSONClient) callGetPrivateLinkProvisioningStatus(ctx context.Context, in *GetPrivateLinkProvisioningStatusRequest) (*GetPrivateLinkProvisioningStatusResponse, error) { out := new(GetPrivateLinkProvisioningStatusResponse) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[14], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -1447,7 +1639,7 @@ func (c *cloudAgentJSONClient) GetPrivateLinkHealthStatus(ctx context.Context, i func (c *cloudAgentJSONClient) callGetPrivateLinkHealthStatus(ctx context.Context, in *GetPrivateLinkHealthStatusRequest) (*GetPrivateLinkHealthStatusResponse, error) { out := new(GetPrivateLinkHealthStatusResponse) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[13], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[15], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -1595,6 +1787,12 @@ func (s *cloudAgentServer) ServeHTTP(resp http.ResponseWriter, req *http.Request case "CreatePrivateLink": s.serveCreatePrivateLink(ctx, resp, req) return + case "DestroyPrivateLink": + s.serveDestroyPrivateLink(ctx, resp, req) + return + case "ListPrivateLinks": + s.serveListPrivateLinks(ctx, resp, req) + return case "GetPrivateLinkProvisioningStatus": s.serveGetPrivateLinkProvisioningStatus(ctx, resp, req) return @@ -3768,6 +3966,366 @@ func (s *cloudAgentServer) serveCreatePrivateLinkProtobuf(ctx context.Context, r callResponseSent(ctx, s.hooks) } +func (s *cloudAgentServer) serveDestroyPrivateLink(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveDestroyPrivateLinkJSON(ctx, resp, req) + case "application/protobuf": + s.serveDestroyPrivateLinkProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *cloudAgentServer) serveDestroyPrivateLinkJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "DestroyPrivateLink") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(DestroyPrivateLinkRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.CloudAgent.DestroyPrivateLink + if s.interceptor != nil { + handler = func(ctx context.Context, req *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*DestroyPrivateLinkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*DestroyPrivateLinkRequest) when calling interceptor") + } + return s.CloudAgent.DestroyPrivateLink(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*DestroyPrivateLinkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*DestroyPrivateLinkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *DestroyPrivateLinkResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *DestroyPrivateLinkResponse and nil error while calling DestroyPrivateLink. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *cloudAgentServer) serveDestroyPrivateLinkProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "DestroyPrivateLink") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(DestroyPrivateLinkRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.CloudAgent.DestroyPrivateLink + if s.interceptor != nil { + handler = func(ctx context.Context, req *DestroyPrivateLinkRequest) (*DestroyPrivateLinkResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*DestroyPrivateLinkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*DestroyPrivateLinkRequest) when calling interceptor") + } + return s.CloudAgent.DestroyPrivateLink(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*DestroyPrivateLinkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*DestroyPrivateLinkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *DestroyPrivateLinkResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *DestroyPrivateLinkResponse and nil error while calling DestroyPrivateLink. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *cloudAgentServer) serveListPrivateLinks(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveListPrivateLinksJSON(ctx, resp, req) + case "application/protobuf": + s.serveListPrivateLinksProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *cloudAgentServer) serveListPrivateLinksJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "ListPrivateLinks") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(ListPrivateLinksRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.CloudAgent.ListPrivateLinks + if s.interceptor != nil { + handler = func(ctx context.Context, req *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ListPrivateLinksRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ListPrivateLinksRequest) when calling interceptor") + } + return s.CloudAgent.ListPrivateLinks(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ListPrivateLinksResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ListPrivateLinksResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *ListPrivateLinksResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *ListPrivateLinksResponse and nil error while calling ListPrivateLinks. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *cloudAgentServer) serveListPrivateLinksProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "ListPrivateLinks") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(ListPrivateLinksRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.CloudAgent.ListPrivateLinks + if s.interceptor != nil { + handler = func(ctx context.Context, req *ListPrivateLinksRequest) (*ListPrivateLinksResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ListPrivateLinksRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ListPrivateLinksRequest) when calling interceptor") + } + return s.CloudAgent.ListPrivateLinks(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ListPrivateLinksResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ListPrivateLinksResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *ListPrivateLinksResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *ListPrivateLinksResponse and nil error while calling ListPrivateLinks. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + func (s *cloudAgentServer) serveGetPrivateLinkProvisioningStatus(ctx context.Context, resp http.ResponseWriter, req *http.Request) { header := req.Header.Get("Content-Type") i := strings.Index(header, ";") @@ -4144,149 +4702,145 @@ func (s *cloudAgentServer) PathPrefix() string { } var twirpFileDescriptor5 = []byte{ - // 2304 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xbf, 0x73, 0xdb, 0xc8, - 0xf5, 0x17, 0xc0, 0x1f, 0x12, 0x1f, 0x25, 0x9b, 0x5e, 0xcb, 0x12, 0x04, 0x5b, 0xb6, 0x04, 0x9f, - 0x6d, 0x9d, 0x7c, 0xa6, 0x6d, 0xdd, 0xcc, 0xf7, 0xce, 0xbe, 0x6f, 0x26, 0x81, 0x25, 0x58, 0xa4, - 0x45, 0xd1, 0x0c, 0x48, 0xeb, 0xc6, 0x99, 0x9b, 0xc1, 0x40, 0xe4, 0x9a, 0x46, 0x44, 0xfc, 0x30, - 0x00, 0xd2, 0xa7, 0x2e, 0x65, 0xae, 0x49, 0x93, 0x3f, 0x21, 0x33, 0x29, 0x52, 0xdc, 0x5c, 0x91, - 0x2a, 0xf7, 0x2f, 0xa4, 0x49, 0xca, 0xa4, 0x4e, 0x8a, 0x14, 0x99, 0xf4, 0x69, 0x32, 0xd8, 0x05, - 0xc0, 0x05, 0x09, 0x8a, 0x94, 0x75, 0x33, 0x29, 0xd2, 0xd8, 0xdc, 0x7d, 0x9f, 0x7d, 0xbf, 0xdf, - 0xee, 0xdb, 0x85, 0x60, 0xad, 0x67, 0x0c, 0xf0, 0x89, 0xe1, 0x6b, 0xed, 0x9e, 0xdd, 0xef, 0x68, - 0x7a, 0x17, 0x5b, 0x7e, 0xd9, 0x71, 0x6d, 0xdf, 0x46, 0xf3, 0x21, 0x49, 0xbc, 0xd5, 0xb5, 0xed, - 0x6e, 0x0f, 0x3f, 0x24, 0xd3, 0xc7, 0xfd, 0x37, 0x0f, 0x7d, 0xc3, 0xc4, 0x9e, 0xaf, 0x9b, 0x0e, - 0x45, 0x4a, 0xdf, 0x70, 0x00, 0x72, 0xb0, 0x52, 0x19, 0x60, 0xcb, 0x47, 0xf7, 0x21, 0xeb, 0x9f, - 0x3a, 0x58, 0xe0, 0x36, 0xb8, 0xad, 0x4b, 0x3b, 0xab, 0xe5, 0x90, 0x4f, 0x79, 0x08, 0x69, 0x9d, - 0x3a, 0x58, 0x25, 0x20, 0xb4, 0x0c, 0xb9, 0xb6, 0xdd, 0xb7, 0x7c, 0x81, 0xdf, 0xe0, 0xb6, 0x72, - 0x2a, 0x1d, 0xa0, 0xcf, 0xa1, 0x10, 0x0b, 0x11, 0x32, 0x1b, 0xdc, 0x56, 0x71, 0x47, 0x2c, 0x53, - 0x35, 0xca, 0x91, 0x1a, 0xe5, 0x56, 0x84, 0x50, 0x87, 0x60, 0xe9, 0xaf, 0x1c, 0x14, 0x89, 0xa0, - 0x26, 0x6e, 0xbb, 0xd8, 0x47, 0x08, 0xb2, 0x96, 0x6e, 0x52, 0x65, 0x0a, 0x2a, 0xf9, 0x1d, 0xc8, - 0x1c, 0xe8, 0xbd, 0x3e, 0x26, 0x32, 0x17, 0x55, 0x3a, 0x40, 0x4f, 0x00, 0xda, 0x2e, 0xd6, 0x7d, - 0xdc, 0xd1, 0x74, 0x7f, 0x16, 0xa1, 0x21, 0x5a, 0xf6, 0x83, 0xa5, 0x7d, 0xa7, 0x13, 0x2d, 0xcd, - 0x4e, 0x5f, 0x1a, 0xa2, 0x65, 0x1f, 0x7d, 0x02, 0xd9, 0x13, 0xc3, 0xea, 0x08, 0x39, 0xe2, 0x2c, - 0x21, 0xe9, 0x2c, 0x6a, 0xc3, 0x81, 0x61, 0x75, 0x54, 0x82, 0x92, 0xfe, 0xc6, 0x01, 0xda, 0x25, - 0x62, 0x09, 0x5d, 0xc5, 0xef, 0xfa, 0xd8, 0xf3, 0xd1, 0x26, 0x00, 0x89, 0x9c, 0x36, 0x34, 0xf5, - 0x19, 0x2f, 0x70, 0x6a, 0x81, 0xcc, 0xd6, 0x03, 0x9b, 0xcb, 0x30, 0xef, 0x11, 0x6e, 0x9e, 0xc0, - 0x6f, 0x64, 0xb6, 0x8a, 0x3b, 0xcb, 0x69, 0xa2, 0xd4, 0x08, 0x84, 0x6e, 0xc2, 0x82, 0x8b, 0x9d, - 0x9e, 0xd1, 0xd6, 0x3d, 0xe2, 0x8b, 0x1c, 0x61, 0x18, 0xcf, 0xa1, 0x3b, 0xb0, 0x68, 0xea, 0x5f, - 0x6b, 0x31, 0x26, 0x1b, 0x63, 0x8a, 0xa6, 0xfe, 0xb5, 0x1a, 0xc1, 0xae, 0xc3, 0x7c, 0xdb, 0xe9, - 0x6b, 0x2e, 0x7e, 0x47, 0x2c, 0xa4, 0x6a, 0xe5, 0xdb, 0x4e, 0x5f, 0xc5, 0xef, 0x90, 0x00, 0xf3, - 0x2e, 0xee, 0x1a, 0xb6, 0xe5, 0x09, 0xf9, 0x8d, 0xcc, 0x56, 0x41, 0x8d, 0x86, 0xd2, 0xef, 0x79, - 0xb8, 0x9a, 0xb0, 0xd3, 0x73, 0x6c, 0xcb, 0xc3, 0x68, 0x0d, 0x16, 0xa8, 0xa1, 0x46, 0x27, 0x8c, - 0xe8, 0x3c, 0x19, 0x57, 0x3b, 0x68, 0x3d, 0xe1, 0x03, 0x9e, 0x10, 0x19, 0xfb, 0x57, 0x20, 0xef, - 0xf9, 0xba, 0xdf, 0xa7, 0xd6, 0x14, 0xd4, 0x70, 0x14, 0xe8, 0x30, 0xc0, 0xae, 0x67, 0xd8, 0x16, - 0x31, 0xa1, 0xa0, 0x46, 0x43, 0x74, 0x1b, 0x96, 0x1c, 0x17, 0x7b, 0x46, 0xd7, 0xc2, 0x1d, 0xad, - 0xef, 0xf6, 0xa8, 0x01, 0xea, 0x62, 0x3c, 0xf9, 0xca, 0xed, 0xa1, 0x12, 0x64, 0x7c, 0xbd, 0x2b, - 0xe4, 0x09, 0x29, 0xf8, 0x89, 0xee, 0xc0, 0x25, 0x0f, 0xbb, 0x03, 0xec, 0x6a, 0x91, 0x6d, 0xf3, - 0xc4, 0xb6, 0x25, 0x3a, 0xab, 0xd2, 0x49, 0xd4, 0x84, 0x95, 0x21, 0x77, 0xc7, 0xf6, 0xfc, 0xc0, - 0x47, 0x41, 0x30, 0x85, 0x05, 0x92, 0x3e, 0xeb, 0x71, 0x78, 0x1a, 0x11, 0xac, 0x61, 0x7b, 0x51, - 0xc4, 0xd5, 0x65, 0x27, 0x65, 0x56, 0xfa, 0x2d, 0x07, 0xcb, 0x69, 0xf0, 0x40, 0xcd, 0xc0, 0x02, - 0xea, 0xb2, 0xe0, 0x27, 0x92, 0x21, 0x4f, 0xd2, 0x3e, 0x4a, 0x87, 0x8f, 0xcf, 0x94, 0x57, 0x3e, - 0x22, 0x58, 0xc5, 0xf2, 0xdd, 0x53, 0x35, 0x5c, 0x28, 0x3e, 0x81, 0x22, 0x33, 0x1d, 0xc8, 0x38, - 0xc1, 0xa7, 0x91, 0x8c, 0x13, 0x7c, 0x9a, 0xac, 0xb3, 0x42, 0x58, 0x67, 0x4f, 0xf9, 0xcf, 0x39, - 0xe9, 0xdb, 0x0c, 0x5c, 0x26, 0x91, 0xdd, 0xc3, 0x4e, 0xcf, 0x3e, 0x35, 0x83, 0x6d, 0x63, 0x05, - 0xf2, 0xd4, 0x63, 0x21, 0x8b, 0x70, 0x94, 0x88, 0x39, 0x9f, 0x8c, 0xf9, 0xa4, 0xa0, 0x8a, 0x4c, - 0xf2, 0x92, 0xc4, 0x64, 0x12, 0x77, 0x13, 0x16, 0x4d, 0xc3, 0x1a, 0x26, 0x6e, 0x8e, 0xd0, 0x8b, - 0xa6, 0x61, 0xa9, 0x2c, 0x84, 0xcd, 0xed, 0x7c, 0x08, 0x61, 0xf2, 0x7a, 0x75, 0x98, 0xd7, 0xf3, - 0x54, 0x74, 0x98, 0xd3, 0x01, 0xa1, 0xef, 0x6a, 0x6d, 0xa7, 0x4f, 0x02, 0x19, 0x10, 0xfa, 0xee, - 0xae, 0xd3, 0x8f, 0x08, 0x26, 0x36, 0x85, 0x42, 0x4c, 0x38, 0xc4, 0x66, 0x40, 0x30, 0xb1, 0x49, - 0x58, 0x01, 0x25, 0x98, 0xd8, 0x0c, 0x58, 0x5d, 0x87, 0x42, 0x40, 0xe8, 0x19, 0xa6, 0xe1, 0x0b, - 0x45, 0x42, 0x5a, 0x30, 0xb1, 0x59, 0x0b, 0xc6, 0x01, 0x31, 0x50, 0x80, 0x12, 0x17, 0x29, 0xb1, - 0xed, 0xf4, 0x29, 0xf1, 0x36, 0x2c, 0x25, 0x72, 0x50, 0x58, 0xa2, 0xa9, 0xcb, 0xa6, 0x20, 0xba, - 0x0f, 0x79, 0x1c, 0x6c, 0xc6, 0x9e, 0x70, 0x89, 0x64, 0xc0, 0xd5, 0x94, 0x8d, 0x5a, 0x0d, 0x21, - 0xd2, 0xaf, 0x79, 0x28, 0x90, 0xe9, 0xaa, 0xf5, 0xc6, 0xbe, 0x40, 0x19, 0x32, 0xe5, 0x96, 0x49, - 0x96, 0x9b, 0x02, 0x57, 0xe8, 0xc2, 0x4e, 0x9c, 0x12, 0x41, 0xf0, 0x02, 0xcd, 0x46, 0x76, 0xc5, - 0x61, 0xce, 0xa8, 0x25, 0x3d, 0x39, 0xe1, 0xb1, 0xfb, 0x5c, 0x6e, 0x96, 0x7d, 0xee, 0x0b, 0x28, - 0x52, 0x81, 0x74, 0xef, 0xce, 0x4f, 0xdd, 0xbb, 0x21, 0x82, 0xcb, 0xbe, 0x74, 0x08, 0x57, 0x6a, - 0x86, 0xe7, 0x13, 0xc6, 0x5e, 0x54, 0x6b, 0xeb, 0xe3, 0x9b, 0x31, 0xeb, 0x81, 0xc9, 0xe9, 0x2c, - 0xfd, 0x04, 0x10, 0xcb, 0x2e, 0xdc, 0xf3, 0xb6, 0x21, 0x4f, 0x00, 0x9e, 0xc0, 0x11, 0x83, 0x50, - 0xd2, 0xa0, 0x20, 0x20, 0x6a, 0x88, 0x90, 0xfe, 0xc9, 0xc3, 0x22, 0x99, 0x3d, 0x0a, 0xbd, 0xca, - 0xf8, 0x9b, 0x4b, 0xfa, 0x5b, 0x20, 0xf9, 0xe8, 0xe2, 0xf0, 0xe8, 0x5d, 0x50, 0xa3, 0xe1, 0x45, - 0x0e, 0xc2, 0x11, 0x6f, 0x66, 0xcf, 0xe3, 0x4d, 0xa4, 0x00, 0xe8, 0xbe, 0xef, 0x1a, 0xc7, 0x7d, - 0x1f, 0x47, 0xd1, 0xbb, 0x93, 0x34, 0x36, 0x34, 0xab, 0x2c, 0xc7, 0x38, 0xba, 0x25, 0x31, 0x0b, - 0x99, 0x4d, 0x21, 0x9f, 0xd8, 0x14, 0x96, 0x21, 0x67, 0xbf, 0xb7, 0xb0, 0x1b, 0x16, 0x2c, 0x1d, - 0x88, 0x3f, 0x82, 0xcb, 0x23, 0xcc, 0xce, 0xb5, 0x91, 0xb5, 0x40, 0x88, 0x43, 0x16, 0x2a, 0x17, - 0x27, 0xc2, 0x07, 0x57, 0x89, 0x54, 0x87, 0xb5, 0x14, 0xae, 0x61, 0x3e, 0x3c, 0x86, 0x85, 0x30, - 0x86, 0x51, 0x46, 0x5c, 0x4b, 0x75, 0x92, 0x1a, 0xc3, 0xa4, 0x5f, 0xf0, 0x80, 0x5e, 0x91, 0x96, - 0x23, 0xd1, 0x36, 0x9c, 0xa1, 0xe0, 0xe6, 0xb8, 0x82, 0xa3, 0x1d, 0xc5, 0x7f, 0xb5, 0x43, 0x60, - 0xeb, 0x7c, 0x7e, 0x86, 0x3a, 0x97, 0xaa, 0x70, 0x35, 0xe1, 0x81, 0xd0, 0x99, 0x02, 0xcc, 0x7b, - 0xfd, 0x76, 0x1b, 0x7b, 0x1e, 0xf1, 0xc0, 0x82, 0x1a, 0x0d, 0x03, 0x8a, 0x89, 0x3d, 0x4f, 0xef, - 0x46, 0xf1, 0x89, 0x86, 0xd2, 0x23, 0xb8, 0xaa, 0x06, 0xe9, 0xeb, 0xfa, 0x33, 0x7a, 0x53, 0x7a, - 0x01, 0xcb, 0xc9, 0x15, 0x17, 0x90, 0xfe, 0x77, 0x0e, 0x10, 0xdd, 0xf0, 0x7e, 0xc0, 0x58, 0x32, - 0xde, 0xcc, 0x9c, 0xb7, 0x3b, 0xcc, 0xce, 0x10, 0xfb, 0xdc, 0xd4, 0xd8, 0xe7, 0x47, 0x63, 0x2f, - 0xfd, 0x8b, 0x83, 0xab, 0x09, 0x43, 0x3f, 0xdc, 0x69, 0x09, 0xef, 0x64, 0x92, 0xde, 0x19, 0x6b, - 0xf3, 0xb2, 0x93, 0xdb, 0xbc, 0xdc, 0xb0, 0xcd, 0x9b, 0xdc, 0xbf, 0xe5, 0x3f, 0xbc, 0x7f, 0xfb, - 0x9e, 0x83, 0x35, 0x26, 0x4b, 0xa9, 0xd7, 0x2f, 0xbe, 0x9f, 0xa0, 0x1b, 0x50, 0xb0, 0x07, 0xd8, - 0x7d, 0xef, 0x1a, 0x3e, 0x26, 0xf6, 0x2f, 0xa8, 0xc3, 0x09, 0x36, 0xf8, 0xd9, 0x59, 0x82, 0x4f, - 0x1a, 0x35, 0xd3, 0x1e, 0x60, 0xb2, 0x47, 0x93, 0x46, 0x2d, 0x18, 0x49, 0x0d, 0x10, 0xd3, 0x94, - 0xbf, 0x40, 0xae, 0xff, 0x1c, 0x96, 0x55, 0xbb, 0xd7, 0x3b, 0xd6, 0xdb, 0x27, 0xb3, 0x26, 0xfb, - 0x87, 0xf6, 0x1f, 0xd2, 0x01, 0x5c, 0x1b, 0x91, 0x75, 0x01, 0xc5, 0xeb, 0x41, 0x8d, 0xf6, 0xf0, - 0xec, 0xfb, 0xed, 0x94, 0x03, 0xa1, 0x1a, 0x94, 0x02, 0xc3, 0xef, 0x02, 0xaa, 0x35, 0x61, 0x35, - 0x3e, 0x5b, 0x7e, 0xa8, 0x04, 0x93, 0x5e, 0x30, 0xc7, 0xe0, 0x68, 0xe0, 0x99, 0xf4, 0xe2, 0x66, - 0xd9, 0xa9, 0x9f, 0xc0, 0x52, 0x13, 0xfb, 0xbe, 0x61, 0x75, 0xbd, 0x86, 0xee, 0xea, 0xe6, 0xf4, - 0x2b, 0x7c, 0x74, 0x22, 0x4b, 0x15, 0x58, 0xd9, 0xed, 0x19, 0x84, 0x27, 0x65, 0xc0, 0x28, 0x91, - 0x77, 0x02, 0x66, 0x91, 0x0e, 0x2b, 0xb1, 0x0e, 0x09, 0x59, 0x6a, 0x88, 0x92, 0x56, 0xe1, 0xda, - 0x28, 0x27, 0x5a, 0xa2, 0xdf, 0x71, 0x50, 0x6c, 0xb8, 0xc6, 0x40, 0xf7, 0x71, 0xcd, 0xb0, 0x4e, - 0xd0, 0x5d, 0xb8, 0xec, 0xd0, 0xa1, 0xd6, 0x33, 0xac, 0x93, 0xa1, 0xeb, 0x96, 0x9c, 0x21, 0xaa, - 0xda, 0x89, 0x8d, 0xe0, 0x19, 0x23, 0x76, 0x20, 0xa3, 0xbf, 0xf7, 0xc2, 0x0e, 0xeb, 0x26, 0xb3, - 0x61, 0xc4, 0x0b, 0xcb, 0xf2, 0x97, 0xcd, 0x5d, 0xdb, 0x7a, 0x63, 0x74, 0x2b, 0x73, 0x6a, 0x00, - 0x16, 0xef, 0x41, 0x21, 0x9e, 0x0b, 0xee, 0x39, 0xd8, 0xea, 0x38, 0xb6, 0x61, 0xf9, 0xa1, 0xd4, - 0x78, 0xfc, 0x6c, 0x01, 0xf2, 0x6d, 0x82, 0x92, 0xfe, 0xc2, 0xc3, 0x3a, 0xc3, 0xb3, 0xe1, 0xda, - 0x03, 0x23, 0x48, 0x79, 0xc3, 0xea, 0x36, 0x69, 0x6b, 0xa4, 0xc4, 0x2d, 0x13, 0x7d, 0xb3, 0x79, - 0x90, 0xa6, 0xcb, 0xf8, 0xba, 0x32, 0xfd, 0x2f, 0xee, 0xb0, 0xd6, 0x20, 0x87, 0x5d, 0xd7, 0x76, - 0xa9, 0x91, 0x95, 0x39, 0x95, 0x0e, 0x7f, 0xc9, 0x71, 0xd2, 0x1f, 0x39, 0xc8, 0x87, 0xc2, 0x6e, - 0xc1, 0xf5, 0x86, 0x5a, 0x3d, 0x92, 0x5b, 0x8a, 0x56, 0xab, 0xd6, 0x0f, 0xb4, 0x66, 0x4b, 0x6e, - 0xbd, 0x6a, 0x6a, 0xaf, 0xea, 0x07, 0xf5, 0x97, 0x5f, 0xd6, 0x4b, 0x73, 0x93, 0x00, 0x0d, 0xa5, - 0xbe, 0x57, 0xad, 0xef, 0x97, 0x38, 0xb4, 0x0e, 0x6b, 0x69, 0x00, 0x55, 0x91, 0xf7, 0x5e, 0x97, - 0x78, 0xb4, 0x01, 0x37, 0xd2, 0xc8, 0x7b, 0x4a, 0x4d, 0x69, 0x05, 0x0c, 0x32, 0x93, 0x24, 0x10, - 0x84, 0xb2, 0x57, 0xca, 0xa2, 0x9b, 0x20, 0xa6, 0x01, 0x9e, 0xcb, 0xd5, 0x9a, 0xb2, 0x57, 0xca, - 0x05, 0xce, 0xd5, 0x88, 0x6d, 0xd2, 0xf7, 0x3c, 0xac, 0x32, 0x4e, 0xaa, 0x60, 0xbd, 0xe7, 0xbf, - 0x0d, 0x2d, 0xfd, 0xf1, 0x88, 0x5b, 0xef, 0xa5, 0xb9, 0x95, 0x5d, 0x31, 0xea, 0xd0, 0xe4, 0xbb, - 0x12, 0x7f, 0x8e, 0x77, 0x25, 0xe9, 0x37, 0x43, 0x87, 0x3f, 0x86, 0x07, 0x09, 0x63, 0xe4, 0x56, - 0x4b, 0xde, 0xad, 0x1c, 0x2a, 0xf5, 0x96, 0x56, 0x51, 0xe4, 0x5a, 0xab, 0x32, 0x1e, 0x82, 0x99, - 0x97, 0xd0, 0xd1, 0xeb, 0x12, 0x87, 0x3e, 0x85, 0x87, 0xb3, 0x4a, 0x89, 0x16, 0xf1, 0xd2, 0x9f, - 0x39, 0xb8, 0xc6, 0xf8, 0x42, 0xf6, 0x7d, 0xbd, 0xfd, 0x96, 0xbc, 0x06, 0x7c, 0x01, 0x62, 0xa2, - 0xae, 0xf4, 0x98, 0x34, 0x2c, 0xb1, 0x55, 0x27, 0x6d, 0x69, 0xb5, 0x93, 0x56, 0x94, 0x7c, 0x5a, - 0x51, 0x9e, 0xd1, 0x16, 0x24, 0x2f, 0x41, 0xd9, 0x73, 0x5c, 0x82, 0xa4, 0xef, 0x32, 0x70, 0x2f, - 0xd5, 0xa8, 0x94, 0xca, 0x7b, 0x39, 0x92, 0x22, 0x9f, 0xa5, 0xa5, 0xc8, 0x59, 0x1c, 0xce, 0x51, - 0x83, 0xbf, 0xe2, 0xe3, 0x94, 0xd8, 0x86, 0xbb, 0x93, 0x82, 0x35, 0x96, 0x0b, 0xd3, 0xb1, 0xc3, - 0xca, 0xdc, 0x82, 0x8f, 0xa6, 0x60, 0xa3, 0x22, 0xbd, 0x0f, 0xf7, 0xa6, 0x20, 0x99, 0x7a, 0x9d, - 0xae, 0xc2, 0xb0, 0x74, 0x3f, 0x86, 0x3b, 0x53, 0xb0, 0x29, 0x55, 0xfc, 0x27, 0x1e, 0xa4, 0x31, - 0x87, 0xe3, 0xc0, 0xe3, 0x89, 0x82, 0x7e, 0x31, 0x12, 0xad, 0x9d, 0xc9, 0xd1, 0x1a, 0x5b, 0xfc, - 0x3f, 0x57, 0xdb, 0xdf, 0x72, 0x20, 0xd0, 0x37, 0x5c, 0xc6, 0x39, 0x51, 0xab, 0x91, 0x76, 0xa6, - 0x2b, 0xf4, 0x38, 0xa4, 0xae, 0x78, 0x1c, 0xbb, 0x76, 0x12, 0x0f, 0x72, 0x36, 0x12, 0x5a, 0xf2, - 0x84, 0x7c, 0x00, 0x97, 0x47, 0x28, 0x33, 0x9e, 0x93, 0x2d, 0x58, 0x4b, 0x91, 0x15, 0x36, 0x10, - 0x9f, 0xc1, 0x22, 0xbb, 0xa5, 0x10, 0x36, 0x6c, 0x2b, 0xc3, 0xae, 0x29, 0x32, 0xbb, 0x8c, 0xf4, - 0x53, 0xb8, 0xb7, 0x8f, 0xfd, 0x33, 0xcf, 0xd1, 0xc8, 0x29, 0x33, 0xf6, 0x12, 0xd2, 0x5b, 0xd8, - 0x9a, 0xce, 0x32, 0xd4, 0xfb, 0xff, 0xa3, 0x46, 0x89, 0x2a, 0x7c, 0x77, 0xb6, 0x93, 0x3d, 0x6a, - 0xa8, 0x0e, 0x60, 0x33, 0x29, 0x89, 0xcd, 0xe8, 0xf3, 0xaa, 0xfd, 0x15, 0x48, 0x67, 0x31, 0x0b, - 0x15, 0xfe, 0xbf, 0xa4, 0xc2, 0x1b, 0xd3, 0xce, 0xcc, 0x50, 0xd5, 0x6d, 0x3b, 0x7c, 0x51, 0x1e, - 0x7e, 0x33, 0x09, 0xfa, 0x04, 0x79, 0x9f, 0x14, 0xbe, 0xb2, 0xab, 0x2a, 0x2d, 0xed, 0xa0, 0x5a, - 0xdf, 0x63, 0x0a, 0x61, 0x13, 0xd6, 0xc7, 0xc9, 0x4a, 0xfd, 0xa8, 0xaa, 0xbe, 0xac, 0x07, 0xb9, - 0x5d, 0xe2, 0x90, 0x08, 0x2b, 0xe3, 0x90, 0xe7, 0xd5, 0x9a, 0x52, 0xe2, 0xb7, 0xff, 0xc0, 0xc1, - 0xa5, 0xe4, 0x27, 0x2d, 0x74, 0x03, 0x04, 0x0a, 0x57, 0x8e, 0x82, 0x7f, 0x5b, 0xaf, 0x1b, 0x0a, - 0x23, 0x6f, 0x0b, 0x3e, 0x1a, 0xa3, 0xca, 0x8d, 0x46, 0xad, 0xba, 0x2b, 0xb7, 0xaa, 0x2f, 0xeb, - 0xda, 0xae, 0x2a, 0x37, 0x2b, 0xca, 0x5e, 0x89, 0x43, 0x65, 0xd8, 0x1e, 0x43, 0xaa, 0x4a, 0xb3, - 0x25, 0xab, 0x2d, 0x65, 0x4f, 0xab, 0x54, 0xf7, 0x2b, 0xda, 0x5e, 0xb5, 0x79, 0xa0, 0xbd, 0x6a, - 0xca, 0xfb, 0x4a, 0x89, 0x47, 0x8f, 0xe0, 0x93, 0x69, 0xf8, 0x43, 0xe5, 0xf0, 0xa5, 0xfa, 0x3a, - 0x5c, 0x91, 0xd9, 0xf9, 0x77, 0x01, 0x60, 0xb7, 0x67, 0xf7, 0x3b, 0xc4, 0x02, 0xf4, 0x02, 0x8a, - 0xcc, 0xe7, 0x16, 0x74, 0x7d, 0xa4, 0xf8, 0xd8, 0x5b, 0x8c, 0x78, 0x23, 0x9d, 0x48, 0xc3, 0x27, - 0xcd, 0xa1, 0x7d, 0x80, 0xe1, 0x2b, 0x26, 0x12, 0x63, 0xf4, 0xd8, 0x4b, 0xa9, 0x78, 0x3d, 0x95, - 0x16, 0x33, 0xfa, 0x8a, 0x79, 0x5d, 0x8d, 0x5e, 0xc1, 0xd0, 0xe6, 0xf8, 0x9a, 0x91, 0x77, 0x37, - 0x51, 0x3a, 0x0b, 0x12, 0x73, 0x7f, 0x0d, 0xa5, 0xd1, 0x2b, 0x0b, 0xda, 0x18, 0x5f, 0x99, 0xbc, - 0x22, 0x89, 0x9b, 0x67, 0x20, 0x62, 0xd6, 0x2f, 0xa0, 0xc8, 0x5c, 0x84, 0x19, 0x6f, 0x8e, 0xbf, - 0xc1, 0x31, 0xde, 0x4c, 0x79, 0x9e, 0x92, 0xe6, 0xd0, 0x21, 0x2c, 0xb2, 0x4f, 0x47, 0x68, 0x88, - 0x4f, 0x79, 0x83, 0x12, 0xd7, 0x27, 0x50, 0x59, 0xd5, 0x98, 0x37, 0x15, 0x46, 0xb5, 0xf1, 0x27, - 0x25, 0x46, 0xb5, 0x94, 0x67, 0x18, 0x69, 0x0e, 0x69, 0x89, 0x47, 0xc5, 0xc8, 0x87, 0x52, 0x9a, - 0x41, 0x23, 0x5e, 0xbc, 0x7d, 0x26, 0x26, 0x16, 0xd0, 0x80, 0xa5, 0xc4, 0x95, 0x1c, 0x31, 0xe6, - 0xa5, 0x3c, 0x0b, 0x88, 0x37, 0x27, 0x91, 0x93, 0xe6, 0xc7, 0xf7, 0xe8, 0x84, 0xf9, 0xa3, 0xb7, - 0xf5, 0x84, 0xf9, 0x63, 0x57, 0x6f, 0x69, 0x0e, 0x1d, 0xc1, 0x95, 0x7d, 0xec, 0x27, 0x6f, 0x89, - 0x68, 0xa8, 0x42, 0xea, 0xf5, 0x51, 0xbc, 0x35, 0x91, 0xce, 0xa6, 0xfd, 0xd8, 0x31, 0xc4, 0xa4, - 0xfd, 0xa4, 0xe3, 0x90, 0x49, 0xfb, 0x89, 0xa7, 0x98, 0x34, 0x87, 0xbe, 0xe1, 0x60, 0x63, 0xda, - 0xe1, 0x81, 0x1e, 0xc5, 0xac, 0x66, 0x3c, 0xba, 0xc4, 0xc7, 0xe7, 0x58, 0x11, 0xeb, 0xf2, 0x1e, - 0xc4, 0xc9, 0x07, 0x02, 0xda, 0x9e, 0xc0, 0x32, 0xe5, 0x08, 0x12, 0xef, 0xcf, 0x84, 0x8d, 0x04, - 0x3f, 0x7b, 0xfe, 0xb3, 0xdb, 0x5d, 0xc3, 0x7f, 0xdb, 0x3f, 0x2e, 0xb7, 0x6d, 0xf3, 0x61, 0xb8, - 0x94, 0xfe, 0x7d, 0x43, 0xdb, 0xee, 0x45, 0x13, 0xbf, 0xe3, 0x97, 0x6a, 0xc6, 0x00, 0x1f, 0x90, - 0xb3, 0xc7, 0xf6, 0xed, 0x7f, 0xf0, 0x97, 0xc2, 0xf1, 0xd3, 0xa7, 0x64, 0xe2, 0x38, 0x4f, 0x96, - 0x7c, 0xfa, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x39, 0xe9, 0x3e, 0x9d, 0x46, 0x21, 0x00, 0x00, + // 2235 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4f, 0x6f, 0xdb, 0xc8, + 0x15, 0x37, 0x29, 0x4b, 0xb6, 0x9e, 0xec, 0x44, 0x3b, 0x71, 0x1c, 0x9a, 0x89, 0x13, 0x9b, 0x69, + 0x36, 0x6e, 0xb2, 0x51, 0xfe, 0x2c, 0xd0, 0x6e, 0xd2, 0x16, 0x2d, 0x63, 0x31, 0x96, 0x62, 0x59, + 0x51, 0x29, 0xc5, 0x8b, 0x14, 0x0b, 0x10, 0xb4, 0x34, 0x51, 0x58, 0x8b, 0x7f, 0x42, 0x52, 0xca, + 0xfa, 0xd6, 0x63, 0xf7, 0xdc, 0x8f, 0x50, 0xa0, 0x87, 0x1e, 0x16, 0x3d, 0x14, 0x28, 0xd0, 0xfd, + 0x0a, 0xfd, 0x04, 0xed, 0xb9, 0x3d, 0xf4, 0x50, 0xf4, 0x23, 0x14, 0x33, 0x43, 0x52, 0x43, 0x89, + 0xb2, 0xe5, 0x78, 0x81, 0x5e, 0x12, 0xcd, 0xbc, 0xdf, 0xbc, 0xff, 0xef, 0xcd, 0x1b, 0x1a, 0x36, + 0x06, 0xd6, 0x08, 0x1f, 0x5b, 0xa1, 0xd1, 0x1d, 0xb8, 0xc3, 0x9e, 0x61, 0xf6, 0xb1, 0x13, 0x56, + 0x3c, 0xdf, 0x0d, 0x5d, 0xb4, 0x14, 0x91, 0xe4, 0x5b, 0x7d, 0xd7, 0xed, 0x0f, 0xf0, 0x43, 0xba, + 0x7d, 0x34, 0x7c, 0xfb, 0x30, 0xb4, 0x6c, 0x1c, 0x84, 0xa6, 0xed, 0x31, 0xa4, 0xf2, 0x8d, 0x00, + 0xa0, 0x92, 0x93, 0xda, 0x08, 0x3b, 0x21, 0xba, 0x0f, 0x8b, 0xe1, 0x89, 0x87, 0x25, 0x61, 0x4b, + 0xd8, 0xb9, 0xf4, 0xe4, 0x5a, 0x25, 0xe2, 0x53, 0x19, 0x43, 0x3a, 0x27, 0x1e, 0xd6, 0x29, 0x08, + 0xad, 0x41, 0xbe, 0xeb, 0x0e, 0x9d, 0x50, 0x12, 0xb7, 0x84, 0x9d, 0xbc, 0xce, 0x16, 0xe8, 0x0b, + 0x28, 0x26, 0x42, 0xa4, 0xdc, 0x96, 0xb0, 0x53, 0x7a, 0x22, 0x57, 0x98, 0x1a, 0x95, 0x58, 0x8d, + 0x4a, 0x27, 0x46, 0xe8, 0x63, 0xb0, 0xf2, 0x0f, 0x01, 0x4a, 0x54, 0x50, 0x1b, 0x77, 0x7d, 0x1c, + 0x22, 0x04, 0x8b, 0x8e, 0x69, 0x33, 0x65, 0x8a, 0x3a, 0xfd, 0x4d, 0x64, 0x8e, 0xcc, 0xc1, 0x10, + 0x53, 0x99, 0x2b, 0x3a, 0x5b, 0xa0, 0xa7, 0x00, 0x5d, 0x1f, 0x9b, 0x21, 0xee, 0x19, 0x66, 0x38, + 0x8f, 0xd0, 0x08, 0xad, 0x86, 0xe4, 0xe8, 0xd0, 0xeb, 0xc5, 0x47, 0x17, 0xcf, 0x3e, 0x1a, 0xa1, + 0xd5, 0x10, 0x7d, 0x06, 0x8b, 0xc7, 0x96, 0xd3, 0x93, 0xf2, 0xd4, 0x59, 0x52, 0xda, 0x59, 0xcc, + 0x86, 0x7d, 0xcb, 0xe9, 0xe9, 0x14, 0xa5, 0xfc, 0x53, 0x00, 0xb4, 0x4b, 0xc5, 0x52, 0xba, 0x8e, + 0xdf, 0x0f, 0x71, 0x10, 0xa2, 0x6d, 0x00, 0x1a, 0x39, 0x63, 0x6c, 0xea, 0x73, 0x51, 0x12, 0xf4, + 0x22, 0xdd, 0x6d, 0x12, 0x9b, 0x2b, 0xb0, 0x14, 0x50, 0x6e, 0x81, 0x24, 0x6e, 0xe5, 0x76, 0x4a, + 0x4f, 0xd6, 0xb2, 0x44, 0xe9, 0x31, 0x08, 0xdd, 0x84, 0x65, 0x1f, 0x7b, 0x03, 0xab, 0x6b, 0x06, + 0xd4, 0x17, 0x79, 0xca, 0x30, 0xd9, 0x43, 0x77, 0x60, 0xc5, 0x36, 0xbf, 0x36, 0x12, 0xcc, 0x62, + 0x82, 0x29, 0xd9, 0xe6, 0xd7, 0x7a, 0x0c, 0xbb, 0x0e, 0x4b, 0x5d, 0x6f, 0x68, 0xf8, 0xf8, 0x3d, + 0xb5, 0x90, 0xa9, 0x55, 0xe8, 0x7a, 0x43, 0x1d, 0xbf, 0x47, 0x12, 0x2c, 0xf9, 0xb8, 0x6f, 0xb9, + 0x4e, 0x20, 0x15, 0xb6, 0x72, 0x3b, 0x45, 0x3d, 0x5e, 0x2a, 0x7f, 0x16, 0xe1, 0x4a, 0xca, 0xce, + 0xc0, 0x73, 0x9d, 0x00, 0xa3, 0x0d, 0x58, 0x66, 0x86, 0x5a, 0xbd, 0x28, 0xa2, 0x4b, 0x74, 0x5d, + 0xef, 0xa1, 0xcd, 0x94, 0x0f, 0x44, 0x4a, 0xe4, 0xec, 0x5f, 0x87, 0x42, 0x10, 0x9a, 0xe1, 0x90, + 0x59, 0x53, 0xd4, 0xa3, 0x15, 0xd1, 0x61, 0x84, 0xfd, 0xc0, 0x72, 0x1d, 0x6a, 0x42, 0x51, 0x8f, + 0x97, 0xe8, 0x36, 0xac, 0x7a, 0x3e, 0x0e, 0xac, 0xbe, 0x83, 0x7b, 0xc6, 0xd0, 0x1f, 0x30, 0x03, + 0xf4, 0x95, 0x64, 0xf3, 0xb5, 0x3f, 0x40, 0x65, 0xc8, 0x85, 0x66, 0x5f, 0x2a, 0x50, 0x12, 0xf9, + 0x89, 0xee, 0xc0, 0xa5, 0x00, 0xfb, 0x23, 0xec, 0x1b, 0xb1, 0x6d, 0x4b, 0xd4, 0xb6, 0x55, 0xb6, + 0xab, 0xb3, 0x4d, 0xd4, 0x86, 0xf5, 0x31, 0x77, 0xcf, 0x0d, 0x42, 0xe2, 0x23, 0x12, 0x4c, 0x69, + 0x99, 0xa6, 0xcf, 0x66, 0x12, 0x9e, 0x56, 0x0c, 0x6b, 0xb9, 0x41, 0x1c, 0x71, 0x7d, 0xcd, 0xcb, + 0xd8, 0x55, 0xfe, 0x20, 0xc0, 0x5a, 0x16, 0x9c, 0xa8, 0x49, 0x2c, 0x60, 0x2e, 0x23, 0x3f, 0x91, + 0x0a, 0x05, 0x9a, 0xf6, 0x71, 0x3a, 0xfc, 0xf0, 0x54, 0x79, 0x95, 0x43, 0x8a, 0xd5, 0x9c, 0xd0, + 0x3f, 0xd1, 0xa3, 0x83, 0xf2, 0x53, 0x28, 0x71, 0xdb, 0x44, 0xc6, 0x31, 0x3e, 0x89, 0x65, 0x1c, + 0xe3, 0x93, 0x74, 0x9d, 0x15, 0xa3, 0x3a, 0x7b, 0x26, 0x7e, 0x21, 0x28, 0xdf, 0xe6, 0xe0, 0x32, + 0x8d, 0x6c, 0x15, 0x7b, 0x03, 0xf7, 0xc4, 0x26, 0x6d, 0x63, 0x1d, 0x0a, 0xcc, 0x63, 0x11, 0x8b, + 0x68, 0x95, 0x8a, 0xb9, 0x98, 0x8e, 0xf9, 0xac, 0xa0, 0xca, 0x5c, 0xf2, 0xd2, 0xc4, 0xe4, 0x12, + 0x77, 0x1b, 0x56, 0x6c, 0xcb, 0x19, 0x27, 0x6e, 0x9e, 0xd2, 0x4b, 0xb6, 0xe5, 0xe8, 0x3c, 0x84, + 0xcf, 0xed, 0x42, 0x04, 0xe1, 0xf2, 0xfa, 0xda, 0x38, 0xaf, 0x97, 0x98, 0xe8, 0x28, 0xa7, 0x09, + 0x61, 0xe8, 0x1b, 0x5d, 0x6f, 0x48, 0x03, 0x49, 0x08, 0x43, 0x7f, 0xd7, 0x1b, 0xc6, 0x04, 0x1b, + 0xdb, 0x52, 0x31, 0x21, 0x1c, 0x60, 0x9b, 0x10, 0x6c, 0x6c, 0x53, 0x56, 0xc0, 0x08, 0x36, 0xb6, + 0x09, 0xab, 0xeb, 0x50, 0x24, 0x84, 0x81, 0x65, 0x5b, 0xa1, 0x54, 0xa2, 0xa4, 0x65, 0x1b, 0xdb, + 0x0d, 0xb2, 0x26, 0x44, 0xa2, 0x00, 0x23, 0xae, 0x30, 0x62, 0xd7, 0x1b, 0x32, 0xe2, 0x6d, 0x58, + 0x4d, 0xe5, 0xa0, 0xb4, 0xca, 0x52, 0x97, 0x4f, 0x41, 0x74, 0x1f, 0x0a, 0x98, 0x34, 0xe3, 0x40, + 0xba, 0x44, 0x33, 0xe0, 0x4a, 0x46, 0xa3, 0xd6, 0x23, 0x88, 0xf2, 0x3b, 0x11, 0x8a, 0x74, 0xbb, + 0xee, 0xbc, 0x75, 0x2f, 0x50, 0x86, 0x5c, 0xb9, 0xe5, 0xd2, 0xe5, 0xa6, 0xc1, 0x27, 0xec, 0x60, + 0x2f, 0x49, 0x09, 0x12, 0x3c, 0xa2, 0xd9, 0x44, 0x57, 0x1c, 0xe7, 0x8c, 0x5e, 0x36, 0xd3, 0x1b, + 0x01, 0xdf, 0xe7, 0xf2, 0xf3, 0xf4, 0xb9, 0x9f, 0x40, 0x89, 0x09, 0x64, 0xbd, 0xbb, 0x70, 0x66, + 0xef, 0x86, 0x18, 0xae, 0x86, 0xca, 0x01, 0x7c, 0xd2, 0xb0, 0x82, 0x90, 0x32, 0x0e, 0xe2, 0x5a, + 0xdb, 0x9c, 0x6e, 0xc6, 0xbc, 0x07, 0x66, 0xa7, 0xb3, 0xf2, 0x0b, 0x40, 0x3c, 0xbb, 0xa8, 0xe7, + 0xdd, 0x83, 0x02, 0x05, 0x04, 0x92, 0x40, 0x0d, 0x42, 0x69, 0x83, 0x48, 0x40, 0xf4, 0x08, 0xa1, + 0xfc, 0x47, 0x84, 0x15, 0xba, 0x7b, 0x18, 0x79, 0x95, 0xf3, 0xb7, 0x90, 0xf6, 0xb7, 0x44, 0xf3, + 0xd1, 0xc7, 0xd1, 0xd5, 0xbb, 0xac, 0xc7, 0xcb, 0x8b, 0x5c, 0x84, 0x13, 0xde, 0x5c, 0x3c, 0x8f, + 0x37, 0x91, 0x06, 0x60, 0x86, 0xa1, 0x6f, 0x1d, 0x0d, 0x43, 0x1c, 0x47, 0xef, 0x4e, 0xda, 0xd8, + 0xc8, 0xac, 0x8a, 0x9a, 0xe0, 0x58, 0x4b, 0xe2, 0x0e, 0x72, 0x4d, 0xa1, 0x90, 0x6a, 0x0a, 0x6b, + 0x90, 0x77, 0x3f, 0x38, 0xd8, 0x8f, 0x0a, 0x96, 0x2d, 0xe4, 0x9f, 0xc1, 0xe5, 0x09, 0x66, 0xe7, + 0x6a, 0x64, 0x1d, 0x90, 0x92, 0x90, 0x45, 0xca, 0x25, 0x89, 0xf0, 0xd1, 0x55, 0xa2, 0x34, 0x61, + 0x23, 0x83, 0x6b, 0x94, 0x0f, 0x8f, 0x61, 0x39, 0x8a, 0x61, 0x9c, 0x11, 0x57, 0x33, 0x9d, 0xa4, + 0x27, 0x30, 0xe5, 0x37, 0x22, 0xa0, 0xd7, 0x74, 0xe4, 0x48, 0x8d, 0x0d, 0xa7, 0x28, 0xb8, 0x3d, + 0xad, 0xe0, 0xe4, 0x44, 0xf1, 0x7f, 0x9d, 0x10, 0xf8, 0x3a, 0x5f, 0x9a, 0xa3, 0xce, 0x95, 0x3a, + 0x5c, 0x49, 0x79, 0x20, 0x72, 0xa6, 0x04, 0x4b, 0xc1, 0xb0, 0xdb, 0xc5, 0x41, 0x40, 0x3d, 0xb0, + 0xac, 0xc7, 0x4b, 0x42, 0xb1, 0x71, 0x10, 0x98, 0xfd, 0x38, 0x3e, 0xf1, 0x52, 0x79, 0x04, 0x57, + 0x74, 0x92, 0xbe, 0x7e, 0x38, 0xa7, 0x37, 0x95, 0x97, 0xb0, 0x96, 0x3e, 0x71, 0x01, 0xe9, 0xff, + 0x12, 0x00, 0xb1, 0x86, 0xf7, 0x3d, 0xc6, 0x92, 0xf3, 0x66, 0xee, 0xbc, 0xd3, 0xe1, 0xe2, 0x1c, + 0xb1, 0xcf, 0x9f, 0x19, 0xfb, 0xc2, 0x64, 0xec, 0x95, 0xff, 0x0a, 0x70, 0x25, 0x65, 0xe8, 0xc7, + 0x3b, 0x2d, 0xe5, 0x9d, 0x5c, 0xda, 0x3b, 0x53, 0x63, 0xde, 0xe2, 0xec, 0x31, 0x2f, 0x3f, 0x1e, + 0xf3, 0x66, 0xcf, 0x6f, 0x85, 0x8f, 0x9f, 0xdf, 0xbe, 0x13, 0x60, 0x83, 0xcb, 0x52, 0xe6, 0xf5, + 0x8b, 0xf7, 0x13, 0x74, 0x03, 0x8a, 0xee, 0x08, 0xfb, 0x1f, 0x7c, 0x2b, 0xc4, 0xd4, 0xfe, 0x65, + 0x7d, 0xbc, 0xc1, 0x07, 0x7f, 0x71, 0x9e, 0xe0, 0xd3, 0x41, 0xcd, 0x76, 0x47, 0x98, 0xf6, 0x68, + 0x3a, 0xa8, 0x91, 0x95, 0xd2, 0x02, 0x39, 0x4b, 0xf9, 0x0b, 0xe4, 0xfa, 0xaf, 0x61, 0x4d, 0x77, + 0x07, 0x83, 0x23, 0xb3, 0x7b, 0x3c, 0x6f, 0xb2, 0x7f, 0xec, 0xfc, 0xa1, 0xec, 0xc3, 0xd5, 0x09, + 0x59, 0x17, 0x50, 0xbc, 0x49, 0x6a, 0x74, 0x80, 0xe7, 0xef, 0xb7, 0x67, 0x5c, 0x08, 0x75, 0x52, + 0x0a, 0x1c, 0xbf, 0x0b, 0xa8, 0xd6, 0x86, 0x6b, 0xc9, 0xdd, 0xf2, 0x7d, 0x25, 0x98, 0xf2, 0x92, + 0xbb, 0x06, 0x27, 0x03, 0xcf, 0xa5, 0x97, 0x30, 0x4f, 0xa7, 0x7e, 0x0a, 0xab, 0x6d, 0x1c, 0x86, + 0x96, 0xd3, 0x0f, 0x5a, 0xa6, 0x6f, 0xda, 0x67, 0x3f, 0xe1, 0xe3, 0x1b, 0x59, 0xa9, 0xc1, 0xfa, + 0xee, 0xc0, 0xa2, 0x3c, 0x19, 0x03, 0x4e, 0x89, 0x82, 0x47, 0x98, 0xc5, 0x3a, 0xac, 0x27, 0x3a, + 0xa4, 0x64, 0xe9, 0x11, 0x4a, 0xb9, 0x06, 0x57, 0x27, 0x39, 0xb1, 0x12, 0xfd, 0x93, 0x00, 0xa5, + 0x96, 0x6f, 0x8d, 0xcc, 0x10, 0x37, 0x2c, 0xe7, 0x18, 0x7d, 0x0a, 0x97, 0x3d, 0xb6, 0x34, 0x06, + 0x96, 0x73, 0x3c, 0x76, 0xdd, 0xaa, 0x37, 0x46, 0xd5, 0x7b, 0x89, 0x11, 0x22, 0x67, 0xc4, 0x13, + 0xc8, 0x99, 0x1f, 0x82, 0x68, 0xc2, 0xba, 0xc9, 0x35, 0x8c, 0xe4, 0x60, 0x45, 0xfd, 0xb2, 0xbd, + 0xeb, 0x3a, 0x6f, 0xad, 0x7e, 0x6d, 0x41, 0x27, 0x60, 0xf9, 0x2e, 0x14, 0x93, 0x3d, 0xf2, 0xce, + 0xc1, 0x4e, 0xcf, 0x73, 0x2d, 0x27, 0x8c, 0xa4, 0x26, 0xeb, 0xe7, 0xcb, 0x50, 0xe8, 0x52, 0x94, + 0xf2, 0x77, 0x11, 0x36, 0x39, 0x9e, 0x2d, 0xdf, 0x1d, 0x59, 0x24, 0xe5, 0x2d, 0xa7, 0xdf, 0x66, + 0xa3, 0x91, 0x96, 0x8c, 0x4c, 0xec, 0x9b, 0xcd, 0x83, 0x2c, 0x5d, 0xa6, 0xcf, 0x55, 0xd8, 0x7f, + 0xc9, 0x84, 0xb5, 0x01, 0x79, 0xec, 0xfb, 0xae, 0xcf, 0x8c, 0xac, 0x2d, 0xe8, 0x6c, 0xf9, 0x5b, + 0x41, 0x50, 0xfe, 0x26, 0x40, 0x21, 0x12, 0x76, 0x0b, 0xae, 0xb7, 0xf4, 0xfa, 0xa1, 0xda, 0xd1, + 0x8c, 0x46, 0xbd, 0xb9, 0x6f, 0xb4, 0x3b, 0x6a, 0xe7, 0x75, 0xdb, 0x78, 0xdd, 0xdc, 0x6f, 0xbe, + 0xfa, 0xb2, 0x59, 0x5e, 0x98, 0x05, 0x68, 0x69, 0xcd, 0x6a, 0xbd, 0xb9, 0x57, 0x16, 0xd0, 0x26, + 0x6c, 0x64, 0x01, 0x74, 0x4d, 0xad, 0xbe, 0x29, 0x8b, 0x68, 0x0b, 0x6e, 0x64, 0x91, 0xab, 0x5a, + 0x43, 0xeb, 0x10, 0x06, 0xb9, 0x59, 0x12, 0x28, 0x42, 0xab, 0x96, 0x17, 0xd1, 0x4d, 0x90, 0xb3, + 0x00, 0x2f, 0xd4, 0x7a, 0x43, 0xab, 0x96, 0xf3, 0xc4, 0xb9, 0x06, 0xb5, 0x4d, 0xf9, 0x4e, 0x84, + 0x6b, 0x9c, 0x93, 0x6a, 0xd8, 0x1c, 0x84, 0xef, 0x22, 0x4b, 0x7f, 0x3e, 0xe1, 0xd6, 0xbb, 0x59, + 0x6e, 0xe5, 0x4f, 0x4c, 0x3a, 0x34, 0xfd, 0x5d, 0x49, 0x3c, 0xc7, 0x77, 0x25, 0xe5, 0xf7, 0x63, + 0x87, 0x3f, 0x86, 0x07, 0x29, 0x63, 0xd4, 0x4e, 0x47, 0xdd, 0xad, 0x1d, 0x68, 0xcd, 0x8e, 0x51, + 0xd3, 0xd4, 0x46, 0xa7, 0x36, 0x1d, 0x82, 0xb9, 0x8f, 0xb0, 0xd5, 0x9b, 0xb2, 0x80, 0x3e, 0x87, + 0x87, 0xf3, 0x4a, 0x89, 0x0f, 0x89, 0xca, 0xb7, 0x02, 0x48, 0xec, 0x3b, 0x0f, 0xe7, 0x91, 0xb8, + 0x1d, 0x65, 0xd5, 0xbd, 0xc6, 0x4a, 0x86, 0xb9, 0xe2, 0x71, 0xe2, 0xcf, 0x59, 0x3c, 0x68, 0xfd, + 0x50, 0x5a, 0xba, 0x8a, 0x1e, 0xc0, 0xe5, 0x09, 0xca, 0x9c, 0xb5, 0xd4, 0x81, 0x8d, 0x0c, 0x59, + 0x51, 0x93, 0xf9, 0x31, 0xac, 0xf0, 0xbd, 0x80, 0xb2, 0xe1, 0xdb, 0x1d, 0x7f, 0xa6, 0xc4, 0xb5, + 0x07, 0x65, 0x17, 0x36, 0xaa, 0x38, 0x08, 0x7d, 0xf7, 0x24, 0xc3, 0x0d, 0x73, 0x76, 0x18, 0xe5, + 0x06, 0xc8, 0x59, 0x4c, 0x98, 0x6e, 0xca, 0x06, 0x6b, 0xfb, 0x1c, 0x29, 0x69, 0x69, 0x2f, 0x58, + 0xf3, 0x4e, 0x93, 0x92, 0xc7, 0x67, 0xde, 0x0a, 0xb1, 0x3d, 0xdd, 0xba, 0x79, 0x19, 0x0c, 0xa2, + 0xfc, 0x12, 0xee, 0xee, 0xe1, 0xf0, 0xd4, 0x8e, 0x71, 0x5e, 0x9b, 0xde, 0xc1, 0xce, 0xd9, 0x2c, + 0x23, 0x55, 0x7f, 0x1a, 0x5f, 0x09, 0xcc, 0xed, 0x9f, 0xce, 0xd7, 0xc3, 0xe2, 0xab, 0x63, 0x1f, + 0xb6, 0xd3, 0x92, 0xf8, 0xba, 0x3c, 0xaf, 0xda, 0x5f, 0x81, 0x72, 0x1a, 0xb3, 0x48, 0xe1, 0x1f, + 0xa5, 0x15, 0xde, 0x3a, 0xab, 0x3b, 0x44, 0xaa, 0xde, 0x73, 0xa3, 0x6f, 0x67, 0xe3, 0xaf, 0xc3, + 0xa4, 0x23, 0xaa, 0x7b, 0xa4, 0xd4, 0xda, 0xda, 0xae, 0xae, 0x75, 0x8c, 0xfd, 0x7a, 0xb3, 0xca, + 0x95, 0xf3, 0x36, 0x6c, 0x4e, 0x93, 0xb5, 0xe6, 0x61, 0x5d, 0x7f, 0xd5, 0x24, 0x15, 0x5a, 0x16, + 0x90, 0x0c, 0xeb, 0xd3, 0x90, 0x17, 0xf5, 0x86, 0x56, 0x16, 0xef, 0xfd, 0x55, 0x80, 0x4b, 0xe9, + 0x8f, 0xf7, 0xe8, 0x06, 0x48, 0x0c, 0xae, 0x1d, 0x92, 0x7f, 0x3b, 0x6f, 0x5a, 0x1a, 0x27, 0x6f, + 0x07, 0x7e, 0x30, 0x45, 0x55, 0x5b, 0xad, 0x46, 0x7d, 0x57, 0xed, 0xd4, 0x5f, 0x35, 0x8d, 0x5d, + 0x5d, 0x6d, 0xd7, 0xb4, 0x6a, 0x59, 0x40, 0x15, 0xb8, 0x37, 0x85, 0xd4, 0xb5, 0x76, 0x47, 0xd5, + 0x3b, 0x5a, 0xd5, 0xa8, 0xd5, 0xf7, 0x6a, 0x46, 0xb5, 0xde, 0xde, 0x37, 0x5e, 0xb7, 0xd5, 0x3d, + 0xad, 0x2c, 0xa2, 0x47, 0xf0, 0xd9, 0x59, 0xf8, 0x03, 0xed, 0xe0, 0x95, 0xfe, 0x26, 0x3a, 0x91, + 0x7b, 0xf2, 0x97, 0x12, 0xc0, 0xee, 0xc0, 0x1d, 0xf6, 0xa8, 0x05, 0xe8, 0x25, 0x94, 0xb8, 0x0f, + 0xcb, 0xe8, 0xfa, 0x44, 0x0b, 0xe1, 0xe7, 0x35, 0xf9, 0x46, 0x36, 0x31, 0xaa, 0xa8, 0x05, 0xb4, + 0x07, 0x30, 0xfe, 0x5e, 0x83, 0xe4, 0x04, 0x3d, 0xf5, 0x4d, 0x48, 0xbe, 0x9e, 0x49, 0x4b, 0x18, + 0x7d, 0xc5, 0x7d, 0x47, 0x8a, 0xdf, 0xfb, 0x68, 0x7b, 0xfa, 0xcc, 0xc4, 0x17, 0x06, 0x59, 0x39, + 0x0d, 0x92, 0x70, 0x7f, 0x03, 0xe5, 0xc9, 0xe1, 0x0c, 0x6d, 0x4d, 0x9f, 0x4c, 0x0f, 0x83, 0xf2, + 0xf6, 0x29, 0x88, 0x84, 0xf5, 0x4b, 0x28, 0x71, 0x23, 0x3f, 0xe7, 0xcd, 0xe9, 0xaf, 0x0d, 0x9c, + 0x37, 0x33, 0x1e, 0xe2, 0xca, 0x02, 0x3a, 0x80, 0x15, 0xfe, 0x91, 0x8c, 0xc6, 0xf8, 0x8c, 0xd7, + 0xb6, 0xbc, 0x39, 0x83, 0xca, 0xab, 0xc6, 0xbd, 0x1e, 0x39, 0xd5, 0xa6, 0x1f, 0xcf, 0x9c, 0x6a, + 0x19, 0x0f, 0x4e, 0x65, 0x01, 0x19, 0xa9, 0xcf, 0x27, 0xb1, 0x0f, 0x95, 0x2c, 0x83, 0x26, 0xbc, + 0x78, 0xfb, 0x54, 0x4c, 0x22, 0xa0, 0x05, 0xab, 0xa9, 0xc7, 0x07, 0xe2, 0xcc, 0xcb, 0x78, 0x00, + 0xc9, 0x37, 0x67, 0x91, 0xd3, 0xe6, 0x27, 0x2f, 0x86, 0x94, 0xf9, 0x93, 0xef, 0x92, 0x94, 0xf9, + 0x53, 0x8f, 0x0c, 0x65, 0x01, 0x1d, 0xc2, 0x27, 0x7b, 0x38, 0x4c, 0xcf, 0xc3, 0x68, 0xac, 0x42, + 0xe6, 0xa0, 0x2c, 0xdf, 0x9a, 0x49, 0xe7, 0xd3, 0x7e, 0xea, 0x32, 0xe5, 0xd2, 0x7e, 0xd6, 0xa5, + 0xce, 0xa5, 0xfd, 0xcc, 0xbb, 0x98, 0x05, 0x6d, 0xfa, 0x3e, 0xe4, 0x82, 0x36, 0xf3, 0xc6, 0xe5, + 0x82, 0x76, 0xca, 0x85, 0x9a, 0xd4, 0x15, 0x7f, 0x6f, 0x4e, 0xd4, 0x55, 0xc6, 0x6d, 0x3b, 0x51, + 0x57, 0x59, 0x97, 0xae, 0xb2, 0x80, 0xbe, 0x11, 0x60, 0xeb, 0xac, 0x8b, 0x0f, 0x3d, 0x4a, 0x38, + 0xcd, 0x79, 0xed, 0xca, 0x8f, 0xcf, 0x71, 0x22, 0xd1, 0xe5, 0x03, 0xc8, 0xb3, 0x2f, 0x33, 0x74, + 0x6f, 0x06, 0xcb, 0x8c, 0xeb, 0x53, 0xbe, 0x3f, 0x17, 0x36, 0x16, 0xfc, 0xfc, 0xc5, 0xaf, 0x6e, + 0xf7, 0xad, 0xf0, 0xdd, 0xf0, 0xa8, 0xd2, 0x75, 0xed, 0x87, 0xd1, 0x51, 0xf6, 0x57, 0xe8, 0xae, + 0x3b, 0x88, 0x37, 0xfe, 0x28, 0xae, 0x36, 0xac, 0x11, 0xde, 0xa7, 0xf7, 0xa6, 0x1b, 0xba, 0xff, + 0x16, 0x2f, 0x45, 0xeb, 0x67, 0xcf, 0xe8, 0xc6, 0x51, 0x81, 0x1e, 0xf9, 0xfc, 0x7f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xd2, 0x86, 0x67, 0x28, 0xec, 0x1e, 0x00, 0x00, }