Package google.cloud.shell.v1

Index

CloudShellService

API for interacting with Google Cloud Shell. Each user of Cloud Shell has at least one environment, which has the ID "default". Environment consists of a Docker image defining what is installed on the environment and a home directory containing the user's data that will remain across sessions. Clients use this API to start and fetch information about their environment, which can then be used to connect to that environment via a separate SSH client.

AddPublicKey

rpc AddPublicKey(AddPublicKeyRequest) returns (Operation)

Adds a public SSH key to an environment, allowing clients with the corresponding private key to connect to that environment via SSH. If a key with the same content already exists, this will error with ALREADY_EXISTS.

Authorization Scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

AuthorizeEnvironment

rpc AuthorizeEnvironment(AuthorizeEnvironmentRequest) returns (Operation)

Sends OAuth credentials to a running environment on behalf of a user. When this completes, the environment will be authorized to run various Google Cloud command line tools without requiring the user to manually authenticate.

Authorization Scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

GetEnvironment

rpc GetEnvironment(GetEnvironmentRequest) returns (Environment)

Gets an environment. Returns NOT_FOUND if the environment does not exist.

Authorization Scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

RemovePublicKey

rpc RemovePublicKey(RemovePublicKeyRequest) returns (Operation)

Removes a public SSH key from an environment. Clients will no longer be able to connect to the environment using the corresponding private key. If a key with the same content is not present, this will error with NOT_FOUND.

Authorization Scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

StartEnvironment

rpc StartEnvironment(StartEnvironmentRequest) returns (Operation)

Starts an existing environment, allowing clients to connect to it. The returned operation will contain an instance of StartEnvironmentMetadata in its metadata field. Users can wait for the environment to start by polling this operation via GetOperation. Once the environment has finished starting and is ready to accept connections, the operation will contain a StartEnvironmentResponse in its response field.

Authorization Scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

AddPublicKeyMetadata

Message included in the metadata field of operations returned from AddPublicKey.

AddPublicKeyRequest

Request message for AddPublicKey.

Fields
environment

string

Environment this key should be added to, e.g. users/me/environments/default.

key

string

Key that should be added to the environment. Supported formats are ssh-dss (see RFC4253), ssh-rsa (see RFC4253), ecdsa-sha2-nistp256 (see RFC5656), ecdsa-sha2-nistp384 (see RFC5656) and ecdsa-sha2-nistp521 (see RFC5656). It should be structured as <format> <content>, where <content> part is encoded with Base64.

AddPublicKeyResponse

Response message for AddPublicKey.

Fields
key

string

Key that was added to the environment.

AuthorizeEnvironmentMetadata

Message included in the metadata field of operations returned from AuthorizeEnvironment.

AuthorizeEnvironmentRequest

Request message for AuthorizeEnvironment.

Fields
name

string

Name of the resource that should receive the credentials, for example users/me/environments/default or users/someone@example.com/environments/default.

access_token

string

The OAuth access token that should be sent to the environment.

id_token

string

The OAuth ID token that should be sent to the environment.

expire_time

Timestamp

The time when the credentials expire. If not set, defaults to one hour from when the server received the request.

AuthorizeEnvironmentResponse

Response message for AuthorizeEnvironment.

CloudShellErrorDetails

Cloud-shell specific information that will be included as details in failure responses.

Fields
code

CloudShellErrorCode

Code indicating the specific error the occurred.

CloudShellErrorCode

Set of possible errors returned from API calls.

Enums
CLOUD_SHELL_ERROR_CODE_UNSPECIFIED An unknown error occurred.
IMAGE_UNAVAILABLE The image used by the Cloud Shell environment either does not exist or the user does not have access to it.
CLOUD_SHELL_DISABLED Cloud Shell has been disabled by an administrator for the user making the request.
TOS_VIOLATION Cloud Shell has been permanently disabled due to a Terms of Service violation by the user.
QUOTA_EXCEEDED The user has exhausted their weekly Cloud Shell quota, and Cloud Shell will be disabled until the quota resets.
ENVIRONMENT_UNAVAILABLE The Cloud Shell environment is unavailable and cannot be connected to at the moment.

