Cloud Workstations V1BETA API - Class Google::Cloud::Workstations::V1beta::WorkstationConfig (v0.10.0)

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>
Returns
  • (::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>
Parameter
  • 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.
Returns
  • (::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}
Returns
  • (::Google::Protobuf::Map{::String => ::String}) — Optional. Client-specified annotations.

#annotations=

def annotations=(value) -> ::Google::Protobuf::Map{::String => ::String}
Parameter
  • value (::Google::Protobuf::Map{::String => ::String}) — Optional. Client-specified annotations.
Returns
  • (::Google::Protobuf::Map{::String => ::String}) — Optional. Client-specified annotations.

#conditions

def conditions() -> ::Array<::Google::Rpc::Status>
Returns
  • (::Array<::Google::Rpc::Status>) — Output only. Status conditions describing the workstation configuration's current state.

#container

def container() -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container
Returns

#container=

def container=(value) -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Container
Parameter
Returns

#create_time

def create_time() -> ::Google::Protobuf::Timestamp
Returns

#degraded

def degraded() -> ::Boolean
Returns
  • (::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
Returns

#disable_tcp_connections

def disable_tcp_connections() -> ::Boolean
Returns
  • (::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
Parameter
  • 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.
Returns
  • (::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
Returns
  • (::String) — Optional. Human-readable name for this workstation configuration.

#display_name=

def display_name=(value) -> ::String
Parameter
  • value (::String) — Optional. Human-readable name for this workstation configuration.
Returns
  • (::String) — Optional. Human-readable name for this workstation configuration.

#enable_audit_agent

def enable_audit_agent() -> ::Boolean
Returns
  • (::Boolean) —

    Optional. Whether to enable Linux auditd logging on the workstation. When enabled, a service_account must also be specified that has roles/logging.logWriter and roles/monitoring.metricWriter on 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
Parameter
  • value (::Boolean) —

    Optional. Whether to enable Linux auditd logging on the workstation. When enabled, a service_account must also be specified that has roles/logging.logWriter and roles/monitoring.metricWriter on 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"
    
Returns
  • (::Boolean) —

    Optional. Whether to enable Linux auditd logging on the workstation. When enabled, a service_account must also be specified that has roles/logging.logWriter and roles/monitoring.metricWriter on 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
Returns
  • (::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
Parameter
  • 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.
Returns
  • (::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
Returns
  • (::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
Parameter
  • 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.

Returns
  • (::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>
Returns

#ephemeral_directories=

def ephemeral_directories=(value) -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::EphemeralDirectory>
Parameter
Returns

#etag

def etag() -> ::String
Returns
  • (::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
Parameter
  • 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.
Returns
  • (::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
Returns
  • (::Boolean) — Optional. Grant creator of a workstation roles/workstations.policyAdmin role along with roles/workstations.user role 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
Parameter
  • value (::Boolean) — Optional. Grant creator of a workstation roles/workstations.policyAdmin role along with roles/workstations.user role on the workstation created by them. This allows workstation users to share access to either their entire workstation, or individual ports. Defaults to false.
Returns
  • (::Boolean) — Optional. Grant creator of a workstation roles/workstations.policyAdmin role along with roles/workstations.user role 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
Returns

#host=

def host=(value) -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::Host
Parameter
Returns

#http_options

def http_options() -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions
Returns

#http_options=

def http_options=(value) -> ::Google::Cloud::Workstations::V1beta::WorkstationConfig::HttpOptions
Parameter
Returns

#idle_timeout

def idle_timeout() -> ::Google::Protobuf::Duration
Returns
  • (::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 by s for seconds—for example, "7200s" (2 hours). The default is "1200s" (20 minutes).

#idle_timeout=

def idle_timeout=(value) -> ::Google::Protobuf::Duration
Parameter
  • 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 by s for seconds—for example, "7200s" (2 hours). The default is "1200s" (20 minutes).

Returns
  • (::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 by s for seconds—for example, "7200s" (2 hours). The default is "1200s" (20 minutes).

#labels

def labels() -> ::Google::Protobuf::Map{::String => ::String}
Returns
  • (::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}
Parameter
  • 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.
Returns
  • (::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
Returns
  • (::Integer) — Optional. Maximum number of workstations under this configuration a user can have workstations.workstation.use permission 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.use permission on that workstation.

    If not specified, defaults to 0, which indicates unlimited.

#max_usable_workstations=

def max_usable_workstations=(value) -> ::Integer
Parameter
  • value (::Integer) — Optional. Maximum number of workstations under this configuration a user can have workstations.workstation.use permission 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.use permission on that workstation.

    If not specified, defaults to 0, which indicates unlimited.

Returns
  • (::Integer) — Optional. Maximum number of workstations under this configuration a user can have workstations.workstation.use permission 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.use permission on that workstation.

    If not specified, defaults to 0, which indicates unlimited.

#name

def name() -> ::String
Returns
  • (::String) — Identifier. Full name of this workstation configuration.

#name=

def name=(value) -> ::String
Parameter
  • value (::String) — Identifier. Full name of this workstation configuration.
Returns
  • (::String) — Identifier. Full name of this workstation configuration.

#persistent_directories

def persistent_directories() -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>
Returns

#persistent_directories=

def persistent_directories=(value) -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::PersistentDirectory>
Parameter
Returns

#readiness_checks

def readiness_checks() -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>
Returns

#readiness_checks=

def readiness_checks=(value) -> ::Array<::Google::Cloud::Workstations::V1beta::WorkstationConfig::ReadinessCheck>
Parameter
Returns

#reconciling

def reconciling() -> ::Boolean
Returns
  • (::Boolean) — Output only. Indicates whether this workstation configuration is currently being updated to match its intended state.

#replica_zones

def replica_zones() -> ::Array<::String>
Returns
  • (::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>
Parameter
  • 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.

Returns
  • (::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
Returns
  • (::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 s for 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
Parameter
  • 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 s for 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.

Returns
  • (::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 s for 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
Returns
  • (::Boolean) — Output only. Reserved for future use.

#satisfies_pzs

def satisfies_pzs() -> ::Boolean
Returns
  • (::Boolean) — Output only. Reserved for future use.

#uid

def uid() -> ::String
Returns
  • (::String) — Output only. A system-assigned unique identifier for this workstation configuration.

#update_time

def update_time() -> ::Google::Protobuf::Timestamp
Returns