Reference documentation and code samples for the Cloud Workstations V1BETA API class Google::Cloud::Workstations::V1beta::WorkstationConfig.
A workstation configuration resource in the Cloud Workstations API.
Workstation configurations act as templates for workstations. The workstation configuration defines details such as the workstation virtual machine (VM) instance type, persistent storage, container image defining environment, which IDE or Code Editor to use, and more. Administrators and platform teams can also use Identity and Access Management (IAM) rules to grant access to teams or to individual developers.
Inherits
- Object
Extended By
- Google::Protobuf::MessageExts::ClassMethods
Includes
- Google::Protobuf::MessageExts
Methods
#allowed_ports
def allowed_ports() -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange>- (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange>) — Optional. A list of {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange PortRange}s specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535.
#allowed_ports=
def allowed_ports=(value) -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange>- value (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange>) — Optional. A list of {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange PortRange}s specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535.
- (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange>) — Optional. A list of {::Google::Cloud::Workstations::V1beta::WorkstationConfig::PortRange PortRange}s specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535.
#annotations
def annotations() -> ::Google::Protobuf::Map{::String => ::String}- (::Google::Protobuf::Map{::String => ::String}) — Optional. Client-specified annotations.
#annotations=
def annotations=(value) -> ::Google::Protobuf::Map{::String => ::String}- value (::Google::Protobuf::Map{::String => ::String}) — Optional. Client-specified annotations.
- (::Google::Protobuf::Map{::String => ::String}) — Optional. Client-specified annotations.
#conditions
def conditions() -> ::Array<::Google::Rpc::Status>- (::Array<::Google::Rpc::Status>) — Output only. Status conditions describing the workstation configuration's current state.
#container
def container() -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container- (::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container) — Optional. Container that runs upon startup for each workstation using this workstation configuration.
#container=
def container=(value) -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container- value (::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container) — Optional. Container that runs upon startup for each workstation using this workstation configuration.
- (::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container) — Optional. Container that runs upon startup for each workstation using this workstation configuration.
#create_time
def create_time() -> ::Google::Protobuf::Timestamp- (::Google::Protobuf::Timestamp) — Output only. Time when this workstation configuration was created.
#degraded
def degraded() -> ::Boolean- (::Boolean) — Output only. Whether this workstation configuration is in degraded mode, in which case it may require user action to restore full functionality. The conditions field contains detailed information about the status of the configuration.
#delete_time
def delete_time() -> ::Google::Protobuf::Timestamp- (::Google::Protobuf::Timestamp) — Output only. Time when this workstation configuration was soft-deleted.
#disable_tcp_connections
def disable_tcp_connections() -> ::Boolean- (::Boolean) — Optional. Disables support for plain TCP connections in the workstation. By default the service supports TCP connections through a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain TCP connections, such as SSH. When enabled, all communication must occur over HTTPS or WSS.
#disable_tcp_connections=
def disable_tcp_connections=(value) -> ::Boolean- value (::Boolean) — Optional. Disables support for plain TCP connections in the workstation. By default the service supports TCP connections through a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain TCP connections, such as SSH. When enabled, all communication must occur over HTTPS or WSS.
- (::Boolean) — Optional. Disables support for plain TCP connections in the workstation. By default the service supports TCP connections through a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain TCP connections, such as SSH. When enabled, all communication must occur over HTTPS or WSS.
#display_name
def display_name() -> ::String- (::String) — Optional. Human-readable name for this workstation configuration.
#display_name=
def display_name=(value) -> ::String- value (::String) — Optional. Human-readable name for this workstation configuration.
- (::String) — Optional. Human-readable name for this workstation configuration.
#enable_audit_agent
def enable_audit_agent() -> ::Boolean-
(::Boolean) —
Optional. Whether to enable Linux
auditdlogging on the workstation. When enabled, a service_account must also be specified that hasroles/logging.logWriterandroles/monitoring.metricWriteron the project. Operating system audit logging is distinct from Cloud Audit Logs and Container output logging. Operating system audit logs are available in the Cloud Logging console by querying:resource.type="gce_instance" log_name:"/logs/linux-auditd"
#enable_audit_agent=
def enable_audit_agent=(value) -> ::Boolean-
value (::Boolean) —
Optional. Whether to enable Linux
auditdlogging on the workstation. When enabled, a service_account must also be specified that hasroles/logging.logWriterandroles/monitoring.metricWriteron the project. Operating system audit logging is distinct from Cloud Audit Logs and Container output logging. Operating system audit logs are available in the Cloud Logging console by querying:resource.type="gce_instance" log_name:"/logs/linux-auditd"
-
(::Boolean) —
Optional. Whether to enable Linux
auditdlogging on the workstation. When enabled, a service_account must also be specified that hasroles/logging.logWriterandroles/monitoring.metricWriteron the project. Operating system audit logging is distinct from Cloud Audit Logs and Container output logging. Operating system audit logs are available in the Cloud Logging console by querying:resource.type="gce_instance" log_name:"/logs/linux-auditd"
#enable_pushing_credentials
def enable_pushing_credentials() -> ::Boolean- (::Boolean) — Optional. Enables pushing user provided credentials to Workstations by calling workstations.pushCredentials. If application_default_credentials are supplied to pushCredentials, the provided token is returned when tools and applications running in the user container make a request for Default Application Credentials. Please note that any credentials supplied are made available to all users with access to the workstation.
#enable_pushing_credentials=
def enable_pushing_credentials=(value) -> ::Boolean- value (::Boolean) — Optional. Enables pushing user provided credentials to Workstations by calling workstations.pushCredentials. If application_default_credentials are supplied to pushCredentials, the provided token is returned when tools and applications running in the user container make a request for Default Application Credentials. Please note that any credentials supplied are made available to all users with access to the workstation.
- (::Boolean) — Optional. Enables pushing user provided credentials to Workstations by calling workstations.pushCredentials. If application_default_credentials are supplied to pushCredentials, the provided token is returned when tools and applications running in the user container make a request for Default Application Credentials. Please note that any credentials supplied are made available to all users with access to the workstation.
#encryption_key
def encryption_key() -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::CustomerEncryptionKey-
(::Google::Cloud::Workstations::V1beta::WorkstationConfig::CustomerEncryptionKey) — Immutable. Encrypts resources of this workstation configuration using a
customer-managed encryption key (CMEK).
If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata.
If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk might be lost.
If the encryption key is revoked, the workstation session automatically stops within 7 hours.
Immutable after the workstation configuration is created.
#encryption_key=
def encryption_key=(value) -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::CustomerEncryptionKey-
value (::Google::Cloud::Workstations::V1beta::WorkstationConfig::CustomerEncryptionKey) — Immutable. Encrypts resources of this workstation configuration using a
customer-managed encryption key (CMEK).
If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata.
If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk might be lost.
If the encryption key is revoked, the workstation session automatically stops within 7 hours.
Immutable after the workstation configuration is created.
-
(::Google::Cloud::Workstations::V1beta::WorkstationConfig::CustomerEncryptionKey) — Immutable. Encrypts resources of this workstation configuration using a
customer-managed encryption key (CMEK).
If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata.
If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk might be lost.
If the encryption key is revoked, the workstation session automatically stops within 7 hours.
Immutable after the workstation configuration is created.
#ephemeral_directories
def ephemeral_directories() -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>- (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>) — Optional. Ephemeral directories which won't persist across workstation sessions.
#ephemeral_directories=
def ephemeral_directories=(value) -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>- value (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>) — Optional. Ephemeral directories which won't persist across workstation sessions.
- (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>) — Optional. Ephemeral directories which won't persist across workstation sessions.
#etag
def etag() -> ::String- (::String) — Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.
#etag=
def etag=(value) -> ::String- value (::String) — Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.
- (::String) — Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.
#grant_workstation_admin_role_on_create
def grant_workstation_admin_role_on_create() -> ::Boolean-
(::Boolean) — Optional. Grant creator of a workstation
roles/workstations.policyAdminrole along withroles/workstations.userrole on the workstation created by them. This allows workstation users to share access to either their entire workstation, or individual ports. Defaults to false.
#grant_workstation_admin_role_on_create=
def grant_workstation_admin_role_on_create=(value) -> ::Boolean-
value (::Boolean) — Optional. Grant creator of a workstation
roles/workstations.policyAdminrole along withroles/workstations.userrole on the workstation created by them. This allows workstation users to share access to either their entire workstation, or individual ports. Defaults to false.
-
(::Boolean) — Optional. Grant creator of a workstation
roles/workstations.policyAdminrole along withroles/workstations.userrole on the workstation created by them. This allows workstation users to share access to either their entire workstation, or individual ports. Defaults to false.
#host
def host() -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host- (::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host) — Optional. Runtime host for the workstation.
#host=
def host=(value) -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host- value (::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host) — Optional. Runtime host for the workstation.
- (::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host) — Optional. Runtime host for the workstation.
#http_options
def http_options() -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions- (::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions) — Optional. HTTP options that customize the behavior of the workstation service's HTTP proxy.
#http_options=
def http_options=(value) -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions- value (::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions) — Optional. HTTP options that customize the behavior of the workstation service's HTTP proxy.
- (::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions) — Optional. HTTP options that customize the behavior of the workstation service's HTTP proxy.
#idle_timeout
def idle_timeout() -> ::Google::Protobuf::Duration-
(::Google::Protobuf::Duration) — Optional. Number of seconds to wait before automatically stopping a
workstation after it last received user traffic.
A value of
"0s"indicates that Cloud Workstations VMs created with this configuration should never time out due to idleness. Provide duration terminated bysfor seconds—for example,"7200s"(2 hours). The default is"1200s"(20 minutes).
#idle_timeout=
def idle_timeout=(value) -> ::Google::Protobuf::Duration-
value (::Google::Protobuf::Duration) — Optional. Number of seconds to wait before automatically stopping a
workstation after it last received user traffic.
A value of
"0s"indicates that Cloud Workstations VMs created with this configuration should never time out due to idleness. Provide duration terminated bysfor seconds—for example,"7200s"(2 hours). The default is"1200s"(20 minutes).
-
(::Google::Protobuf::Duration) — Optional. Number of seconds to wait before automatically stopping a
workstation after it last received user traffic.
A value of
"0s"indicates that Cloud Workstations VMs created with this configuration should never time out due to idleness. Provide duration terminated bysfor seconds—for example,"7200s"(2 hours). The default is"1200s"(20 minutes).
#labels
def labels() -> ::Google::Protobuf::Map{::String => ::String}- (::Google::Protobuf::Map{::String => ::String}) — Optional. Labels that are applied to the workstation configuration and that are also propagated to the underlying Compute Engine resources.
#labels=
def labels=(value) -> ::Google::Protobuf::Map{::String => ::String}- value (::Google::Protobuf::Map{::String => ::String}) — Optional. Labels that are applied to the workstation configuration and that are also propagated to the underlying Compute Engine resources.
- (::Google::Protobuf::Map{::String => ::String}) — Optional. Labels that are applied to the workstation configuration and that are also propagated to the underlying Compute Engine resources.
#max_usable_workstations
def max_usable_workstations() -> ::Integer-
(::Integer) — Optional. Maximum number of workstations under this configuration a user
can have
workstations.workstation.usepermission on.Only enforced on CreateWorkstation API calls on the user issuing the API request. Can be overridden by:
- granting a user workstations.workstationConfigs.exemptMaxUsableWorkstationLimit permission, or
- having a user with that permission create a workstation and
granting another user
workstations.workstation.usepermission on that workstation.
If not specified, defaults to
0, which indicates unlimited.
#max_usable_workstations=
def max_usable_workstations=(value) -> ::Integer-
value (::Integer) — Optional. Maximum number of workstations under this configuration a user
can have
workstations.workstation.usepermission on.Only enforced on CreateWorkstation API calls on the user issuing the API request. Can be overridden by:
- granting a user workstations.workstationConfigs.exemptMaxUsableWorkstationLimit permission, or
- having a user with that permission create a workstation and
granting another user
workstations.workstation.usepermission on that workstation.
If not specified, defaults to
0, which indicates unlimited.
-
(::Integer) — Optional. Maximum number of workstations under this configuration a user
can have
workstations.workstation.usepermission on.Only enforced on CreateWorkstation API calls on the user issuing the API request. Can be overridden by:
- granting a user workstations.workstationConfigs.exemptMaxUsableWorkstationLimit permission, or
- having a user with that permission create a workstation and
granting another user
workstations.workstation.usepermission on that workstation.
If not specified, defaults to
0, which indicates unlimited.
#name
def name() -> ::String- (::String) — Identifier. Full name of this workstation configuration.
#name=
def name=(value) -> ::String- value (::String) — Identifier. Full name of this workstation configuration.
- (::String) — Identifier. Full name of this workstation configuration.
#persistent_directories
def persistent_directories() -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>- (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>) — Optional. Directories to persist across workstation sessions.
#persistent_directories=
def persistent_directories=(value) -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>- value (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>) — Optional. Directories to persist across workstation sessions.
- (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>) — Optional. Directories to persist across workstation sessions.
#readiness_checks
def readiness_checks() -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>- (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>) — Optional. Readiness checks to perform when starting a workstation using this workstation configuration. Mark a workstation as running only after all specified readiness checks return 200 status codes.
#readiness_checks=
def readiness_checks=(value) -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>- value (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>) — Optional. Readiness checks to perform when starting a workstation using this workstation configuration. Mark a workstation as running only after all specified readiness checks return 200 status codes.
- (::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>) — Optional. Readiness checks to perform when starting a workstation using this workstation configuration. Mark a workstation as running only after all specified readiness checks return 200 status codes.
#reconciling
def reconciling() -> ::Boolean- (::Boolean) — Output only. Indicates whether this workstation configuration is currently being updated to match its intended state.
#replica_zones
def replica_zones() -> ::Array<::String>-
(::Array<::String>) — Optional. Immutable. Specifies the zones used to replicate the VM and disk
resources within the region. If set, exactly two zones within the
workstation cluster's region must be specified—for example,
['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used.Immutable after the workstation configuration is created.
#replica_zones=
def replica_zones=(value) -> ::Array<::String>-
value (::Array<::String>) — Optional. Immutable. Specifies the zones used to replicate the VM and disk
resources within the region. If set, exactly two zones within the
workstation cluster's region must be specified—for example,
['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used.Immutable after the workstation configuration is created.
-
(::Array<::String>) — Optional. Immutable. Specifies the zones used to replicate the VM and disk
resources within the region. If set, exactly two zones within the
workstation cluster's region must be specified—for example,
['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used.Immutable after the workstation configuration is created.
#running_timeout
def running_timeout() -> ::Google::Protobuf::Duration-
(::Google::Protobuf::Duration) — Optional. Number of seconds that a workstation can run until it is
automatically shut down. We recommend that workstations be shut down daily
to reduce costs and so that security updates can be applied upon restart.
The
idle_timeout
and
running_timeout
fields are independent of each other. Note that the
running_timeout
field shuts down VMs after the specified time, regardless of whether or not
the VMs are idle.
Provide duration terminated by
sfor seconds—for example,"54000s"(15 hours). Defaults to"43200s"(12 hours). A value of"0s"indicates that workstations using this configuration should never time out. If encryption_key is set, it must be greater than"0s"and less than"86400s"(24 hours).Warning: A value of
"0s"indicates that Cloud Workstations VMs created with this configuration have no maximum running time. This is strongly discouraged because you incur costs and will not pick up security updates.
#running_timeout=
def running_timeout=(value) -> ::Google::Protobuf::Duration-
value (::Google::Protobuf::Duration) — Optional. Number of seconds that a workstation can run until it is
automatically shut down. We recommend that workstations be shut down daily
to reduce costs and so that security updates can be applied upon restart.
The
idle_timeout
and
running_timeout
fields are independent of each other. Note that the
running_timeout
field shuts down VMs after the specified time, regardless of whether or not
the VMs are idle.
Provide duration terminated by
sfor seconds—for example,"54000s"(15 hours). Defaults to"43200s"(12 hours). A value of"0s"indicates that workstations using this configuration should never time out. If encryption_key is set, it must be greater than"0s"and less than"86400s"(24 hours).Warning: A value of
"0s"indicates that Cloud Workstations VMs created with this configuration have no maximum running time. This is strongly discouraged because you incur costs and will not pick up security updates.
-
(::Google::Protobuf::Duration) — Optional. Number of seconds that a workstation can run until it is
automatically shut down. We recommend that workstations be shut down daily
to reduce costs and so that security updates can be applied upon restart.
The
idle_timeout
and
running_timeout
fields are independent of each other. Note that the
running_timeout
field shuts down VMs after the specified time, regardless of whether or not
the VMs are idle.
Provide duration terminated by
sfor seconds—for example,"54000s"(15 hours). Defaults to"43200s"(12 hours). A value of"0s"indicates that workstations using this configuration should never time out. If encryption_key is set, it must be greater than"0s"and less than"86400s"(24 hours).Warning: A value of
"0s"indicates that Cloud Workstations VMs created with this configuration have no maximum running time. This is strongly discouraged because you incur costs and will not pick up security updates.
#satisfies_pzi
def satisfies_pzi() -> ::Boolean- (::Boolean) — Output only. Reserved for future use.
#satisfies_pzs
def satisfies_pzs() -> ::Boolean- (::Boolean) — Output only. Reserved for future use.
#uid
def uid() -> ::String- (::String) — Output only. A system-assigned unique identifier for this workstation configuration.
#update_time
def update_time() -> ::Google::Protobuf::Timestamp- (::Google::Protobuf::Timestamp) — Output only. Time when this workstation configuration was most recently updated.