2021-11-09 11:43:41 -05:00
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
2023-02-02 17:15:17 -08:00
2020-09-01 15:05:46 -07:00
syntax = "proto3" ;
package controller.api.resources.targets.v1 ;
import "controller/api/resources/scopes/v1/scope.proto" ;
import "controller/custom_options/v1/options.proto" ;
2022-04-13 16:27:48 -04:00
import "google/api/visibility.proto" ;
2020-09-01 15:05:46 -07:00
import "google/protobuf/struct.proto" ;
import "google/protobuf/timestamp.proto" ;
import "google/protobuf/wrappers.proto" ;
2022-05-04 11:10:21 -04:00
2021-08-26 10:44:41 -04:00
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/targets;targets" ;
2020-09-01 15:05:46 -07:00
2024-03-12 13:57:47 -07:00
// Alias is the alias information related to the aliases associated with the target.
2024-02-01 08:58:56 -08:00
message Alias {
// Output only. The ID of the alias referencing this target.
string id = 10 ; // @gotags: `class:"public" eventstream:"observation"`
// Ouput only. The value of the alias referencing this target.
string value = 20 ; // @gotags: `class:"public" eventstream:"observation"`
2024-03-12 13:57:47 -07:00
string scope_id = 30 [ json_name = "scope_id" ]; // @gotags: `class:"public" eventstream:"observation"`;
TargetAliasAttributes attributes = 40 ;
}
message TargetAliasAttributes {
AuthorizeSessionArguments authorize_session_arguments = 1 [ json_name = "authorize_session_arguments" ]; // @gotags: `class:"public"`
}
message AuthorizeSessionArguments {
// host_id is the id of the host that the session will be authorized for.
// When specified authorizing a session using this alias will have the same
// effect of authorizing a session to the alias' destination_id and passing
// in this value through the -host-id flag. If the host-id flag is also
// specified when calling authorize-session an error will be returned unless
// the provided host-id matches this value.
string host_id = 1 [ json_name = "host_id" ]; // @gotags: `class:"public"`
2024-02-01 08:58:56 -08:00
}
2021-07-30 08:48:03 -04:00
message HostSource {
2021-11-09 11:43:41 -05:00
// Output only. The ID of the Host Set.
2023-07-28 12:41:55 -07:00
string id = 10 ; // @gotags: `class:"public" eventstream:"observation"`
2021-07-30 08:48:03 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The Host Catalog to which this Host Source belongs.
2023-07-28 12:41:55 -07:00
string host_catalog_id = 20 [ json_name = "host_catalog_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2021-07-30 08:48:03 -04:00
}
2021-07-27 12:48:36 -04:00
message CredentialSource {
2021-11-09 11:43:41 -05:00
// The ID of the Credential. May be empty if the credential is dynamically generated from a library.
2022-04-14 14:34:58 -04:00
string id = 10 ; // @gotags: `class:"public"`
2021-07-27 12:48:36 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The name of the Credential source.
2022-04-14 14:34:58 -04:00
string name = 20 ; // @gotags: `class:"public"`
2021-07-27 12:48:36 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The description of the Credential source.
2022-04-14 14:34:58 -04:00
string description = 30 ; // @gotags: `class:"public"`
2021-07-27 12:48:36 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The Credential Store to which this Credential source belongs.
2022-04-14 14:34:58 -04:00
string credential_store_id = 40 [ json_name = "credential_store_id" ]; // @gotags: `class:"public"`
2021-07-27 12:48:36 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The type of the credential source (e.g. "vault"; not the type of the credential itself).
2022-04-14 14:34:58 -04:00
string type = 60 ; // @gotags: `class:"public"`
2022-01-05 14:15:38 -08:00
// Output only. The type of the credential, empty if unspecified.
2022-04-14 14:34:58 -04:00
string credential_type = 70 ; // @gotags: `class:"public"`
2021-07-27 12:48:36 -04:00
}
2021-06-30 18:02:03 -04:00
// The actual secret for a session credential.
message SessionSecret {
2021-11-09 11:43:41 -05:00
// Output only. The base64-encoded value representing the raw bytes from the
// credential provider.
2022-04-14 14:34:58 -04:00
string raw = 10 ; // @gotags: `class:"secret"`
2021-06-30 18:02:03 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The decoded raw string, if a JSON object.
google.protobuf.Struct decoded = 20 ;
2021-06-30 18:02:03 -04:00
}
2021-07-27 12:48:36 -04:00
// Credential information for a session.
2021-06-22 22:26:26 -04:00
message SessionCredential {
2021-11-09 11:43:41 -05:00
// Output only. The credential source information.
CredentialSource credential_source = 1 ;
2021-07-27 12:48:36 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The secret of this credential base64 encoded.
SessionSecret secret = 20 ;
2022-01-05 14:15:38 -08:00
// Output only. The fields of the strongly typed credential, empty if the credential type of the
// credential source is unspecified.
google.protobuf.Struct credential = 40 ;
2022-06-15 08:56:24 -07:00
// Deprecated fields
reserved "credential_library" ;
reserved 10 ;
2021-06-22 22:26:26 -04:00
}
2020-09-01 15:05:46 -07:00
// Target contains all fields related to a Target resource
message Target {
2021-11-09 11:43:41 -05:00
// Output only. The ID of the resource.
2023-07-28 12:41:55 -07:00
string id = 10 ; // @gotags: `class:"public" eventstream:"observation"`
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// The Scope of of this resource. This must be defined for creation of this resource, but is otherwise output only.
2023-07-28 12:41:55 -07:00
string scope_id = 20 [ json_name = "scope_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30 ;
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// Required name for identification purposes.
2022-04-14 14:34:58 -04:00
google.protobuf.StringValue name = 40 [
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "name"
that : "name"
}
]; // @gotags: `class:"public"`
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// Optional user-set description for identification purposes.
2022-04-14 14:34:58 -04:00
google.protobuf.StringValue description = 50 [
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "description"
that : "description"
}
]; // @gotags: `class:"public"`
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// Output only. The time this resource was created.
2023-07-28 12:41:55 -07:00
google.protobuf.Timestamp created_time = 60 [ json_name = "created_time" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// Output only. The time this resource was last updated.
2023-07-28 12:41:55 -07:00
google.protobuf.Timestamp updated_time = 70 [ json_name = "updated_time" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.
// The mutation will fail if the version does not match the latest known good version.
2022-04-14 14:34:58 -04:00
uint32 version = 80 ; // @gotags: `class:"public"`
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// The type of the Target.
2023-07-28 12:41:55 -07:00
string type = 90 ; // @gotags: `class:"public" eventstream:"observation"`
2020-09-01 15:05:46 -07:00
2021-11-09 11:43:41 -05:00
// Output only. The IDs of the Host Sources associated with this Target.
2023-07-28 12:41:55 -07:00
repeated string host_source_ids = 420 [ json_name = "host_source_ids" ]; // @gotags: `class:"public" eventstream:"observation"`
2021-07-30 08:48:03 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The Host Sources associated with this Target.
repeated HostSource host_sources = 430 [ json_name = "host_sources" ];
2020-09-19 10:31:49 -04:00
2021-11-09 11:43:41 -05:00
// Maximum total lifetime of a created Session, in seconds.
google.protobuf.UInt32Value session_max_seconds = 120 [
2022-04-14 14:34:58 -04:00
json_name = "session_max_seconds" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "session_max_seconds"
that : "SessionMaxSeconds"
}
]; // @gotags: `class:"public"`
2021-01-21 16:27:20 -05:00
2021-11-09 11:43:41 -05:00
// Maximum number of connections allowed in a Session. Unlimited is indicated by the value -1.
google.protobuf.Int32Value session_connection_limit = 130 [
2022-04-14 14:34:58 -04:00
json_name = "session_connection_limit" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "session_connection_limit"
that : "SessionConnectionLimit"
}
]; // @gotags: `class:"public"`
2020-09-19 10:31:49 -04:00
2021-11-09 11:43:41 -05:00
// Optional boolean expression to filter the workers that are allowed to satisfy this request.
2022-11-30 15:23:37 -05:00
// Deprecated; use egress or ingress worker filters instead.
2021-11-09 11:43:41 -05:00
google.protobuf.StringValue worker_filter = 140 [
2022-04-14 14:34:58 -04:00
json_name = "worker_filter" ,
2022-11-30 15:23:37 -05:00
deprecated = true ,
2022-04-14 14:34:58 -04:00
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "worker_filter"
that : "WorkerFilter"
}
]; // @gotags: `class:"public"`
2021-06-25 14:06:31 -04:00
2022-11-30 15:23:37 -05:00
// Optional boolean expressions to filter the egress workers that are allowed to satisfy this request.
google.protobuf.StringValue egress_worker_filter = 160 [
json_name = "egress_worker_filter" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "egress_worker_filter"
that : "EgressWorkerFilter"
}
]; // @gotags: `class:"public"`
// Optional boolean expressions to filter the ingress workers that are allowed to satisfy this request.
// Unsupported on OSS.
google.protobuf.StringValue ingress_worker_filter = 170 [
json_name = "ingress_worker_filter" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "ingress_worker_filter"
that : "IngressWorkerFilter"
}
]; // @gotags: `class:"public"`
2022-07-19 15:16:24 -07:00
// Output only. The IDs of the brokered credential source ids associated with this Target.
repeated string brokered_credential_source_ids = 440 [ json_name = "brokered_credential_source_ids" ]; // @gotags: `class:"public"`
// Output only. The brokered credential sources associated with this Target.
repeated CredentialSource brokered_credential_sources = 450 [ json_name = "brokered_credential_sources" ];
// Output only. The IDs of the injected application credential source ids associated with this Target.
repeated string injected_application_credential_source_ids = 520 [ json_name = "injected_application_credential_source_ids" ]; // @gotags: `class:"public"`
// Output only. The injected application credential sources associated with this Target.
repeated CredentialSource injected_application_credential_sources = 530 [ json_name = "injected_application_credential_sources" ];
2021-01-20 10:53:01 -05:00
2022-04-13 16:27:48 -04:00
oneof attrs {
// The attributes that are applicable for the specific Target.
google.protobuf.Struct attributes = 200 [
( custom_options.v1.generate_sdk_option ) = true ,
2022-04-14 14:34:58 -04:00
( custom_options.v1.subtype ) = "default"
];
TcpTargetAttributes tcp_target_attributes = 201 [
( google.api.field_visibility ) . restriction = "INTERNAL" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.subtype ) = "tcp"
2022-04-13 16:27:48 -04:00
];
2021-11-18 14:17:18 -05:00
SshTargetAttributes ssh_target_attributes = 202 [
( google.api.field_visibility ) . restriction = "INTERNAL" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.subtype ) = "ssh"
];
2022-04-13 16:27:48 -04:00
}
2021-11-09 11:43:41 -05:00
// Output only. The available actions on this resource for this user.
2022-04-14 14:34:58 -04:00
repeated string authorized_actions = 300 [ json_name = "authorized_actions" ]; // @gotags: `class:"public"`
2022-06-15 08:56:24 -07:00
2022-12-06 12:33:28 -08:00
// Optional string value that represents a network resource and is used when establishing a session.
google.protobuf.StringValue address = 540 [
json_name = "address" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "address"
that : "address"
}
]; // @gotags: `class:"public"`
2022-11-11 13:48:18 +00:00
2024-02-01 08:58:56 -08:00
// Output only. The aliases that point to this Target.
repeated Alias aliases = 550 [ json_name = "aliases" ]; // @gotags: `class:"public"`
2024-03-12 13:57:47 -07:00
// Input only. with_aliases specify the aliases that should be created when
// the target is created. This field is only usable at target creation time.
repeated Alias with_aliases = 560 [ json_name = "with_aliases" ]; // @gotags: `class:"public"`
2022-06-15 08:56:24 -07:00
// Deprecated fields
reserved "application_credential_library_ids" , "application_credential_libraries" ;
reserved 150 , 180 ;
2022-07-19 15:16:24 -07:00
reserved "egress_credential_source_ids" , "egress_credential_sources" ;
reserved 500 , 510 ;
2022-09-15 09:20:08 -04:00
reserved "host_set_ids" , "host_sets" ;
reserved 100 , 110 ;
2023-09-22 15:58:18 -04:00
reserved "application_credential_source_ids" , "application_credential_sources" ;
reserved 400 , 410 ;
2020-09-01 15:05:46 -07:00
}
2020-09-15 15:20:49 -04:00
2020-09-26 08:30:27 -04:00
// TcpTargetAttributes contains attributes relevant to Targets of type "tcp"
2020-09-15 15:20:49 -04:00
message TcpTargetAttributes {
2021-11-09 11:43:41 -05:00
// The default TCP port that will be used when connecting to the endpoint unless overridden by a Host Set or Host.
google.protobuf.UInt32Value default_port = 10 [
2022-04-14 14:34:58 -04:00
json_name = "default_port" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "attributes.default_port"
that : "DefaultPort"
}
]; // @gotags: `class:"public"`
2023-04-21 06:50:53 -04:00
// The default TCP port that will be listened on by the client's local proxy.
google.protobuf.UInt32Value default_client_port = 20 [
json_name = "default_client_port" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "attributes.default_client_port"
that : "DefaultClientPort"
}
]; // @gotags: `class:"public"`
2020-09-19 00:18:17 -04:00
}
2021-11-18 14:17:18 -05:00
// SshTargetAttributes contains attributes relevant to Targets of type "ssh"
message SshTargetAttributes {
// The default SSH port that will be used when connecting to the endpoint unless overridden by a Host Set or Host.
// If this is not specified the DefaultPort will be 22.
google.protobuf.UInt32Value default_port = 10 [
json_name = "default_port" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "attributes.default_port"
that : "DefaultPort"
}
]; // @gotags: `class:"public"`
2023-04-21 06:50:53 -04:00
// The default TCP port that will be listened on by the client's local proxy.
google.protobuf.UInt32Value default_client_port = 20 [
json_name = "default_client_port" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "attributes.default_client_port"
that : "DefaultClientPort"
}
]; // @gotags: `class:"public"`
2023-05-03 15:54:33 -07:00
// PublicId of the storage bucket associated with the target
google.protobuf.StringValue storage_bucket_id = 30 [
json_name = "storage_bucket_id" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "attributes.storage_bucket_id"
that : "StorageBucketId"
}
2024-05-24 10:34:15 -07:00
]; // @gotags: `class:"public" eventstream:"observation"`
2023-05-03 15:54:33 -07:00
// A boolean indicating if session recording has been enabled
google.protobuf.BoolValue enable_session_recording = 40 [
json_name = "enable_session_recording" ,
( custom_options.v1.generate_sdk_option ) = true ,
( custom_options.v1.mask_mapping ) = {
this : "attributes.enable_session_recording"
that : "EnableSessionRecording"
}
2023-07-28 12:41:55 -07:00
]; // @gotags: `class:"public" eventstream:"observation"`
2021-11-18 14:17:18 -05:00
}
2020-09-26 08:30:27 -04:00
// WorkerInfo contains information about workers, returned in to the client in SessionAuthorization
2020-09-19 00:18:17 -04:00
message WorkerInfo {
2021-11-09 11:43:41 -05:00
// Output only. The address of the worker.
string address = 10 ; // @gotags: `class:"public"`
2020-09-19 00:18:17 -04:00
}
2023-10-22 17:48:54 -07:00
// SessionAuthorizationData contains the fields needed by the proxy command to
// connect to a worker. It is marshaled inside the SessionAuthorization message.
2020-09-19 00:18:17 -04:00
message SessionAuthorizationData {
2021-11-09 11:43:41 -05:00
// Output only. The ID of the session.
2023-07-28 12:41:55 -07:00
string session_id = 10 [ json_name = "session_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The ID of the Target authorizing this session.
2023-07-28 12:41:55 -07:00
string target_id = 20 [ json_name = "target_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. Scope information for this the Target that authorized this session.
resources.scopes.v1.ScopeInfo scope = 30 ;
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The time this resource was created.
2023-07-28 12:41:55 -07:00
google.protobuf.Timestamp created_time = 40 [ json_name = "created_time" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. Type of the session (e.g. tcp, ssh, etc.).
2023-07-28 12:41:55 -07:00
string type = 80 ; // @gotags: `class:"public" eventstream:"observation"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The connection limit being applied to this session. -1 means unlimited. This is not actually enforced on the client side but it provides for better listener handling by including it.
int32 connection_limit = 90 [ json_name = "connection_limit" ];
2020-09-20 21:18:07 -04:00
2023-10-22 17:48:54 -07:00
// Output only. The endpoint port that will be connected to, either from a
// port directly on the target or from a service definition.
uint32 endpoint_port = 102 [ json_name = "endpoint_port" ]; // @gotags: `class:"public" eventstream:"observation"`
// Output only. The expiration time of the session.
google.protobuf.Timestamp expiration = 105 ; // @gotags: `class:"public" eventstream:"observation"`
2021-11-09 11:43:41 -05:00
// Output only. The certificate to use when connecting. Raw DER bytes.
2022-04-14 14:34:58 -04:00
bytes certificate = 120 ; // @gotags: `class:"sensitive"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The private key to use when connecting. We are using Ed25519, so this is purely raw bytes, no marshaling.
bytes private_key = 130 [ json_name = "private_key" ]; // @gotags: `class:"secret"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The host ID...not used for security purposes, but for some special command handling (e.g. ssh host key aliasing).
2023-07-28 12:41:55 -07:00
string host_id = 140 ; // @gotags: `class:"public" eventstream:"observation"`
2020-10-07 21:30:44 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The endpoint, for some special command handling.
string endpoint = 141 ; // @gotags: `class:"public"`
2020-12-09 14:45:53 -05:00
2021-11-09 11:43:41 -05:00
// Output only. Worker information. The first worker in the array should be prioritized.
repeated WorkerInfo worker_info = 150 [ json_name = "worker_info" ];
2023-04-21 06:50:53 -04:00
// Output only. A default port to listen on for client connections.
uint32 default_client_port = 160 [ json_name = "default_client_port" ]; // @gotags: `class:"public"`
2020-09-19 00:18:17 -04:00
}
2020-09-26 08:30:27 -04:00
// SessionAuthorization contains all fields related to authorization for a Session. It's in the Targets package because it's returned by a Target's authorize action.
2020-09-19 00:18:17 -04:00
message SessionAuthorization {
2021-11-09 11:43:41 -05:00
// Output only. The ID of the Session.
2023-07-28 12:41:55 -07:00
string session_id = 10 [ json_name = "session_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The ID of the Target authorizing this Session.
2023-07-28 12:41:55 -07:00
string target_id = 20 [ json_name = "target_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. Scope information for this resource.
resources.scopes.v1.ScopeInfo scope = 30 ;
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The time this resource was created.
2023-07-28 12:41:55 -07:00
google.protobuf.Timestamp created_time = 40 [ json_name = "created_time" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The User for which this Session was authorized.
2023-07-28 12:41:55 -07:00
string user_id = 50 [ json_name = "user_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-24 14:12:34 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The Host Set containing the Host being used for this Session.
2023-07-28 12:41:55 -07:00
string host_set_id = 60 [ json_name = "host_set_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-24 14:12:34 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The Host whose address is being used as the endpoint for this Session.
2023-07-28 12:41:55 -07:00
string host_id = 70 [ json_name = "host_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2020-09-24 14:12:34 -04:00
2021-11-09 11:43:41 -05:00
// Output only. Type of the Session (e.g. tcp, ssh, etc.).
2023-07-28 12:41:55 -07:00
string type = 80 ; // @gotags: `class:"public" eventstream:"observation"`
2020-09-19 00:18:17 -04:00
2021-11-09 11:43:41 -05:00
// Output only. The marshaled SessionAuthorizationData message containing all information that the proxy needs.
2023-06-01 06:41:09 -07:00
string authorization_token = 90 [ json_name = "authorization_token" ]; // @gotags: `class:"secret"`
2020-12-09 14:45:53 -05:00
2024-01-21 19:34:33 -08:00
// Output only. The connection limit being applied to this session. -1 means unlimited. This is not actually enforced on the client side but it provides for better listener handling by including it.
int32 connection_limit = 95 [ json_name = "connection_limit" ];
2021-11-09 11:43:41 -05:00
// Output only. The endpoint address that the worker will connect to, useful for setting TLS parameters.
string endpoint = 100 ; // @gotags: `class:"public"`
2021-06-22 22:26:26 -04:00
2023-10-22 17:48:54 -07:00
// Output only. The endpoint port that will be connected to, either from a
// port directly on the target or from a service definition.
uint32 endpoint_port = 102 [ json_name = "endpoint_port" ]; // @gotags: `class:"public" eventstream:"observation"`
// Output only. The expiration time of the session.
google.protobuf.Timestamp expiration = 105 ; // @gotags: `class:"public" eventstream:"observation"`
2021-11-09 11:43:41 -05:00
// Output only. The credentials for this session.
repeated SessionCredential credentials = 110 [ json_name = "credentials" ];
2024-04-03 17:54:37 -07:00
// Output only. The ID of the Session Recording.
string session_recording_id = 115 [ json_name = "session_recording_id" ]; // @gotags: `class:"public" eventstream:"observation"`
2021-10-19 09:37:32 -04:00
}
2022-01-05 14:15:38 -08:00
2022-06-27 14:03:12 -07:00
// The layout of the struct for "credential" field in SessionCredential for a username_password credential type.
message UsernamePasswordCredential {
2022-01-05 14:15:38 -08:00
// Username of the credential
2022-04-14 14:34:58 -04:00
string username = 1 ; // @gotags: `class:"sensitive"`
2022-01-05 14:15:38 -08:00
// Password of the credential
2022-04-14 14:34:58 -04:00
string password = 2 ; // @gotags: `class:"secret"`
2022-01-05 14:15:38 -08:00
}
2022-07-19 10:31:53 -07:00
// The layout of the struct for "credential" field in SessionCredential for a ssh_private_key credential type.
message SshPrivateKeyCredential {
// Username of the credential
string username = 1 ; // @gotags: `class:"sensitive"`
// Private key of the credential
string private_key = 2 ; // @gotags: `class:"secret"`
2022-08-08 15:15:03 -04:00
// The optional passphrase of the private_key
string private_key_passphrase = 3 ; // @gotags: `class:"secret"`
2022-07-19 10:31:53 -07:00
}