From e08dede583ccca95fcb403ba31818caf2a196b5a Mon Sep 17 00:00:00 2001 From: Maxim Dietz Date: Tue, 3 Feb 2026 17:32:26 -0500 Subject: [PATCH 1/2] types: Update protos for Teleterm support of ResourceConstraints --- .../lib/teleterm/v1/access_request.pb.go | 47 +- .../go/teleport/lib/teleterm/v1/app.pb.go | 38 +- .../go/teleport/lib/teleterm/v1/service.pb.go | 329 +++++++------- .../ts/teleport/legacy/types/resources_pb.ts | 409 ++++++++++++++++++ .../lib/teleterm/v1/access_request_pb.ts | 16 +- .../ts/teleport/lib/teleterm/v1/app_pb.ts | 44 +- .../ts/teleport/lib/teleterm/v1/service_pb.ts | 22 +- .../lib/teleterm/v1/access_request.proto | 3 + proto/teleport/lib/teleterm/v1/app.proto | 6 + proto/teleport/lib/teleterm/v1/service.proto | 8 + .../useAccessRequestCheckout.ts | 1 + 11 files changed, 738 insertions(+), 185 deletions(-) create mode 100644 gen/proto/ts/teleport/legacy/types/resources_pb.ts diff --git a/gen/proto/go/teleport/lib/teleterm/v1/access_request.pb.go b/gen/proto/go/teleport/lib/teleterm/v1/access_request.pb.go index fc3fb77f799b9..d0e01d03a221b 100644 --- a/gen/proto/go/teleport/lib/teleterm/v1/access_request.pb.go +++ b/gen/proto/go/teleport/lib/teleterm/v1/access_request.pb.go @@ -24,6 +24,7 @@ package teletermv1 import ( + types "github.com/gravitational/teleport/api/types" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" @@ -464,9 +465,11 @@ func (x *ResourceDetails) GetFriendlyName() string { } type Resource struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id *ResourceID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Details *ResourceDetails `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id *ResourceID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Details *ResourceDetails `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"` + // constraints holds optional resource-specific constraints (e.g., AWS role ARNs). + Constraints *types.ResourceConstraints `protobuf:"bytes,3,opt,name=constraints,proto3" json:"constraints,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -515,11 +518,18 @@ func (x *Resource) GetDetails() *ResourceDetails { return nil } +func (x *Resource) GetConstraints() *types.ResourceConstraints { + if x != nil { + return x.Constraints + } + return nil +} + var File_teleport_lib_teleterm_v1_access_request_proto protoreflect.FileDescriptor const file_teleport_lib_teleterm_v1_access_request_proto_rawDesc = "" + "\n" + - "-teleport/lib/teleterm/v1/access_request.proto\x12\x18teleport.lib.teleterm.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x98\a\n" + + "-teleport/lib/teleterm/v1/access_request.proto\x12\x18teleport.lib.teleterm.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a%teleport/legacy/types/resources.proto\"\x98\a\n" + "\rAccessRequest\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" + "\x05state\x18\x02 \x01(\tR\x05state\x12%\n" + @@ -560,10 +570,11 @@ const file_teleport_lib_teleterm_v1_access_request_proto_rawDesc = "" + "\x11sub_resource_name\x18\x04 \x01(\tR\x0fsubResourceName\"R\n" + "\x0fResourceDetails\x12\x1a\n" + "\bhostname\x18\x01 \x01(\tR\bhostname\x12#\n" + - "\rfriendly_name\x18\x02 \x01(\tR\ffriendlyName\"\x85\x01\n" + + "\rfriendly_name\x18\x02 \x01(\tR\ffriendlyName\"\xc3\x01\n" + "\bResource\x124\n" + "\x02id\x18\x01 \x01(\v2$.teleport.lib.teleterm.v1.ResourceIDR\x02id\x12C\n" + - "\adetails\x18\x02 \x01(\v2).teleport.lib.teleterm.v1.ResourceDetailsR\adetailsBTZRgithub.com/gravitational/teleport/gen/proto/go/teleport/lib/teleterm/v1;teletermv1b\x06proto3" + "\adetails\x18\x02 \x01(\v2).teleport.lib.teleterm.v1.ResourceDetailsR\adetails\x12<\n" + + "\vconstraints\x18\x03 \x01(\v2\x1a.types.ResourceConstraintsR\vconstraintsBTZRgithub.com/gravitational/teleport/gen/proto/go/teleport/lib/teleterm/v1;teletermv1b\x06proto3" var ( file_teleport_lib_teleterm_v1_access_request_proto_rawDescOnce sync.Once @@ -579,12 +590,13 @@ func file_teleport_lib_teleterm_v1_access_request_proto_rawDescGZIP() []byte { var file_teleport_lib_teleterm_v1_access_request_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_teleport_lib_teleterm_v1_access_request_proto_goTypes = []any{ - (*AccessRequest)(nil), // 0: teleport.lib.teleterm.v1.AccessRequest - (*AccessRequestReview)(nil), // 1: teleport.lib.teleterm.v1.AccessRequestReview - (*ResourceID)(nil), // 2: teleport.lib.teleterm.v1.ResourceID - (*ResourceDetails)(nil), // 3: teleport.lib.teleterm.v1.ResourceDetails - (*Resource)(nil), // 4: teleport.lib.teleterm.v1.Resource - (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp + (*AccessRequest)(nil), // 0: teleport.lib.teleterm.v1.AccessRequest + (*AccessRequestReview)(nil), // 1: teleport.lib.teleterm.v1.AccessRequestReview + (*ResourceID)(nil), // 2: teleport.lib.teleterm.v1.ResourceID + (*ResourceDetails)(nil), // 3: teleport.lib.teleterm.v1.ResourceDetails + (*Resource)(nil), // 4: teleport.lib.teleterm.v1.Resource + (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp + (*types.ResourceConstraints)(nil), // 6: types.ResourceConstraints } var file_teleport_lib_teleterm_v1_access_request_proto_depIdxs = []int32{ 5, // 0: teleport.lib.teleterm.v1.AccessRequest.created:type_name -> google.protobuf.Timestamp @@ -599,11 +611,12 @@ var file_teleport_lib_teleterm_v1_access_request_proto_depIdxs = []int32{ 5, // 9: teleport.lib.teleterm.v1.AccessRequestReview.assume_start_time:type_name -> google.protobuf.Timestamp 2, // 10: teleport.lib.teleterm.v1.Resource.id:type_name -> teleport.lib.teleterm.v1.ResourceID 3, // 11: teleport.lib.teleterm.v1.Resource.details:type_name -> teleport.lib.teleterm.v1.ResourceDetails - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 6, // 12: teleport.lib.teleterm.v1.Resource.constraints:type_name -> types.ResourceConstraints + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_teleport_lib_teleterm_v1_access_request_proto_init() } diff --git a/gen/proto/go/teleport/lib/teleterm/v1/app.pb.go b/gen/proto/go/teleport/lib/teleterm/v1/app.pb.go index d6a26b87813ce..9a1614c996241 100644 --- a/gen/proto/go/teleport/lib/teleterm/v1/app.pb.go +++ b/gen/proto/go/teleport/lib/teleterm/v1/app.pb.go @@ -106,8 +106,12 @@ type App struct { // Defines a permission set that is available on an IdentityCenter account app. // Such apps can be recognized by sub_kind == 'aws_ic_account'. PermissionSets []*IdentityCenterPermissionSet `protobuf:"bytes,14,rep,name=permission_sets,json=permissionSets,proto3" json:"permission_sets,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // supported_feature_ids contains component feature IDs supported by this app and all + // other involved components (Auth, Proxy). Used to determine if features like resource + // constraints are available. + SupportedFeatureIds []int32 `protobuf:"varint,15,rep,packed,name=supported_feature_ids,json=supportedFeatureIds,proto3" json:"supported_feature_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *App) Reset() { @@ -238,6 +242,13 @@ func (x *App) GetPermissionSets() []*IdentityCenterPermissionSet { return nil } +func (x *App) GetSupportedFeatureIds() []int32 { + if x != nil { + return x.SupportedFeatureIds + } + return nil +} + // AwsRole describes AWS IAM role. type AWSRole struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -248,9 +259,11 @@ type AWSRole struct { // ARN is the full role ARN. Arn string `protobuf:"bytes,3,opt,name=arn,proto3" json:"arn,omitempty"` // AccountID is the AWS Account ID this role refers to. - AccountId string `protobuf:"bytes,4,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + AccountId string `protobuf:"bytes,4,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` + // RequiresRequest indicates whether this role requires an access request to be used. + RequiresRequest bool `protobuf:"varint,5,opt,name=requires_request,json=requiresRequest,proto3" json:"requires_request,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AWSRole) Reset() { @@ -311,6 +324,13 @@ func (x *AWSRole) GetAccountId() string { return "" } +func (x *AWSRole) GetRequiresRequest() bool { + if x != nil { + return x.RequiresRequest + } + return false +} + // PortRange describes a port range for TCP apps. The range starts with Port and ends with EndPort. // PortRange can be used to describe a single port in which case the Port field is the port and the // EndPort field is 0. @@ -527,7 +547,7 @@ var File_teleport_lib_teleterm_v1_app_proto protoreflect.FileDescriptor const file_teleport_lib_teleterm_v1_app_proto_rawDesc = "" + "\n" + - "\"teleport/lib/teleterm/v1/app.proto\x12\x18teleport.lib.teleterm.v1\x1a$teleport/lib/teleterm/v1/label.proto\"\xae\x04\n" + + "\"teleport/lib/teleterm/v1/app.proto\x12\x18teleport.lib.teleterm.v1\x1a$teleport/lib/teleterm/v1/label.proto\"\xe2\x04\n" + "\x03App\x12\x10\n" + "\x03uri\x18\x01 \x01(\tR\x03uri\x12\x12\n" + "\x04name\x18\x02 \x01(\tR\x04name\x12!\n" + @@ -545,13 +565,15 @@ const file_teleport_lib_teleterm_v1_app_proto_rawDesc = "" + "\taws_roles\x18\v \x03(\v2!.teleport.lib.teleterm.v1.AWSRoleR\bawsRoles\x12@\n" + "\ttcp_ports\x18\f \x03(\v2#.teleport.lib.teleterm.v1.PortRangeR\btcpPorts\x12\x19\n" + "\bsub_kind\x18\r \x01(\tR\asubKind\x12^\n" + - "\x0fpermission_sets\x18\x0e \x03(\v25.teleport.lib.teleterm.v1.IdentityCenterPermissionSetR\x0epermissionSets\"h\n" + + "\x0fpermission_sets\x18\x0e \x03(\v25.teleport.lib.teleterm.v1.IdentityCenterPermissionSetR\x0epermissionSets\x122\n" + + "\x15supported_feature_ids\x18\x0f \x03(\x05R\x13supportedFeatureIds\"\x93\x01\n" + "\aAWSRole\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" + "\adisplay\x18\x02 \x01(\tR\adisplay\x12\x10\n" + "\x03arn\x18\x03 \x01(\tR\x03arn\x12\x1d\n" + "\n" + - "account_id\x18\x04 \x01(\tR\taccountId\":\n" + + "account_id\x18\x04 \x01(\tR\taccountId\x12)\n" + + "\x10requires_request\x18\x05 \x01(\bR\x0frequiresRequest\":\n" + "\tPortRange\x12\x12\n" + "\x04port\x18\x01 \x01(\rR\x04port\x12\x19\n" + "\bend_port\x18\x02 \x01(\rR\aendPort\"\x97\x01\n" + diff --git a/gen/proto/go/teleport/lib/teleterm/v1/service.pb.go b/gen/proto/go/teleport/lib/teleterm/v1/service.pb.go index 7703b7d64d913..d2a25c1b70f21 100644 --- a/gen/proto/go/teleport/lib/teleterm/v1/service.pb.go +++ b/gen/proto/go/teleport/lib/teleterm/v1/service.pb.go @@ -27,6 +27,7 @@ import ( v1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/accesslist/v1" v12 "github.com/gravitational/teleport/api/gen/proto/go/teleport/devicetrust/v1" v11 "github.com/gravitational/teleport/api/gen/proto/go/userpreferences/v1" + types "github.com/gravitational/teleport/api/types" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" @@ -754,9 +755,16 @@ type CreateAccessRequestRequest struct { MaxDuration *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=max_duration,json=maxDuration,proto3" json:"max_duration,omitempty"` // request_ttl is the expiration time of the request (how long it will await // approval). - RequestTtl *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=request_ttl,json=requestTtl,proto3" json:"request_ttl,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + RequestTtl *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=request_ttl,json=requestTtl,proto3" json:"request_ttl,omitempty"` + // resource_access_ids is the set of resources to which access is being requested, + // paired with additional information such as ResourceConstraints. + // Differs from resource_ids, which only identify resources and cannot be used + // to express additional information per-resource such as ResourceConstraints. + // When present, resource_access_ids should be treated as authoritative + // (ResourceIDs can be derived by mapping to ResourceAccessID.id). + ResourceAccessIds []*types.ResourceAccessID `protobuf:"bytes,10,rep,name=resource_access_ids,json=resourceAccessIds,proto3" json:"resource_access_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateAccessRequestRequest) Reset() { @@ -852,6 +860,13 @@ func (x *CreateAccessRequestRequest) GetRequestTtl() *timestamppb.Timestamp { return nil } +func (x *CreateAccessRequestRequest) GetResourceAccessIds() []*types.ResourceAccessID { + if x != nil { + return x.ResourceAccessIds + } + return nil +} + type CreateAccessRequestResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Request *AccessRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"` @@ -4811,7 +4826,7 @@ var File_teleport_lib_teleterm_v1_service_proto protoreflect.FileDescriptor const file_teleport_lib_teleterm_v1_service_proto_rawDesc = "" + "\n" + - "&teleport/lib/teleterm/v1/service.proto\x12\x18teleport.lib.teleterm.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a'teleport/accesslist/v1/accesslist.proto\x1a7teleport/devicetrust/v1/device_confirmation_token.proto\x1a.teleport/devicetrust/v1/device_web_token.proto\x1a-teleport/lib/teleterm/v1/access_request.proto\x1a\"teleport/lib/teleterm/v1/app.proto\x1a,teleport/lib/teleterm/v1/auth_settings.proto\x1a&teleport/lib/teleterm/v1/cluster.proto\x1a'teleport/lib/teleterm/v1/database.proto\x1a&teleport/lib/teleterm/v1/gateway.proto\x1a#teleport/lib/teleterm/v1/kube.proto\x1a%teleport/lib/teleterm/v1/server.proto\x1a+teleport/lib/teleterm/v1/usage_events.proto\x1a.teleport/lib/teleterm/v1/windows_desktop.proto\x1a5teleport/userpreferences/v1/cluster_preferences.proto\x1a>teleport/userpreferences/v1/unified_resource_preferences.proto\"\x0f\n" + + "&teleport/lib/teleterm/v1/service.proto\x12\x18teleport.lib.teleterm.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a'teleport/accesslist/v1/accesslist.proto\x1a7teleport/devicetrust/v1/device_confirmation_token.proto\x1a.teleport/devicetrust/v1/device_web_token.proto\x1a%teleport/legacy/types/resources.proto\x1a-teleport/lib/teleterm/v1/access_request.proto\x1a\"teleport/lib/teleterm/v1/app.proto\x1a,teleport/lib/teleterm/v1/auth_settings.proto\x1a&teleport/lib/teleterm/v1/cluster.proto\x1a'teleport/lib/teleterm/v1/database.proto\x1a&teleport/lib/teleterm/v1/gateway.proto\x1a#teleport/lib/teleterm/v1/kube.proto\x1a%teleport/lib/teleterm/v1/server.proto\x1a+teleport/lib/teleterm/v1/usage_events.proto\x1a.teleport/lib/teleterm/v1/windows_desktop.proto\x1a5teleport/userpreferences/v1/cluster_preferences.proto\x1a>teleport/userpreferences/v1/unified_resource_preferences.proto\"\x0f\n" + "\rEmptyResponse\"4\n" + "\x11GetClusterRequest\x12\x1f\n" + "\vcluster_uri\x18\x01 \x01(\tR\n" + @@ -4839,7 +4854,7 @@ const file_teleport_lib_teleterm_v1_service_proto_rawDesc = "" + "\brequests\x18\x01 \x03(\v2'.teleport.lib.teleterm.v1.AccessRequestR\brequests\"r\n" + "\x1aDeleteAccessRequestRequest\x12(\n" + "\x10root_cluster_uri\x18\x01 \x01(\tR\x0erootClusterUri\x12*\n" + - "\x11access_request_id\x18\x02 \x01(\tR\x0faccessRequestId\"\xcb\x03\n" + + "\x11access_request_id\x18\x02 \x01(\tR\x0faccessRequestId\"\x94\x04\n" + "\x1aCreateAccessRequestRequest\x12(\n" + "\x10root_cluster_uri\x18\x01 \x01(\tR\x0erootClusterUri\x12\x16\n" + "\x06reason\x18\x02 \x01(\tR\x06reason\x12\x14\n" + @@ -4850,7 +4865,9 @@ const file_teleport_lib_teleterm_v1_service_proto_rawDesc = "" + "\adry_run\x18\a \x01(\bR\x06dryRun\x12=\n" + "\fmax_duration\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\vmaxDuration\x12;\n" + "\vrequest_ttl\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\n" + - "requestTtl\"`\n" + + "requestTtl\x12G\n" + + "\x13resource_access_ids\x18\n" + + " \x03(\v2\x17.types.ResourceAccessIDR\x11resourceAccessIds\"`\n" + "\x1bCreateAccessRequestResponse\x12A\n" + "\arequest\x18\x01 \x01(\v2'.teleport.lib.teleterm.v1.AccessRequestR\arequest\"\x95\x01\n" + "\x11AssumeRoleRequest\x12(\n" + @@ -5265,23 +5282,24 @@ var file_teleport_lib_teleterm_v1_service_proto_goTypes = []any{ (*AccessRequest)(nil), // 89: teleport.lib.teleterm.v1.AccessRequest (*ResourceID)(nil), // 90: teleport.lib.teleterm.v1.ResourceID (*timestamppb.Timestamp)(nil), // 91: google.protobuf.Timestamp - (*v1.AccessList)(nil), // 92: teleport.accesslist.v1.AccessList - (*KubeResource)(nil), // 93: teleport.lib.teleterm.v1.KubeResource - (*KubeServer)(nil), // 94: teleport.lib.teleterm.v1.KubeServer - (*Cluster)(nil), // 95: teleport.lib.teleterm.v1.Cluster - (*DatabaseServer)(nil), // 96: teleport.lib.teleterm.v1.DatabaseServer - (*Gateway)(nil), // 97: teleport.lib.teleterm.v1.Gateway - (*Server)(nil), // 98: teleport.lib.teleterm.v1.Server - (*Database)(nil), // 99: teleport.lib.teleterm.v1.Database - (*Kube)(nil), // 100: teleport.lib.teleterm.v1.Kube - (*App)(nil), // 101: teleport.lib.teleterm.v1.App - (*WindowsDesktop)(nil), // 102: teleport.lib.teleterm.v1.WindowsDesktop - (*v11.ClusterUserPreferences)(nil), // 103: teleport.userpreferences.v1.ClusterUserPreferences - (*v11.UnifiedResourcePreferences)(nil), // 104: teleport.userpreferences.v1.UnifiedResourcePreferences - (*v12.DeviceWebToken)(nil), // 105: teleport.devicetrust.v1.DeviceWebToken - (*v12.DeviceConfirmationToken)(nil), // 106: teleport.devicetrust.v1.DeviceConfirmationToken - (*ReportUsageEventRequest)(nil), // 107: teleport.lib.teleterm.v1.ReportUsageEventRequest - (*AuthSettings)(nil), // 108: teleport.lib.teleterm.v1.AuthSettings + (*types.ResourceAccessID)(nil), // 92: types.ResourceAccessID + (*v1.AccessList)(nil), // 93: teleport.accesslist.v1.AccessList + (*KubeResource)(nil), // 94: teleport.lib.teleterm.v1.KubeResource + (*KubeServer)(nil), // 95: teleport.lib.teleterm.v1.KubeServer + (*Cluster)(nil), // 96: teleport.lib.teleterm.v1.Cluster + (*DatabaseServer)(nil), // 97: teleport.lib.teleterm.v1.DatabaseServer + (*Gateway)(nil), // 98: teleport.lib.teleterm.v1.Gateway + (*Server)(nil), // 99: teleport.lib.teleterm.v1.Server + (*Database)(nil), // 100: teleport.lib.teleterm.v1.Database + (*Kube)(nil), // 101: teleport.lib.teleterm.v1.Kube + (*App)(nil), // 102: teleport.lib.teleterm.v1.App + (*WindowsDesktop)(nil), // 103: teleport.lib.teleterm.v1.WindowsDesktop + (*v11.ClusterUserPreferences)(nil), // 104: teleport.userpreferences.v1.ClusterUserPreferences + (*v11.UnifiedResourcePreferences)(nil), // 105: teleport.userpreferences.v1.UnifiedResourcePreferences + (*v12.DeviceWebToken)(nil), // 106: teleport.devicetrust.v1.DeviceWebToken + (*v12.DeviceConfirmationToken)(nil), // 107: teleport.devicetrust.v1.DeviceConfirmationToken + (*ReportUsageEventRequest)(nil), // 108: teleport.lib.teleterm.v1.ReportUsageEventRequest + (*AuthSettings)(nil), // 109: teleport.lib.teleterm.v1.AuthSettings } var file_teleport_lib_teleterm_v1_service_proto_depIdxs = []int32{ 89, // 0: teleport.lib.teleterm.v1.GetAccessRequestResponse.request:type_name -> teleport.lib.teleterm.v1.AccessRequest @@ -5290,138 +5308,139 @@ var file_teleport_lib_teleterm_v1_service_proto_depIdxs = []int32{ 91, // 3: teleport.lib.teleterm.v1.CreateAccessRequestRequest.assume_start_time:type_name -> google.protobuf.Timestamp 91, // 4: teleport.lib.teleterm.v1.CreateAccessRequestRequest.max_duration:type_name -> google.protobuf.Timestamp 91, // 5: teleport.lib.teleterm.v1.CreateAccessRequestRequest.request_ttl:type_name -> google.protobuf.Timestamp - 89, // 6: teleport.lib.teleterm.v1.CreateAccessRequestResponse.request:type_name -> teleport.lib.teleterm.v1.AccessRequest - 90, // 7: teleport.lib.teleterm.v1.GetRequestableRolesRequest.resource_ids:type_name -> teleport.lib.teleterm.v1.ResourceID - 91, // 8: teleport.lib.teleterm.v1.ReviewAccessRequestRequest.assume_start_time:type_name -> google.protobuf.Timestamp - 89, // 9: teleport.lib.teleterm.v1.ReviewAccessRequestResponse.request:type_name -> teleport.lib.teleterm.v1.AccessRequest - 89, // 10: teleport.lib.teleterm.v1.PromoteAccessRequestResponse.request:type_name -> teleport.lib.teleterm.v1.AccessRequest - 92, // 11: teleport.lib.teleterm.v1.GetSuggestedAccessListsResponse.access_lists:type_name -> teleport.accesslist.v1.AccessList - 93, // 12: teleport.lib.teleterm.v1.ListKubernetesResourcesResponse.resources:type_name -> teleport.lib.teleterm.v1.KubeResource - 42, // 13: teleport.lib.teleterm.v1.ListKubernetesServersRequest.params:type_name -> teleport.lib.teleterm.v1.ListResourcesParams - 94, // 14: teleport.lib.teleterm.v1.ListKubernetesServersResponse.resources:type_name -> teleport.lib.teleterm.v1.KubeServer - 0, // 15: teleport.lib.teleterm.v1.LoginPasswordlessResponse.prompt:type_name -> teleport.lib.teleterm.v1.PasswordlessPrompt - 30, // 16: teleport.lib.teleterm.v1.LoginPasswordlessResponse.credentials:type_name -> teleport.lib.teleterm.v1.CredentialInfo - 84, // 17: teleport.lib.teleterm.v1.LoginPasswordlessRequest.init:type_name -> teleport.lib.teleterm.v1.LoginPasswordlessRequest.LoginPasswordlessRequestInit - 85, // 18: teleport.lib.teleterm.v1.LoginPasswordlessRequest.pin:type_name -> teleport.lib.teleterm.v1.LoginPasswordlessRequest.LoginPasswordlessPINResponse - 86, // 19: teleport.lib.teleterm.v1.LoginPasswordlessRequest.credential:type_name -> teleport.lib.teleterm.v1.LoginPasswordlessRequest.LoginPasswordlessCredentialResponse - 1, // 20: teleport.lib.teleterm.v1.FileTransferRequest.direction:type_name -> teleport.lib.teleterm.v1.FileTransferDirection - 87, // 21: teleport.lib.teleterm.v1.LoginRequest.local:type_name -> teleport.lib.teleterm.v1.LoginRequest.LocalParams - 88, // 22: teleport.lib.teleterm.v1.LoginRequest.sso:type_name -> teleport.lib.teleterm.v1.LoginRequest.SsoParams - 95, // 23: teleport.lib.teleterm.v1.ListClustersResponse.clusters:type_name -> teleport.lib.teleterm.v1.Cluster - 42, // 24: teleport.lib.teleterm.v1.ListDatabaseServersRequest.params:type_name -> teleport.lib.teleterm.v1.ListResourcesParams - 96, // 25: teleport.lib.teleterm.v1.ListDatabaseServersResponse.resources:type_name -> teleport.lib.teleterm.v1.DatabaseServer - 97, // 26: teleport.lib.teleterm.v1.ListGatewaysResponse.gateways:type_name -> teleport.lib.teleterm.v1.Gateway - 2, // 27: teleport.lib.teleterm.v1.UpdateHeadlessAuthenticationStateRequest.state:type_name -> teleport.lib.teleterm.v1.HeadlessAuthenticationState - 98, // 28: teleport.lib.teleterm.v1.WaitForConnectMyComputerNodeJoinResponse.server:type_name -> teleport.lib.teleterm.v1.Server - 67, // 29: teleport.lib.teleterm.v1.ListUnifiedResourcesRequest.sort_by:type_name -> teleport.lib.teleterm.v1.SortBy - 69, // 30: teleport.lib.teleterm.v1.ListUnifiedResourcesResponse.resources:type_name -> teleport.lib.teleterm.v1.PaginatedResource - 99, // 31: teleport.lib.teleterm.v1.PaginatedResource.database:type_name -> teleport.lib.teleterm.v1.Database - 98, // 32: teleport.lib.teleterm.v1.PaginatedResource.server:type_name -> teleport.lib.teleterm.v1.Server - 100, // 33: teleport.lib.teleterm.v1.PaginatedResource.kube:type_name -> teleport.lib.teleterm.v1.Kube - 101, // 34: teleport.lib.teleterm.v1.PaginatedResource.app:type_name -> teleport.lib.teleterm.v1.App - 102, // 35: teleport.lib.teleterm.v1.PaginatedResource.windows_desktop:type_name -> teleport.lib.teleterm.v1.WindowsDesktop - 74, // 36: teleport.lib.teleterm.v1.GetUserPreferencesResponse.user_preferences:type_name -> teleport.lib.teleterm.v1.UserPreferences - 74, // 37: teleport.lib.teleterm.v1.UpdateUserPreferencesRequest.user_preferences:type_name -> teleport.lib.teleterm.v1.UserPreferences - 74, // 38: teleport.lib.teleterm.v1.UpdateUserPreferencesResponse.user_preferences:type_name -> teleport.lib.teleterm.v1.UserPreferences - 103, // 39: teleport.lib.teleterm.v1.UserPreferences.cluster_preferences:type_name -> teleport.userpreferences.v1.ClusterUserPreferences - 104, // 40: teleport.lib.teleterm.v1.UserPreferences.unified_resource_preferences:type_name -> teleport.userpreferences.v1.UnifiedResourcePreferences - 105, // 41: teleport.lib.teleterm.v1.AuthenticateWebDeviceRequest.device_web_token:type_name -> teleport.devicetrust.v1.DeviceWebToken - 106, // 42: teleport.lib.teleterm.v1.AuthenticateWebDeviceResponse.confirmation_token:type_name -> teleport.devicetrust.v1.DeviceConfirmationToken - 101, // 43: teleport.lib.teleterm.v1.GetAppResponse.app:type_name -> teleport.lib.teleterm.v1.App - 79, // 44: teleport.lib.teleterm.v1.ConnectToDesktopRequest.target_desktop:type_name -> teleport.lib.teleterm.v1.TargetDesktop - 52, // 45: teleport.lib.teleterm.v1.TerminalService.UpdateTshdEventsServerAddress:input_type -> teleport.lib.teleterm.v1.UpdateTshdEventsServerAddressRequest - 37, // 46: teleport.lib.teleterm.v1.TerminalService.ListRootClusters:input_type -> teleport.lib.teleterm.v1.ListClustersRequest - 39, // 47: teleport.lib.teleterm.v1.TerminalService.ListLeafClusters:input_type -> teleport.lib.teleterm.v1.ListLeafClustersRequest - 8, // 48: teleport.lib.teleterm.v1.TerminalService.StartHeadlessWatcher:input_type -> teleport.lib.teleterm.v1.StartHeadlessWatcherRequest - 40, // 49: teleport.lib.teleterm.v1.TerminalService.ListDatabaseUsers:input_type -> teleport.lib.teleterm.v1.ListDatabaseUsersRequest - 43, // 50: teleport.lib.teleterm.v1.TerminalService.ListDatabaseServers:input_type -> teleport.lib.teleterm.v1.ListDatabaseServersRequest - 11, // 51: teleport.lib.teleterm.v1.TerminalService.GetAccessRequests:input_type -> teleport.lib.teleterm.v1.GetAccessRequestsRequest - 10, // 52: teleport.lib.teleterm.v1.TerminalService.GetAccessRequest:input_type -> teleport.lib.teleterm.v1.GetAccessRequestRequest - 14, // 53: teleport.lib.teleterm.v1.TerminalService.DeleteAccessRequest:input_type -> teleport.lib.teleterm.v1.DeleteAccessRequestRequest - 15, // 54: teleport.lib.teleterm.v1.TerminalService.CreateAccessRequest:input_type -> teleport.lib.teleterm.v1.CreateAccessRequestRequest - 20, // 55: teleport.lib.teleterm.v1.TerminalService.ReviewAccessRequest:input_type -> teleport.lib.teleterm.v1.ReviewAccessRequestRequest - 18, // 56: teleport.lib.teleterm.v1.TerminalService.GetRequestableRoles:input_type -> teleport.lib.teleterm.v1.GetRequestableRolesRequest - 17, // 57: teleport.lib.teleterm.v1.TerminalService.AssumeRole:input_type -> teleport.lib.teleterm.v1.AssumeRoleRequest - 22, // 58: teleport.lib.teleterm.v1.TerminalService.PromoteAccessRequest:input_type -> teleport.lib.teleterm.v1.PromoteAccessRequestRequest - 24, // 59: teleport.lib.teleterm.v1.TerminalService.GetSuggestedAccessLists:input_type -> teleport.lib.teleterm.v1.GetSuggestedAccessListsRequest - 26, // 60: teleport.lib.teleterm.v1.TerminalService.ListKubernetesResources:input_type -> teleport.lib.teleterm.v1.ListKubernetesResourcesRequest - 28, // 61: teleport.lib.teleterm.v1.TerminalService.ListKubernetesServers:input_type -> teleport.lib.teleterm.v1.ListKubernetesServersRequest - 36, // 62: teleport.lib.teleterm.v1.TerminalService.AddCluster:input_type -> teleport.lib.teleterm.v1.AddClusterRequest - 46, // 63: teleport.lib.teleterm.v1.TerminalService.ListGateways:input_type -> teleport.lib.teleterm.v1.ListGatewaysRequest - 45, // 64: teleport.lib.teleterm.v1.TerminalService.CreateGateway:input_type -> teleport.lib.teleterm.v1.CreateGatewayRequest - 48, // 65: teleport.lib.teleterm.v1.TerminalService.RemoveGateway:input_type -> teleport.lib.teleterm.v1.RemoveGatewayRequest - 49, // 66: teleport.lib.teleterm.v1.TerminalService.SetGatewayTargetSubresourceName:input_type -> teleport.lib.teleterm.v1.SetGatewayTargetSubresourceNameRequest - 50, // 67: teleport.lib.teleterm.v1.TerminalService.SetGatewayLocalPort:input_type -> teleport.lib.teleterm.v1.SetGatewayLocalPortRequest - 51, // 68: teleport.lib.teleterm.v1.TerminalService.GetAuthSettings:input_type -> teleport.lib.teleterm.v1.GetAuthSettingsRequest - 4, // 69: teleport.lib.teleterm.v1.TerminalService.GetCluster:input_type -> teleport.lib.teleterm.v1.GetClusterRequest - 35, // 70: teleport.lib.teleterm.v1.TerminalService.Login:input_type -> teleport.lib.teleterm.v1.LoginRequest - 32, // 71: teleport.lib.teleterm.v1.TerminalService.LoginPasswordless:input_type -> teleport.lib.teleterm.v1.LoginPasswordlessRequest - 5, // 72: teleport.lib.teleterm.v1.TerminalService.Logout:input_type -> teleport.lib.teleterm.v1.LogoutRequest - 6, // 73: teleport.lib.teleterm.v1.TerminalService.ClearStaleClusterClients:input_type -> teleport.lib.teleterm.v1.ClearStaleClusterClientsRequest - 33, // 74: teleport.lib.teleterm.v1.TerminalService.TransferFile:input_type -> teleport.lib.teleterm.v1.FileTransferRequest - 107, // 75: teleport.lib.teleterm.v1.TerminalService.ReportUsageEvent:input_type -> teleport.lib.teleterm.v1.ReportUsageEventRequest - 54, // 76: teleport.lib.teleterm.v1.TerminalService.UpdateHeadlessAuthenticationState:input_type -> teleport.lib.teleterm.v1.UpdateHeadlessAuthenticationStateRequest - 56, // 77: teleport.lib.teleterm.v1.TerminalService.CreateConnectMyComputerRole:input_type -> teleport.lib.teleterm.v1.CreateConnectMyComputerRoleRequest - 58, // 78: teleport.lib.teleterm.v1.TerminalService.CreateConnectMyComputerNodeToken:input_type -> teleport.lib.teleterm.v1.CreateConnectMyComputerNodeTokenRequest - 60, // 79: teleport.lib.teleterm.v1.TerminalService.WaitForConnectMyComputerNodeJoin:input_type -> teleport.lib.teleterm.v1.WaitForConnectMyComputerNodeJoinRequest - 62, // 80: teleport.lib.teleterm.v1.TerminalService.DeleteConnectMyComputerNode:input_type -> teleport.lib.teleterm.v1.DeleteConnectMyComputerNodeRequest - 64, // 81: teleport.lib.teleterm.v1.TerminalService.GetConnectMyComputerNodeName:input_type -> teleport.lib.teleterm.v1.GetConnectMyComputerNodeNameRequest - 66, // 82: teleport.lib.teleterm.v1.TerminalService.ListUnifiedResources:input_type -> teleport.lib.teleterm.v1.ListUnifiedResourcesRequest - 70, // 83: teleport.lib.teleterm.v1.TerminalService.GetUserPreferences:input_type -> teleport.lib.teleterm.v1.GetUserPreferencesRequest - 72, // 84: teleport.lib.teleterm.v1.TerminalService.UpdateUserPreferences:input_type -> teleport.lib.teleterm.v1.UpdateUserPreferencesRequest - 75, // 85: teleport.lib.teleterm.v1.TerminalService.AuthenticateWebDevice:input_type -> teleport.lib.teleterm.v1.AuthenticateWebDeviceRequest - 77, // 86: teleport.lib.teleterm.v1.TerminalService.GetApp:input_type -> teleport.lib.teleterm.v1.GetAppRequest - 80, // 87: teleport.lib.teleterm.v1.TerminalService.ConnectToDesktop:input_type -> teleport.lib.teleterm.v1.ConnectToDesktopRequest - 82, // 88: teleport.lib.teleterm.v1.TerminalService.SetSharedDirectoryForDesktopSession:input_type -> teleport.lib.teleterm.v1.SetSharedDirectoryForDesktopSessionRequest - 53, // 89: teleport.lib.teleterm.v1.TerminalService.UpdateTshdEventsServerAddress:output_type -> teleport.lib.teleterm.v1.UpdateTshdEventsServerAddressResponse - 38, // 90: teleport.lib.teleterm.v1.TerminalService.ListRootClusters:output_type -> teleport.lib.teleterm.v1.ListClustersResponse - 38, // 91: teleport.lib.teleterm.v1.TerminalService.ListLeafClusters:output_type -> teleport.lib.teleterm.v1.ListClustersResponse - 9, // 92: teleport.lib.teleterm.v1.TerminalService.StartHeadlessWatcher:output_type -> teleport.lib.teleterm.v1.StartHeadlessWatcherResponse - 41, // 93: teleport.lib.teleterm.v1.TerminalService.ListDatabaseUsers:output_type -> teleport.lib.teleterm.v1.ListDatabaseUsersResponse - 44, // 94: teleport.lib.teleterm.v1.TerminalService.ListDatabaseServers:output_type -> teleport.lib.teleterm.v1.ListDatabaseServersResponse - 13, // 95: teleport.lib.teleterm.v1.TerminalService.GetAccessRequests:output_type -> teleport.lib.teleterm.v1.GetAccessRequestsResponse - 12, // 96: teleport.lib.teleterm.v1.TerminalService.GetAccessRequest:output_type -> teleport.lib.teleterm.v1.GetAccessRequestResponse - 3, // 97: teleport.lib.teleterm.v1.TerminalService.DeleteAccessRequest:output_type -> teleport.lib.teleterm.v1.EmptyResponse - 16, // 98: teleport.lib.teleterm.v1.TerminalService.CreateAccessRequest:output_type -> teleport.lib.teleterm.v1.CreateAccessRequestResponse - 21, // 99: teleport.lib.teleterm.v1.TerminalService.ReviewAccessRequest:output_type -> teleport.lib.teleterm.v1.ReviewAccessRequestResponse - 19, // 100: teleport.lib.teleterm.v1.TerminalService.GetRequestableRoles:output_type -> teleport.lib.teleterm.v1.GetRequestableRolesResponse - 3, // 101: teleport.lib.teleterm.v1.TerminalService.AssumeRole:output_type -> teleport.lib.teleterm.v1.EmptyResponse - 23, // 102: teleport.lib.teleterm.v1.TerminalService.PromoteAccessRequest:output_type -> teleport.lib.teleterm.v1.PromoteAccessRequestResponse - 25, // 103: teleport.lib.teleterm.v1.TerminalService.GetSuggestedAccessLists:output_type -> teleport.lib.teleterm.v1.GetSuggestedAccessListsResponse - 27, // 104: teleport.lib.teleterm.v1.TerminalService.ListKubernetesResources:output_type -> teleport.lib.teleterm.v1.ListKubernetesResourcesResponse - 29, // 105: teleport.lib.teleterm.v1.TerminalService.ListKubernetesServers:output_type -> teleport.lib.teleterm.v1.ListKubernetesServersResponse - 95, // 106: teleport.lib.teleterm.v1.TerminalService.AddCluster:output_type -> teleport.lib.teleterm.v1.Cluster - 47, // 107: teleport.lib.teleterm.v1.TerminalService.ListGateways:output_type -> teleport.lib.teleterm.v1.ListGatewaysResponse - 97, // 108: teleport.lib.teleterm.v1.TerminalService.CreateGateway:output_type -> teleport.lib.teleterm.v1.Gateway - 3, // 109: teleport.lib.teleterm.v1.TerminalService.RemoveGateway:output_type -> teleport.lib.teleterm.v1.EmptyResponse - 97, // 110: teleport.lib.teleterm.v1.TerminalService.SetGatewayTargetSubresourceName:output_type -> teleport.lib.teleterm.v1.Gateway - 97, // 111: teleport.lib.teleterm.v1.TerminalService.SetGatewayLocalPort:output_type -> teleport.lib.teleterm.v1.Gateway - 108, // 112: teleport.lib.teleterm.v1.TerminalService.GetAuthSettings:output_type -> teleport.lib.teleterm.v1.AuthSettings - 95, // 113: teleport.lib.teleterm.v1.TerminalService.GetCluster:output_type -> teleport.lib.teleterm.v1.Cluster - 3, // 114: teleport.lib.teleterm.v1.TerminalService.Login:output_type -> teleport.lib.teleterm.v1.EmptyResponse - 31, // 115: teleport.lib.teleterm.v1.TerminalService.LoginPasswordless:output_type -> teleport.lib.teleterm.v1.LoginPasswordlessResponse - 3, // 116: teleport.lib.teleterm.v1.TerminalService.Logout:output_type -> teleport.lib.teleterm.v1.EmptyResponse - 7, // 117: teleport.lib.teleterm.v1.TerminalService.ClearStaleClusterClients:output_type -> teleport.lib.teleterm.v1.ClearStaleClusterClientsResponse - 34, // 118: teleport.lib.teleterm.v1.TerminalService.TransferFile:output_type -> teleport.lib.teleterm.v1.FileTransferProgress - 3, // 119: teleport.lib.teleterm.v1.TerminalService.ReportUsageEvent:output_type -> teleport.lib.teleterm.v1.EmptyResponse - 55, // 120: teleport.lib.teleterm.v1.TerminalService.UpdateHeadlessAuthenticationState:output_type -> teleport.lib.teleterm.v1.UpdateHeadlessAuthenticationStateResponse - 57, // 121: teleport.lib.teleterm.v1.TerminalService.CreateConnectMyComputerRole:output_type -> teleport.lib.teleterm.v1.CreateConnectMyComputerRoleResponse - 59, // 122: teleport.lib.teleterm.v1.TerminalService.CreateConnectMyComputerNodeToken:output_type -> teleport.lib.teleterm.v1.CreateConnectMyComputerNodeTokenResponse - 61, // 123: teleport.lib.teleterm.v1.TerminalService.WaitForConnectMyComputerNodeJoin:output_type -> teleport.lib.teleterm.v1.WaitForConnectMyComputerNodeJoinResponse - 63, // 124: teleport.lib.teleterm.v1.TerminalService.DeleteConnectMyComputerNode:output_type -> teleport.lib.teleterm.v1.DeleteConnectMyComputerNodeResponse - 65, // 125: teleport.lib.teleterm.v1.TerminalService.GetConnectMyComputerNodeName:output_type -> teleport.lib.teleterm.v1.GetConnectMyComputerNodeNameResponse - 68, // 126: teleport.lib.teleterm.v1.TerminalService.ListUnifiedResources:output_type -> teleport.lib.teleterm.v1.ListUnifiedResourcesResponse - 71, // 127: teleport.lib.teleterm.v1.TerminalService.GetUserPreferences:output_type -> teleport.lib.teleterm.v1.GetUserPreferencesResponse - 73, // 128: teleport.lib.teleterm.v1.TerminalService.UpdateUserPreferences:output_type -> teleport.lib.teleterm.v1.UpdateUserPreferencesResponse - 76, // 129: teleport.lib.teleterm.v1.TerminalService.AuthenticateWebDevice:output_type -> teleport.lib.teleterm.v1.AuthenticateWebDeviceResponse - 78, // 130: teleport.lib.teleterm.v1.TerminalService.GetApp:output_type -> teleport.lib.teleterm.v1.GetAppResponse - 81, // 131: teleport.lib.teleterm.v1.TerminalService.ConnectToDesktop:output_type -> teleport.lib.teleterm.v1.ConnectToDesktopResponse - 83, // 132: teleport.lib.teleterm.v1.TerminalService.SetSharedDirectoryForDesktopSession:output_type -> teleport.lib.teleterm.v1.SetSharedDirectoryForDesktopSessionResponse - 89, // [89:133] is the sub-list for method output_type - 45, // [45:89] is the sub-list for method input_type - 45, // [45:45] is the sub-list for extension type_name - 45, // [45:45] is the sub-list for extension extendee - 0, // [0:45] is the sub-list for field type_name + 92, // 6: teleport.lib.teleterm.v1.CreateAccessRequestRequest.resource_access_ids:type_name -> types.ResourceAccessID + 89, // 7: teleport.lib.teleterm.v1.CreateAccessRequestResponse.request:type_name -> teleport.lib.teleterm.v1.AccessRequest + 90, // 8: teleport.lib.teleterm.v1.GetRequestableRolesRequest.resource_ids:type_name -> teleport.lib.teleterm.v1.ResourceID + 91, // 9: teleport.lib.teleterm.v1.ReviewAccessRequestRequest.assume_start_time:type_name -> google.protobuf.Timestamp + 89, // 10: teleport.lib.teleterm.v1.ReviewAccessRequestResponse.request:type_name -> teleport.lib.teleterm.v1.AccessRequest + 89, // 11: teleport.lib.teleterm.v1.PromoteAccessRequestResponse.request:type_name -> teleport.lib.teleterm.v1.AccessRequest + 93, // 12: teleport.lib.teleterm.v1.GetSuggestedAccessListsResponse.access_lists:type_name -> teleport.accesslist.v1.AccessList + 94, // 13: teleport.lib.teleterm.v1.ListKubernetesResourcesResponse.resources:type_name -> teleport.lib.teleterm.v1.KubeResource + 42, // 14: teleport.lib.teleterm.v1.ListKubernetesServersRequest.params:type_name -> teleport.lib.teleterm.v1.ListResourcesParams + 95, // 15: teleport.lib.teleterm.v1.ListKubernetesServersResponse.resources:type_name -> teleport.lib.teleterm.v1.KubeServer + 0, // 16: teleport.lib.teleterm.v1.LoginPasswordlessResponse.prompt:type_name -> teleport.lib.teleterm.v1.PasswordlessPrompt + 30, // 17: teleport.lib.teleterm.v1.LoginPasswordlessResponse.credentials:type_name -> teleport.lib.teleterm.v1.CredentialInfo + 84, // 18: teleport.lib.teleterm.v1.LoginPasswordlessRequest.init:type_name -> teleport.lib.teleterm.v1.LoginPasswordlessRequest.LoginPasswordlessRequestInit + 85, // 19: teleport.lib.teleterm.v1.LoginPasswordlessRequest.pin:type_name -> teleport.lib.teleterm.v1.LoginPasswordlessRequest.LoginPasswordlessPINResponse + 86, // 20: teleport.lib.teleterm.v1.LoginPasswordlessRequest.credential:type_name -> teleport.lib.teleterm.v1.LoginPasswordlessRequest.LoginPasswordlessCredentialResponse + 1, // 21: teleport.lib.teleterm.v1.FileTransferRequest.direction:type_name -> teleport.lib.teleterm.v1.FileTransferDirection + 87, // 22: teleport.lib.teleterm.v1.LoginRequest.local:type_name -> teleport.lib.teleterm.v1.LoginRequest.LocalParams + 88, // 23: teleport.lib.teleterm.v1.LoginRequest.sso:type_name -> teleport.lib.teleterm.v1.LoginRequest.SsoParams + 96, // 24: teleport.lib.teleterm.v1.ListClustersResponse.clusters:type_name -> teleport.lib.teleterm.v1.Cluster + 42, // 25: teleport.lib.teleterm.v1.ListDatabaseServersRequest.params:type_name -> teleport.lib.teleterm.v1.ListResourcesParams + 97, // 26: teleport.lib.teleterm.v1.ListDatabaseServersResponse.resources:type_name -> teleport.lib.teleterm.v1.DatabaseServer + 98, // 27: teleport.lib.teleterm.v1.ListGatewaysResponse.gateways:type_name -> teleport.lib.teleterm.v1.Gateway + 2, // 28: teleport.lib.teleterm.v1.UpdateHeadlessAuthenticationStateRequest.state:type_name -> teleport.lib.teleterm.v1.HeadlessAuthenticationState + 99, // 29: teleport.lib.teleterm.v1.WaitForConnectMyComputerNodeJoinResponse.server:type_name -> teleport.lib.teleterm.v1.Server + 67, // 30: teleport.lib.teleterm.v1.ListUnifiedResourcesRequest.sort_by:type_name -> teleport.lib.teleterm.v1.SortBy + 69, // 31: teleport.lib.teleterm.v1.ListUnifiedResourcesResponse.resources:type_name -> teleport.lib.teleterm.v1.PaginatedResource + 100, // 32: teleport.lib.teleterm.v1.PaginatedResource.database:type_name -> teleport.lib.teleterm.v1.Database + 99, // 33: teleport.lib.teleterm.v1.PaginatedResource.server:type_name -> teleport.lib.teleterm.v1.Server + 101, // 34: teleport.lib.teleterm.v1.PaginatedResource.kube:type_name -> teleport.lib.teleterm.v1.Kube + 102, // 35: teleport.lib.teleterm.v1.PaginatedResource.app:type_name -> teleport.lib.teleterm.v1.App + 103, // 36: teleport.lib.teleterm.v1.PaginatedResource.windows_desktop:type_name -> teleport.lib.teleterm.v1.WindowsDesktop + 74, // 37: teleport.lib.teleterm.v1.GetUserPreferencesResponse.user_preferences:type_name -> teleport.lib.teleterm.v1.UserPreferences + 74, // 38: teleport.lib.teleterm.v1.UpdateUserPreferencesRequest.user_preferences:type_name -> teleport.lib.teleterm.v1.UserPreferences + 74, // 39: teleport.lib.teleterm.v1.UpdateUserPreferencesResponse.user_preferences:type_name -> teleport.lib.teleterm.v1.UserPreferences + 104, // 40: teleport.lib.teleterm.v1.UserPreferences.cluster_preferences:type_name -> teleport.userpreferences.v1.ClusterUserPreferences + 105, // 41: teleport.lib.teleterm.v1.UserPreferences.unified_resource_preferences:type_name -> teleport.userpreferences.v1.UnifiedResourcePreferences + 106, // 42: teleport.lib.teleterm.v1.AuthenticateWebDeviceRequest.device_web_token:type_name -> teleport.devicetrust.v1.DeviceWebToken + 107, // 43: teleport.lib.teleterm.v1.AuthenticateWebDeviceResponse.confirmation_token:type_name -> teleport.devicetrust.v1.DeviceConfirmationToken + 102, // 44: teleport.lib.teleterm.v1.GetAppResponse.app:type_name -> teleport.lib.teleterm.v1.App + 79, // 45: teleport.lib.teleterm.v1.ConnectToDesktopRequest.target_desktop:type_name -> teleport.lib.teleterm.v1.TargetDesktop + 52, // 46: teleport.lib.teleterm.v1.TerminalService.UpdateTshdEventsServerAddress:input_type -> teleport.lib.teleterm.v1.UpdateTshdEventsServerAddressRequest + 37, // 47: teleport.lib.teleterm.v1.TerminalService.ListRootClusters:input_type -> teleport.lib.teleterm.v1.ListClustersRequest + 39, // 48: teleport.lib.teleterm.v1.TerminalService.ListLeafClusters:input_type -> teleport.lib.teleterm.v1.ListLeafClustersRequest + 8, // 49: teleport.lib.teleterm.v1.TerminalService.StartHeadlessWatcher:input_type -> teleport.lib.teleterm.v1.StartHeadlessWatcherRequest + 40, // 50: teleport.lib.teleterm.v1.TerminalService.ListDatabaseUsers:input_type -> teleport.lib.teleterm.v1.ListDatabaseUsersRequest + 43, // 51: teleport.lib.teleterm.v1.TerminalService.ListDatabaseServers:input_type -> teleport.lib.teleterm.v1.ListDatabaseServersRequest + 11, // 52: teleport.lib.teleterm.v1.TerminalService.GetAccessRequests:input_type -> teleport.lib.teleterm.v1.GetAccessRequestsRequest + 10, // 53: teleport.lib.teleterm.v1.TerminalService.GetAccessRequest:input_type -> teleport.lib.teleterm.v1.GetAccessRequestRequest + 14, // 54: teleport.lib.teleterm.v1.TerminalService.DeleteAccessRequest:input_type -> teleport.lib.teleterm.v1.DeleteAccessRequestRequest + 15, // 55: teleport.lib.teleterm.v1.TerminalService.CreateAccessRequest:input_type -> teleport.lib.teleterm.v1.CreateAccessRequestRequest + 20, // 56: teleport.lib.teleterm.v1.TerminalService.ReviewAccessRequest:input_type -> teleport.lib.teleterm.v1.ReviewAccessRequestRequest + 18, // 57: teleport.lib.teleterm.v1.TerminalService.GetRequestableRoles:input_type -> teleport.lib.teleterm.v1.GetRequestableRolesRequest + 17, // 58: teleport.lib.teleterm.v1.TerminalService.AssumeRole:input_type -> teleport.lib.teleterm.v1.AssumeRoleRequest + 22, // 59: teleport.lib.teleterm.v1.TerminalService.PromoteAccessRequest:input_type -> teleport.lib.teleterm.v1.PromoteAccessRequestRequest + 24, // 60: teleport.lib.teleterm.v1.TerminalService.GetSuggestedAccessLists:input_type -> teleport.lib.teleterm.v1.GetSuggestedAccessListsRequest + 26, // 61: teleport.lib.teleterm.v1.TerminalService.ListKubernetesResources:input_type -> teleport.lib.teleterm.v1.ListKubernetesResourcesRequest + 28, // 62: teleport.lib.teleterm.v1.TerminalService.ListKubernetesServers:input_type -> teleport.lib.teleterm.v1.ListKubernetesServersRequest + 36, // 63: teleport.lib.teleterm.v1.TerminalService.AddCluster:input_type -> teleport.lib.teleterm.v1.AddClusterRequest + 46, // 64: teleport.lib.teleterm.v1.TerminalService.ListGateways:input_type -> teleport.lib.teleterm.v1.ListGatewaysRequest + 45, // 65: teleport.lib.teleterm.v1.TerminalService.CreateGateway:input_type -> teleport.lib.teleterm.v1.CreateGatewayRequest + 48, // 66: teleport.lib.teleterm.v1.TerminalService.RemoveGateway:input_type -> teleport.lib.teleterm.v1.RemoveGatewayRequest + 49, // 67: teleport.lib.teleterm.v1.TerminalService.SetGatewayTargetSubresourceName:input_type -> teleport.lib.teleterm.v1.SetGatewayTargetSubresourceNameRequest + 50, // 68: teleport.lib.teleterm.v1.TerminalService.SetGatewayLocalPort:input_type -> teleport.lib.teleterm.v1.SetGatewayLocalPortRequest + 51, // 69: teleport.lib.teleterm.v1.TerminalService.GetAuthSettings:input_type -> teleport.lib.teleterm.v1.GetAuthSettingsRequest + 4, // 70: teleport.lib.teleterm.v1.TerminalService.GetCluster:input_type -> teleport.lib.teleterm.v1.GetClusterRequest + 35, // 71: teleport.lib.teleterm.v1.TerminalService.Login:input_type -> teleport.lib.teleterm.v1.LoginRequest + 32, // 72: teleport.lib.teleterm.v1.TerminalService.LoginPasswordless:input_type -> teleport.lib.teleterm.v1.LoginPasswordlessRequest + 5, // 73: teleport.lib.teleterm.v1.TerminalService.Logout:input_type -> teleport.lib.teleterm.v1.LogoutRequest + 6, // 74: teleport.lib.teleterm.v1.TerminalService.ClearStaleClusterClients:input_type -> teleport.lib.teleterm.v1.ClearStaleClusterClientsRequest + 33, // 75: teleport.lib.teleterm.v1.TerminalService.TransferFile:input_type -> teleport.lib.teleterm.v1.FileTransferRequest + 108, // 76: teleport.lib.teleterm.v1.TerminalService.ReportUsageEvent:input_type -> teleport.lib.teleterm.v1.ReportUsageEventRequest + 54, // 77: teleport.lib.teleterm.v1.TerminalService.UpdateHeadlessAuthenticationState:input_type -> teleport.lib.teleterm.v1.UpdateHeadlessAuthenticationStateRequest + 56, // 78: teleport.lib.teleterm.v1.TerminalService.CreateConnectMyComputerRole:input_type -> teleport.lib.teleterm.v1.CreateConnectMyComputerRoleRequest + 58, // 79: teleport.lib.teleterm.v1.TerminalService.CreateConnectMyComputerNodeToken:input_type -> teleport.lib.teleterm.v1.CreateConnectMyComputerNodeTokenRequest + 60, // 80: teleport.lib.teleterm.v1.TerminalService.WaitForConnectMyComputerNodeJoin:input_type -> teleport.lib.teleterm.v1.WaitForConnectMyComputerNodeJoinRequest + 62, // 81: teleport.lib.teleterm.v1.TerminalService.DeleteConnectMyComputerNode:input_type -> teleport.lib.teleterm.v1.DeleteConnectMyComputerNodeRequest + 64, // 82: teleport.lib.teleterm.v1.TerminalService.GetConnectMyComputerNodeName:input_type -> teleport.lib.teleterm.v1.GetConnectMyComputerNodeNameRequest + 66, // 83: teleport.lib.teleterm.v1.TerminalService.ListUnifiedResources:input_type -> teleport.lib.teleterm.v1.ListUnifiedResourcesRequest + 70, // 84: teleport.lib.teleterm.v1.TerminalService.GetUserPreferences:input_type -> teleport.lib.teleterm.v1.GetUserPreferencesRequest + 72, // 85: teleport.lib.teleterm.v1.TerminalService.UpdateUserPreferences:input_type -> teleport.lib.teleterm.v1.UpdateUserPreferencesRequest + 75, // 86: teleport.lib.teleterm.v1.TerminalService.AuthenticateWebDevice:input_type -> teleport.lib.teleterm.v1.AuthenticateWebDeviceRequest + 77, // 87: teleport.lib.teleterm.v1.TerminalService.GetApp:input_type -> teleport.lib.teleterm.v1.GetAppRequest + 80, // 88: teleport.lib.teleterm.v1.TerminalService.ConnectToDesktop:input_type -> teleport.lib.teleterm.v1.ConnectToDesktopRequest + 82, // 89: teleport.lib.teleterm.v1.TerminalService.SetSharedDirectoryForDesktopSession:input_type -> teleport.lib.teleterm.v1.SetSharedDirectoryForDesktopSessionRequest + 53, // 90: teleport.lib.teleterm.v1.TerminalService.UpdateTshdEventsServerAddress:output_type -> teleport.lib.teleterm.v1.UpdateTshdEventsServerAddressResponse + 38, // 91: teleport.lib.teleterm.v1.TerminalService.ListRootClusters:output_type -> teleport.lib.teleterm.v1.ListClustersResponse + 38, // 92: teleport.lib.teleterm.v1.TerminalService.ListLeafClusters:output_type -> teleport.lib.teleterm.v1.ListClustersResponse + 9, // 93: teleport.lib.teleterm.v1.TerminalService.StartHeadlessWatcher:output_type -> teleport.lib.teleterm.v1.StartHeadlessWatcherResponse + 41, // 94: teleport.lib.teleterm.v1.TerminalService.ListDatabaseUsers:output_type -> teleport.lib.teleterm.v1.ListDatabaseUsersResponse + 44, // 95: teleport.lib.teleterm.v1.TerminalService.ListDatabaseServers:output_type -> teleport.lib.teleterm.v1.ListDatabaseServersResponse + 13, // 96: teleport.lib.teleterm.v1.TerminalService.GetAccessRequests:output_type -> teleport.lib.teleterm.v1.GetAccessRequestsResponse + 12, // 97: teleport.lib.teleterm.v1.TerminalService.GetAccessRequest:output_type -> teleport.lib.teleterm.v1.GetAccessRequestResponse + 3, // 98: teleport.lib.teleterm.v1.TerminalService.DeleteAccessRequest:output_type -> teleport.lib.teleterm.v1.EmptyResponse + 16, // 99: teleport.lib.teleterm.v1.TerminalService.CreateAccessRequest:output_type -> teleport.lib.teleterm.v1.CreateAccessRequestResponse + 21, // 100: teleport.lib.teleterm.v1.TerminalService.ReviewAccessRequest:output_type -> teleport.lib.teleterm.v1.ReviewAccessRequestResponse + 19, // 101: teleport.lib.teleterm.v1.TerminalService.GetRequestableRoles:output_type -> teleport.lib.teleterm.v1.GetRequestableRolesResponse + 3, // 102: teleport.lib.teleterm.v1.TerminalService.AssumeRole:output_type -> teleport.lib.teleterm.v1.EmptyResponse + 23, // 103: teleport.lib.teleterm.v1.TerminalService.PromoteAccessRequest:output_type -> teleport.lib.teleterm.v1.PromoteAccessRequestResponse + 25, // 104: teleport.lib.teleterm.v1.TerminalService.GetSuggestedAccessLists:output_type -> teleport.lib.teleterm.v1.GetSuggestedAccessListsResponse + 27, // 105: teleport.lib.teleterm.v1.TerminalService.ListKubernetesResources:output_type -> teleport.lib.teleterm.v1.ListKubernetesResourcesResponse + 29, // 106: teleport.lib.teleterm.v1.TerminalService.ListKubernetesServers:output_type -> teleport.lib.teleterm.v1.ListKubernetesServersResponse + 96, // 107: teleport.lib.teleterm.v1.TerminalService.AddCluster:output_type -> teleport.lib.teleterm.v1.Cluster + 47, // 108: teleport.lib.teleterm.v1.TerminalService.ListGateways:output_type -> teleport.lib.teleterm.v1.ListGatewaysResponse + 98, // 109: teleport.lib.teleterm.v1.TerminalService.CreateGateway:output_type -> teleport.lib.teleterm.v1.Gateway + 3, // 110: teleport.lib.teleterm.v1.TerminalService.RemoveGateway:output_type -> teleport.lib.teleterm.v1.EmptyResponse + 98, // 111: teleport.lib.teleterm.v1.TerminalService.SetGatewayTargetSubresourceName:output_type -> teleport.lib.teleterm.v1.Gateway + 98, // 112: teleport.lib.teleterm.v1.TerminalService.SetGatewayLocalPort:output_type -> teleport.lib.teleterm.v1.Gateway + 109, // 113: teleport.lib.teleterm.v1.TerminalService.GetAuthSettings:output_type -> teleport.lib.teleterm.v1.AuthSettings + 96, // 114: teleport.lib.teleterm.v1.TerminalService.GetCluster:output_type -> teleport.lib.teleterm.v1.Cluster + 3, // 115: teleport.lib.teleterm.v1.TerminalService.Login:output_type -> teleport.lib.teleterm.v1.EmptyResponse + 31, // 116: teleport.lib.teleterm.v1.TerminalService.LoginPasswordless:output_type -> teleport.lib.teleterm.v1.LoginPasswordlessResponse + 3, // 117: teleport.lib.teleterm.v1.TerminalService.Logout:output_type -> teleport.lib.teleterm.v1.EmptyResponse + 7, // 118: teleport.lib.teleterm.v1.TerminalService.ClearStaleClusterClients:output_type -> teleport.lib.teleterm.v1.ClearStaleClusterClientsResponse + 34, // 119: teleport.lib.teleterm.v1.TerminalService.TransferFile:output_type -> teleport.lib.teleterm.v1.FileTransferProgress + 3, // 120: teleport.lib.teleterm.v1.TerminalService.ReportUsageEvent:output_type -> teleport.lib.teleterm.v1.EmptyResponse + 55, // 121: teleport.lib.teleterm.v1.TerminalService.UpdateHeadlessAuthenticationState:output_type -> teleport.lib.teleterm.v1.UpdateHeadlessAuthenticationStateResponse + 57, // 122: teleport.lib.teleterm.v1.TerminalService.CreateConnectMyComputerRole:output_type -> teleport.lib.teleterm.v1.CreateConnectMyComputerRoleResponse + 59, // 123: teleport.lib.teleterm.v1.TerminalService.CreateConnectMyComputerNodeToken:output_type -> teleport.lib.teleterm.v1.CreateConnectMyComputerNodeTokenResponse + 61, // 124: teleport.lib.teleterm.v1.TerminalService.WaitForConnectMyComputerNodeJoin:output_type -> teleport.lib.teleterm.v1.WaitForConnectMyComputerNodeJoinResponse + 63, // 125: teleport.lib.teleterm.v1.TerminalService.DeleteConnectMyComputerNode:output_type -> teleport.lib.teleterm.v1.DeleteConnectMyComputerNodeResponse + 65, // 126: teleport.lib.teleterm.v1.TerminalService.GetConnectMyComputerNodeName:output_type -> teleport.lib.teleterm.v1.GetConnectMyComputerNodeNameResponse + 68, // 127: teleport.lib.teleterm.v1.TerminalService.ListUnifiedResources:output_type -> teleport.lib.teleterm.v1.ListUnifiedResourcesResponse + 71, // 128: teleport.lib.teleterm.v1.TerminalService.GetUserPreferences:output_type -> teleport.lib.teleterm.v1.GetUserPreferencesResponse + 73, // 129: teleport.lib.teleterm.v1.TerminalService.UpdateUserPreferences:output_type -> teleport.lib.teleterm.v1.UpdateUserPreferencesResponse + 76, // 130: teleport.lib.teleterm.v1.TerminalService.AuthenticateWebDevice:output_type -> teleport.lib.teleterm.v1.AuthenticateWebDeviceResponse + 78, // 131: teleport.lib.teleterm.v1.TerminalService.GetApp:output_type -> teleport.lib.teleterm.v1.GetAppResponse + 81, // 132: teleport.lib.teleterm.v1.TerminalService.ConnectToDesktop:output_type -> teleport.lib.teleterm.v1.ConnectToDesktopResponse + 83, // 133: teleport.lib.teleterm.v1.TerminalService.SetSharedDirectoryForDesktopSession:output_type -> teleport.lib.teleterm.v1.SetSharedDirectoryForDesktopSessionResponse + 90, // [90:134] is the sub-list for method output_type + 46, // [46:90] is the sub-list for method input_type + 46, // [46:46] is the sub-list for extension type_name + 46, // [46:46] is the sub-list for extension extendee + 0, // [0:46] is the sub-list for field type_name } func init() { file_teleport_lib_teleterm_v1_service_proto_init() } diff --git a/gen/proto/ts/teleport/legacy/types/resources_pb.ts b/gen/proto/ts/teleport/legacy/types/resources_pb.ts new file mode 100644 index 0000000000000..8ad36d190de4b --- /dev/null +++ b/gen/proto/ts/teleport/legacy/types/resources_pb.ts @@ -0,0 +1,409 @@ +/* eslint-disable */ +// @generated by protobuf-ts 2.9.3 with parameter add_pb_suffix,eslint_disable,generate_dependencies,server_grpc1,ts_nocheck +// @generated from protobuf file "teleport/legacy/types/resources.proto" (package "types", syntax proto3) +// tslint:disable +// @ts-nocheck +// +// Copyright 2025 Gravitational, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; +import type { IBinaryWriter } from "@protobuf-ts/runtime"; +import { WireType } from "@protobuf-ts/runtime"; +import type { BinaryReadOptions } from "@protobuf-ts/runtime"; +import type { IBinaryReader } from "@protobuf-ts/runtime"; +import { UnknownFieldHandler } from "@protobuf-ts/runtime"; +import type { PartialMessage } from "@protobuf-ts/runtime"; +import { reflectionMergePartial } from "@protobuf-ts/runtime"; +import { MessageType } from "@protobuf-ts/runtime"; +/** + * ResourceID is a unique identifier for a teleport resource. + * Must be kept in sync with teleport.decision.v1alpha1.ResourceId. + * + * @generated from protobuf message types.ResourceID + */ +export interface ResourceID { + /** + * ClusterName is the name of the cluster the resource is in. + * + * @generated from protobuf field: string ClusterName = 1 [json_name = "ClusterName"]; + */ + clusterName: string; + /** + * Kind is the resource kind. + * + * @generated from protobuf field: string Kind = 2 [json_name = "Kind"]; + */ + kind: string; + /** + * Name is the name of the specific resource. + * + * @generated from protobuf field: string Name = 3 [json_name = "Name"]; + */ + name: string; + /** + * SubResourceName is the resource belonging to resource identified by "Name" + * that the user is allowed to access to. + * When granting access to a subresource, access to other resources is limited. + * Currently it just supports resources of Kind=pod and the format is the following + * "/". + * + * @generated from protobuf field: string SubResourceName = 4 [json_name = "SubResourceName"]; + */ + subResourceName: string; +} +/** + * ResourceConstraints is a domain-specific payload that narrows what principals + * or options are allowed on the associated ResourceID. Exactly one detail is set. + * + * @generated from protobuf message types.ResourceConstraints + */ +export interface ResourceConstraints { + /** + * version is version; supported values are: `v1`. + * + * @generated from protobuf field: string version = 1; + */ + version: string; + /** + * @generated from protobuf oneof: details + */ + details: { + oneofKind: "awsConsole"; + /** + * aws_console scopes an AWS Console app to a subset of role ARNs + * the requester is allowed to use. + * + * @generated from protobuf field: types.AWSConsoleResourceConstraints aws_console = 10; + */ + awsConsole: AWSConsoleResourceConstraints; + } | { + oneofKind: undefined; + }; +} +/** + * AwsConsoleResourceConstraints scopes an AWS Console app to a subset of role ARNs + * the requester is allowed to use. + * + * @generated from protobuf message types.AWSConsoleResourceConstraints + */ +export interface AWSConsoleResourceConstraints { + /** + * @generated from protobuf field: repeated string role_arns = 1; + */ + roleArns: string[]; +} +/** + * ResourceAccessID represents a ResourceID in an Access Request-related context, + * where additional information such as ResourceConstraints may be provided. + * + * @generated from protobuf message types.ResourceAccessID + */ +export interface ResourceAccessID { + /** + * @generated from protobuf field: types.ResourceID id = 1; + */ + id?: ResourceID; + /** + * @generated from protobuf field: types.ResourceConstraints constraints = 2; + */ + constraints?: ResourceConstraints; +} +/** + * ResourceAccessIDList represents a list of ResourceAccessIDs + * + * @generated from protobuf message types.ResourceAccessIDList + */ +export interface ResourceAccessIDList { + /** + * @generated from protobuf field: repeated types.ResourceAccessID resources = 1; + */ + resources: ResourceAccessID[]; +} +// @generated message type with reflection information, may provide speed optimized methods +class ResourceID$Type extends MessageType { + constructor() { + super("types.ResourceID", [ + { no: 1, name: "ClusterName", kind: "scalar", jsonName: "ClusterName", T: 9 /*ScalarType.STRING*/, options: { "gogoproto.jsontag": "cluster" } }, + { no: 2, name: "Kind", kind: "scalar", jsonName: "Kind", T: 9 /*ScalarType.STRING*/, options: { "gogoproto.jsontag": "kind" } }, + { no: 3, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/, options: { "gogoproto.jsontag": "name" } }, + { no: 4, name: "SubResourceName", kind: "scalar", jsonName: "SubResourceName", T: 9 /*ScalarType.STRING*/, options: { "gogoproto.jsontag": "sub_resource,omitempty" } } + ]); + } + create(value?: PartialMessage): ResourceID { + const message = globalThis.Object.create((this.messagePrototype!)); + message.clusterName = ""; + message.kind = ""; + message.name = ""; + message.subResourceName = ""; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceID): ResourceID { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* string ClusterName = 1 [json_name = "ClusterName"];*/ 1: + message.clusterName = reader.string(); + break; + case /* string Kind = 2 [json_name = "Kind"];*/ 2: + message.kind = reader.string(); + break; + case /* string Name = 3 [json_name = "Name"];*/ 3: + message.name = reader.string(); + break; + case /* string SubResourceName = 4 [json_name = "SubResourceName"];*/ 4: + message.subResourceName = reader.string(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: ResourceID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* string ClusterName = 1 [json_name = "ClusterName"]; */ + if (message.clusterName !== "") + writer.tag(1, WireType.LengthDelimited).string(message.clusterName); + /* string Kind = 2 [json_name = "Kind"]; */ + if (message.kind !== "") + writer.tag(2, WireType.LengthDelimited).string(message.kind); + /* string Name = 3 [json_name = "Name"]; */ + if (message.name !== "") + writer.tag(3, WireType.LengthDelimited).string(message.name); + /* string SubResourceName = 4 [json_name = "SubResourceName"]; */ + if (message.subResourceName !== "") + writer.tag(4, WireType.LengthDelimited).string(message.subResourceName); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message types.ResourceID + */ +export const ResourceID = new ResourceID$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class ResourceConstraints$Type extends MessageType { + constructor() { + super("types.ResourceConstraints", [ + { no: 1, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, + { no: 10, name: "aws_console", kind: "message", oneof: "details", T: () => AWSConsoleResourceConstraints } + ]); + } + create(value?: PartialMessage): ResourceConstraints { + const message = globalThis.Object.create((this.messagePrototype!)); + message.version = ""; + message.details = { oneofKind: undefined }; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceConstraints): ResourceConstraints { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* string version */ 1: + message.version = reader.string(); + break; + case /* types.AWSConsoleResourceConstraints aws_console */ 10: + message.details = { + oneofKind: "awsConsole", + awsConsole: AWSConsoleResourceConstraints.internalBinaryRead(reader, reader.uint32(), options, (message.details as any).awsConsole) + }; + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: ResourceConstraints, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* string version = 1; */ + if (message.version !== "") + writer.tag(1, WireType.LengthDelimited).string(message.version); + /* types.AWSConsoleResourceConstraints aws_console = 10; */ + if (message.details.oneofKind === "awsConsole") + AWSConsoleResourceConstraints.internalBinaryWrite(message.details.awsConsole, writer.tag(10, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message types.ResourceConstraints + */ +export const ResourceConstraints = new ResourceConstraints$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class AWSConsoleResourceConstraints$Type extends MessageType { + constructor() { + super("types.AWSConsoleResourceConstraints", [ + { no: 1, name: "role_arns", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ } + ]); + } + create(value?: PartialMessage): AWSConsoleResourceConstraints { + const message = globalThis.Object.create((this.messagePrototype!)); + message.roleArns = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AWSConsoleResourceConstraints): AWSConsoleResourceConstraints { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* repeated string role_arns */ 1: + message.roleArns.push(reader.string()); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: AWSConsoleResourceConstraints, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* repeated string role_arns = 1; */ + for (let i = 0; i < message.roleArns.length; i++) + writer.tag(1, WireType.LengthDelimited).string(message.roleArns[i]); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message types.AWSConsoleResourceConstraints + */ +export const AWSConsoleResourceConstraints = new AWSConsoleResourceConstraints$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class ResourceAccessID$Type extends MessageType { + constructor() { + super("types.ResourceAccessID", [ + { no: 1, name: "id", kind: "message", T: () => ResourceID, options: { "gogoproto.nullable": false } }, + { no: 2, name: "constraints", kind: "message", T: () => ResourceConstraints, options: { "gogoproto.nullable": true } } + ]); + } + create(value?: PartialMessage): ResourceAccessID { + const message = globalThis.Object.create((this.messagePrototype!)); + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAccessID): ResourceAccessID { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* types.ResourceID id */ 1: + message.id = ResourceID.internalBinaryRead(reader, reader.uint32(), options, message.id); + break; + case /* types.ResourceConstraints constraints */ 2: + message.constraints = ResourceConstraints.internalBinaryRead(reader, reader.uint32(), options, message.constraints); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: ResourceAccessID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* types.ResourceID id = 1; */ + if (message.id) + ResourceID.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* types.ResourceConstraints constraints = 2; */ + if (message.constraints) + ResourceConstraints.internalBinaryWrite(message.constraints, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message types.ResourceAccessID + */ +export const ResourceAccessID = new ResourceAccessID$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class ResourceAccessIDList$Type extends MessageType { + constructor() { + super("types.ResourceAccessIDList", [ + { no: 1, name: "resources", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ResourceAccessID, options: { "gogoproto.nullable": false } } + ]); + } + create(value?: PartialMessage): ResourceAccessIDList { + const message = globalThis.Object.create((this.messagePrototype!)); + message.resources = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAccessIDList): ResourceAccessIDList { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* repeated types.ResourceAccessID resources */ 1: + message.resources.push(ResourceAccessID.internalBinaryRead(reader, reader.uint32(), options)); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: ResourceAccessIDList, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* repeated types.ResourceAccessID resources = 1; */ + for (let i = 0; i < message.resources.length; i++) + ResourceAccessID.internalBinaryWrite(message.resources[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message types.ResourceAccessIDList + */ +export const ResourceAccessIDList = new ResourceAccessIDList$Type(); diff --git a/gen/proto/ts/teleport/lib/teleterm/v1/access_request_pb.ts b/gen/proto/ts/teleport/lib/teleterm/v1/access_request_pb.ts index 1989e109faed8..8b4e42d27424a 100644 --- a/gen/proto/ts/teleport/lib/teleterm/v1/access_request_pb.ts +++ b/gen/proto/ts/teleport/lib/teleterm/v1/access_request_pb.ts @@ -30,6 +30,7 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; +import { ResourceConstraints } from "../../../legacy/types/resources_pb"; import { Timestamp } from "../../../../google/protobuf/timestamp_pb"; /** * @generated from protobuf message teleport.lib.teleterm.v1.AccessRequest @@ -233,6 +234,12 @@ export interface Resource { * @generated from protobuf field: teleport.lib.teleterm.v1.ResourceDetails details = 2; */ details?: ResourceDetails; + /** + * constraints holds optional resource-specific constraints (e.g., AWS role ARNs). + * + * @generated from protobuf field: types.ResourceConstraints constraints = 3; + */ + constraints?: ResourceConstraints; } // @generated message type with reflection information, may provide speed optimized methods class AccessRequest$Type extends MessageType { @@ -643,7 +650,8 @@ class Resource$Type extends MessageType { constructor() { super("teleport.lib.teleterm.v1.Resource", [ { no: 1, name: "id", kind: "message", T: () => ResourceID }, - { no: 2, name: "details", kind: "message", T: () => ResourceDetails } + { no: 2, name: "details", kind: "message", T: () => ResourceDetails }, + { no: 3, name: "constraints", kind: "message", T: () => ResourceConstraints } ]); } create(value?: PartialMessage): Resource { @@ -663,6 +671,9 @@ class Resource$Type extends MessageType { case /* teleport.lib.teleterm.v1.ResourceDetails details */ 2: message.details = ResourceDetails.internalBinaryRead(reader, reader.uint32(), options, message.details); break; + case /* types.ResourceConstraints constraints */ 3: + message.constraints = ResourceConstraints.internalBinaryRead(reader, reader.uint32(), options, message.constraints); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -681,6 +692,9 @@ class Resource$Type extends MessageType { /* teleport.lib.teleterm.v1.ResourceDetails details = 2; */ if (message.details) ResourceDetails.internalBinaryWrite(message.details, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + /* types.ResourceConstraints constraints = 3; */ + if (message.constraints) + ResourceConstraints.internalBinaryWrite(message.constraints, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); diff --git a/gen/proto/ts/teleport/lib/teleterm/v1/app_pb.ts b/gen/proto/ts/teleport/lib/teleterm/v1/app_pb.ts index 3b06d2aa13bb0..8a6c1ca4c8242 100644 --- a/gen/proto/ts/teleport/lib/teleterm/v1/app_pb.ts +++ b/gen/proto/ts/teleport/lib/teleterm/v1/app_pb.ts @@ -23,10 +23,10 @@ // import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; import type { IBinaryWriter } from "@protobuf-ts/runtime"; -import { WireType } from "@protobuf-ts/runtime"; import type { BinaryReadOptions } from "@protobuf-ts/runtime"; import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; +import { WireType } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; @@ -158,6 +158,14 @@ export interface App { * @generated from protobuf field: repeated teleport.lib.teleterm.v1.IdentityCenterPermissionSet permission_sets = 14; */ permissionSets: IdentityCenterPermissionSet[]; + /** + * supported_feature_ids contains component feature IDs supported by this app and all + * other involved components (Auth, Proxy). Used to determine if features like resource + * constraints are available. + * + * @generated from protobuf field: repeated int32 supported_feature_ids = 15; + */ + supportedFeatureIds: number[]; } /** * AwsRole describes AWS IAM role. @@ -189,6 +197,12 @@ export interface AWSRole { * @generated from protobuf field: string account_id = 4; */ accountId: string; + /** + * RequiresRequest indicates whether this role requires an access request to be used. + * + * @generated from protobuf field: bool requires_request = 5; + */ + requiresRequest: boolean; } /** * PortRange describes a port range for TCP apps. The range starts with Port and ends with EndPort. @@ -299,7 +313,8 @@ class App$Type extends MessageType { { no: 11, name: "aws_roles", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => AWSRole }, { no: 12, name: "tcp_ports", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PortRange }, { no: 13, name: "sub_kind", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 14, name: "permission_sets", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => IdentityCenterPermissionSet } + { no: 14, name: "permission_sets", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => IdentityCenterPermissionSet }, + { no: 15, name: "supported_feature_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/ } ]); } create(value?: PartialMessage): App { @@ -318,6 +333,7 @@ class App$Type extends MessageType { message.tcpPorts = []; message.subKind = ""; message.permissionSets = []; + message.supportedFeatureIds = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -369,6 +385,13 @@ class App$Type extends MessageType { case /* repeated teleport.lib.teleterm.v1.IdentityCenterPermissionSet permission_sets */ 14: message.permissionSets.push(IdentityCenterPermissionSet.internalBinaryRead(reader, reader.uint32(), options)); break; + case /* repeated int32 supported_feature_ids */ 15: + if (wireType === WireType.LengthDelimited) + for (let e = reader.int32() + reader.pos; reader.pos < e;) + message.supportedFeatureIds.push(reader.int32()); + else + message.supportedFeatureIds.push(reader.int32()); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -423,6 +446,13 @@ class App$Type extends MessageType { /* repeated teleport.lib.teleterm.v1.IdentityCenterPermissionSet permission_sets = 14; */ for (let i = 0; i < message.permissionSets.length; i++) IdentityCenterPermissionSet.internalBinaryWrite(message.permissionSets[i], writer.tag(14, WireType.LengthDelimited).fork(), options).join(); + /* repeated int32 supported_feature_ids = 15; */ + if (message.supportedFeatureIds.length) { + writer.tag(15, WireType.LengthDelimited).fork(); + for (let i = 0; i < message.supportedFeatureIds.length; i++) + writer.int32(message.supportedFeatureIds[i]); + writer.join(); + } let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); @@ -440,7 +470,8 @@ class AWSRole$Type extends MessageType { { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, { no: 2, name: "display", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, { no: 3, name: "arn", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 4, name: "account_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ } + { no: 4, name: "account_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, + { no: 5, name: "requires_request", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } ]); } create(value?: PartialMessage): AWSRole { @@ -449,6 +480,7 @@ class AWSRole$Type extends MessageType { message.display = ""; message.arn = ""; message.accountId = ""; + message.requiresRequest = false; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -470,6 +502,9 @@ class AWSRole$Type extends MessageType { case /* string account_id */ 4: message.accountId = reader.string(); break; + case /* bool requires_request */ 5: + message.requiresRequest = reader.bool(); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -494,6 +529,9 @@ class AWSRole$Type extends MessageType { /* string account_id = 4; */ if (message.accountId !== "") writer.tag(4, WireType.LengthDelimited).string(message.accountId); + /* bool requires_request = 5; */ + if (message.requiresRequest !== false) + writer.tag(5, WireType.Varint).bool(message.requiresRequest); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); diff --git a/gen/proto/ts/teleport/lib/teleterm/v1/service_pb.ts b/gen/proto/ts/teleport/lib/teleterm/v1/service_pb.ts index 29d50da9529e9..96279c864ec1f 100644 --- a/gen/proto/ts/teleport/lib/teleterm/v1/service_pb.ts +++ b/gen/proto/ts/teleport/lib/teleterm/v1/service_pb.ts @@ -48,6 +48,7 @@ import { Cluster } from "./cluster_pb"; import { KubeServer } from "./kube_pb"; import { KubeResource } from "./kube_pb"; import { AccessList } from "../../../accesslist/v1/accesslist_pb"; +import { ResourceAccessID } from "../../../legacy/types/resources_pb"; import { Timestamp } from "../../../../google/protobuf/timestamp_pb"; import { ResourceID } from "./access_request_pb"; import { AccessRequest } from "./access_request_pb"; @@ -223,6 +224,17 @@ export interface CreateAccessRequestRequest { * @generated from protobuf field: google.protobuf.Timestamp request_ttl = 9; */ requestTtl?: Timestamp; + /** + * resource_access_ids is the set of resources to which access is being requested, + * paired with additional information such as ResourceConstraints. + * Differs from resource_ids, which only identify resources and cannot be used + * to express additional information per-resource such as ResourceConstraints. + * When present, resource_access_ids should be treated as authoritative + * (ResourceIDs can be derived by mapping to ResourceAccessID.id). + * + * @generated from protobuf field: repeated types.ResourceAccessID resource_access_ids = 10; + */ + resourceAccessIds: ResourceAccessID[]; } /** * @generated from protobuf message teleport.lib.teleterm.v1.CreateAccessRequestResponse @@ -1956,7 +1968,8 @@ class CreateAccessRequestRequest$Type extends MessageType Timestamp }, { no: 7, name: "dry_run", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, { no: 8, name: "max_duration", kind: "message", T: () => Timestamp }, - { no: 9, name: "request_ttl", kind: "message", T: () => Timestamp } + { no: 9, name: "request_ttl", kind: "message", T: () => Timestamp }, + { no: 10, name: "resource_access_ids", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => ResourceAccessID } ]); } create(value?: PartialMessage): CreateAccessRequestRequest { @@ -1967,6 +1980,7 @@ class CreateAccessRequestRequest$Type extends MessageType(this, message, value); return message; @@ -2003,6 +2017,9 @@ class CreateAccessRequestRequest$Type extends MessageType Date: Wed, 4 Feb 2026 15:36:03 -0500 Subject: [PATCH 2/2] fixup: Resolve test/story type errors from proto field changes --- web/packages/teleterm/src/services/tshd/testHelpers.ts | 1 + web/packages/teleterm/src/ui/AccessRequests/SelectorMenu.tsx | 2 ++ .../teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx | 2 ++ .../teleterm/src/ui/DocumentCluster/DocumentCluster.story.tsx | 2 ++ 4 files changed, 7 insertions(+) diff --git a/web/packages/teleterm/src/services/tshd/testHelpers.ts b/web/packages/teleterm/src/services/tshd/testHelpers.ts index 43297e4465f54..bbcc62935029d 100644 --- a/web/packages/teleterm/src/services/tshd/testHelpers.ts +++ b/web/packages/teleterm/src/services/tshd/testHelpers.ts @@ -90,6 +90,7 @@ export const makeApp = (props: Partial = {}): App => ({ tcpPorts: [], permissionSets: [], subKind: '', + supportedFeatureIds: [], ...props, }); diff --git a/web/packages/teleterm/src/ui/AccessRequests/SelectorMenu.tsx b/web/packages/teleterm/src/ui/AccessRequests/SelectorMenu.tsx index 96d4a2b55246e..939f2e3510d1b 100644 --- a/web/packages/teleterm/src/ui/AccessRequests/SelectorMenu.tsx +++ b/web/packages/teleterm/src/ui/AccessRequests/SelectorMenu.tsx @@ -516,6 +516,8 @@ function makeSharedRequest( ...r.id, kind: r.id.kind as RequestableResourceKind, }, + // TODO(kiosion): Would be more optimal to fix the types, but we only care about the 'id' here anyways. + constraints: undefined, })), }; } diff --git a/web/packages/teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx b/web/packages/teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx index 5ded557a891bb..39dfb8b759127 100644 --- a/web/packages/teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx +++ b/web/packages/teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx @@ -238,12 +238,14 @@ function AwsConsole() { display: 'foo', name: 'foo', accountId: '123456789012', + requiresRequest: false, }, { arn: 'bar', display: 'bar', name: 'bar', accountId: '123456789012', + requiresRequest: false, }, ], uri: `${testCluster.uri}/apps/bar`, diff --git a/web/packages/teleterm/src/ui/DocumentCluster/DocumentCluster.story.tsx b/web/packages/teleterm/src/ui/DocumentCluster/DocumentCluster.story.tsx index 5be7992f4e2ba..fba318ab391a4 100644 --- a/web/packages/teleterm/src/ui/DocumentCluster/DocumentCluster.story.tsx +++ b/web/packages/teleterm/src/ui/DocumentCluster/DocumentCluster.story.tsx @@ -131,12 +131,14 @@ export const OnlineLoadedResources = () => { display: 'foo', name: 'foo', accountId: '123456789012', + requiresRequest: true, }, { arn: 'bar', display: 'bar', name: 'bar', accountId: '123456789012', + requiresRequest: true, }, ], },