CreateEnvironmentMetadata

Message included in the metadata field of operations returned from CreateEnvironment.

DeleteEnvironmentMetadata

Message included in the metadata field of operations returned from DeleteEnvironment.

Environment

A Cloud Shell environment, which is defined as the combination of a Docker image specifying what is installed on the environment and a home directory containing the user's data that will remain across sessions. Each user has at least an environment with the ID "default".

Fields
name

string

Immutable. Full name of this resource, in the format users/{owner_email}/environments/{environment_id}. {owner_email} is the email address of the user to whom this environment belongs, and {environment_id} is the identifier of this environment. For example, users/someone@example.com/environments/default.

id

string

Output only. The environment's identifier, unique among the user's environments.

docker_image

string

Required. Immutable. Full path to the Docker image used to run this environment, e.g. "gcr.io/dev-con/cloud-devshell:latest".

state

State

Output only. Current execution state of this environment.

web_host

string

Output only. Host to which clients can connect to initiate HTTPS or WSS connections with the environment.

ssh_username

string

Output only. Username that clients should use when initiating SSH sessions with the environment.

ssh_host

string

Output only. Host to which clients can connect to initiate SSH sessions with the environment.

ssh_port

int32

Output only. Port to which clients can connect to initiate SSH sessions with the environment.

public_keys[]

string

Output only. Public keys associated with the environment. Clients can connect to this environment via SSH only if they possess a private key corresponding to at least one of these public keys. Keys can be added to or removed from the environment using the AddPublicKey and RemovePublicKey methods.

State

Possible execution states for an environment.

Enums
STATE_UNSPECIFIED The environment's states is unknown.
SUSPENDED The environment is not running and can't be connected to. Starting the environment will transition it to the PENDING state.
PENDING The environment is being started but is not yet ready to accept connections.
RUNNING The environment is running and ready to accept connections. It will automatically transition back to DISABLED after a period of inactivity or if another environment is started.
DELETING The environment is being deleted and can't be connected to.

GetEnvironmentRequest

Request message for GetEnvironment.

Fields
name

string

Required. Name of the requested resource, for example users/me/environments/default or users/someone@example.com/environments/default.

RemovePublicKeyMetadata

Message included in the metadata field of operations returned from RemovePublicKey.

RemovePublicKeyRequest

Request message for RemovePublicKey.

Fields
environment

string

Environment this key should be removed from, e.g. users/me/environments/default.

key

string

Key that should be removed from the environment.

RemovePublicKeyResponse

Response message for RemovePublicKey.

StartEnvironmentMetadata

Message included in the metadata field of operations returned from StartEnvironment.

Fields
state

State

Current state of the environment being started.

State

Possible states an environment might transition between during startup. These states are not normally actionable by clients, but may be used to show a progress message to the user. An environment won't necessarily go through all of these states when starting. More states are likely to be added in the future.

Enums
STATE_UNSPECIFIED The environment's start state is unknown.
STARTING The environment is in the process of being started, but no additional details are available.
UNARCHIVING_DISK Startup is waiting for the user's disk to be unarchived. This can happen when the user returns to Cloud Shell after not having used it for a while, and suggests that startup will take longer than normal.
AWAITING_COMPUTE_RESOURCES Startup is waiting for compute resources to be assigned to the environment. This should normally happen very quickly, but an environment might stay in this state for an extended period of time if the system is experiencing heavy load.
FINISHED Startup has completed. If the start operation was successful, the user should be able to establish an SSH connection to their environment. Otherwise, the operation will contain details of the failure.

StartEnvironmentRequest

Request message for StartEnvironment.

Fields
name

string

Name of the resource that should be started, for example users/me/environments/default or users/someone@example.com/environments/default.

access_token

string

The initial access token passed to the environment. If this is present and valid, the environment will be pre-authenticated with gcloud so that the user can run gcloud commands in Cloud Shell without having to log in. This code can be updated later by calling AuthorizeEnvironment.

public_keys[]

string

Public keys that should be added to the environment before it is started.

StartEnvironmentResponse

Message included in the response field of operations returned from StartEnvironment once the operation is complete.

Fields
environment

Environment

Environment that was started.