<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="cloudshell_v1alpha1.html">Cloud Shell API</a> . <a href="cloudshell_v1alpha1.users.html">users</a> . <a href="cloudshell_v1alpha1.users.environments.html">environments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="cloudshell_v1alpha1.users.environments.publicKeys.html">publicKeys()</a></code>
</p>
<p class="firstline">Returns the publicKeys Resource.</p>

<p class="toc_element">
  <code><a href="#authorize">authorize(name, body, x__xgafv=None)</a></code></p>
<p class="firstline">Sends OAuth credentials to a running environment on behalf of a user. When</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets an environment. Returns NOT_FOUND if the environment does not exist.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an existing environment.</p>
<p class="toc_element">
  <code><a href="#start">start(name, body, x__xgafv=None)</a></code></p>
<p class="firstline">Starts an existing environment, allowing clients to connect to it. The</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="authorize">authorize(name, body, x__xgafv=None)</code>
  <pre>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.

Args:
  name: string, Name of the resource that should receive the credentials, for example
`users/me/environments/default` or
`users/someone@example.com/environments/default`. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Request message for AuthorizeEnvironment.
    "expireTime": "A String", # The time when the credentials expire. If not set, defaults to one hour from
        # when the server received the request.
    "idToken": "A String", # The OAuth ID token that should be sent to the environment.
    "accessToken": "A String", # The OAuth access token that should be sent to the environment.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated
      # empty messages in your APIs. A typical example is to use it as the request
      # or the response type of an API method. For instance:
      #
      #     service Foo {
      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
      #     }
      #
      # The JSON representation for `Empty` is empty JSON object `{}`.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets an environment. Returns NOT_FOUND if the environment does not exist.

Args:
  name: string, Name of the requested resource, for example `users/me/environments/default`
or `users/someone@example.com/environments/default`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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 a
        # single environment with the ID "default".
      "name": "A String", # Output only. 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`.
      "dockerImage": "A String", # Required. Full path to the Docker image used to run this environment, e.g.
          # "gcr.io/dev-con/cloud-devshell:latest".
      "publicKeys": [ # 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 CreatePublicKey and DeletePublicKey
          # methods.
        { # A public SSH key, corresponding to a private SSH key held by the client.
          "name": "A String", # Output only. Full name of this resource, in the format
              # `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`.
              # `{owner_email}` is the email address of the user to whom the key belongs.
              # `{environment_id}` is the identifier of the environment to which the key
              # grants access. `{key_id}` is the unique identifier of the key. For example,
              # `users/someone@example.com/environments/default/publicKeys/myKey`.
          "key": "A String", # Required. Content of this key.
          "format": "A String", # Required. Format of this key's content.
        },
      ],
      "state": "A String", # Output only. Current execution state of this environment.
      "sshHost": "A String", # Output only. Host to which clients can connect to initiate SSH sessions
          # with the environment.
      "sshPort": 42, # Output only. Port to which clients can connect to initiate SSH sessions
          # with the environment.
      "sshUsername": "A String", # Output only. Username that clients should use when initiating SSH sessions
          # with the environment.
      "id": "A String", # Output only. The environment's identifier, which is always "default".
    }</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body, updateMask=None, x__xgafv=None)</code>
  <pre>Updates an existing environment.

Args:
  name: string, Name of the resource to be updated, for example
`users/me/environments/default` or
`users/someone@example.com/environments/default`. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # 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 a
      # single environment with the ID "default".
    "name": "A String", # Output only. 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`.
    "dockerImage": "A String", # Required. Full path to the Docker image used to run this environment, e.g.
        # "gcr.io/dev-con/cloud-devshell:latest".
    "publicKeys": [ # 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 CreatePublicKey and DeletePublicKey
        # methods.
      { # A public SSH key, corresponding to a private SSH key held by the client.
        "name": "A String", # Output only. Full name of this resource, in the format
            # `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`.
            # `{owner_email}` is the email address of the user to whom the key belongs.
            # `{environment_id}` is the identifier of the environment to which the key
            # grants access. `{key_id}` is the unique identifier of the key. For example,
            # `users/someone@example.com/environments/default/publicKeys/myKey`.
        "key": "A String", # Required. Content of this key.
        "format": "A String", # Required. Format of this key's content.
      },
    ],
    "state": "A String", # Output only. Current execution state of this environment.
    "sshHost": "A String", # Output only. Host to which clients can connect to initiate SSH sessions
        # with the environment.
    "sshPort": 42, # Output only. Port to which clients can connect to initiate SSH sessions
        # with the environment.
    "sshUsername": "A String", # Output only. Username that clients should use when initiating SSH sessions
        # with the environment.
    "id": "A String", # Output only. The environment's identifier, which is always "default".
  }

  updateMask: string, Mask specifying which fields in the environment should be updated.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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 a
        # single environment with the ID "default".
      "name": "A String", # Output only. 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`.
      "dockerImage": "A String", # Required. Full path to the Docker image used to run this environment, e.g.
          # "gcr.io/dev-con/cloud-devshell:latest".
      "publicKeys": [ # 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 CreatePublicKey and DeletePublicKey
          # methods.
        { # A public SSH key, corresponding to a private SSH key held by the client.
          "name": "A String", # Output only. Full name of this resource, in the format
              # `users/{owner_email}/environments/{environment_id}/publicKeys/{key_id}`.
              # `{owner_email}` is the email address of the user to whom the key belongs.
              # `{environment_id}` is the identifier of the environment to which the key
              # grants access. `{key_id}` is the unique identifier of the key. For example,
              # `users/someone@example.com/environments/default/publicKeys/myKey`.
          "key": "A String", # Required. Content of this key.
          "format": "A String", # Required. Format of this key's content.
        },
      ],
      "state": "A String", # Output only. Current execution state of this environment.
      "sshHost": "A String", # Output only. Host to which clients can connect to initiate SSH sessions
          # with the environment.
      "sshPort": 42, # Output only. Port to which clients can connect to initiate SSH sessions
          # with the environment.
      "sshUsername": "A String", # Output only. Username that clients should use when initiating SSH sessions
          # with the environment.
      "id": "A String", # Output only. The environment's identifier, which is always "default".
    }</pre>
</div>

<div class="method">
    <code class="details" id="start">start(name, body, x__xgafv=None)</code>
  <pre>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.

Args:
  name: string, Name of the resource that should be started, for example
`users/me/environments/default` or
`users/someone@example.com/environments/default`. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Request message for StartEnvironment.
    "accessToken": "A 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.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a
      # network API call.
    "response": { # The normal response of the operation in case of success.  If the original
        # method returns no data on success, such as `Delete`, the response is
        # `google.protobuf.Empty`.  If the original method is standard
        # `Get`/`Create`/`Update`, the response should be the resource.  For other
        # methods, the response should have the type `XxxResponse`, where `Xxx`
        # is the original method name.  For example, if the original method name
        # is `TakeSnapshot()`, the inferred response type is
        # `TakeSnapshotResponse`.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "metadata": { # Service-specific metadata associated with the operation.  It typically
        # contains progress information and common metadata such as create time.
        # Some services might not provide such metadata.  Any method that returns a
        # long-running operation should document the metadata type, if any.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "done": True or False, # If the value is `false`, it means the operation is still in progress.
        # If `true`, the operation is completed, and either `error` or `response` is
        # available.
    "name": "A String", # The server-assigned name, which is only unique within the same service that
        # originally returns it. If you use the default HTTP mapping, the
        # `name` should be a resource name ending with `operations/{unique_id}`.
    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
        # different programming environments, including REST APIs and RPC APIs. It is
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
        # three pieces of data: error code, error message, and error details.
        #
        # You can find out more about this error model and how to work with it in the
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
      "message": "A String", # A developer-facing error message, which should be in English. Any
          # user-facing error message should be localized and sent in the
          # google.rpc.Status.details field, or localized by the client.
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "details": [ # A list of messages that carry the error details.  There is a common set of
          # message types for APIs to use.
        {
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      ],
    },
  }</pre>
</div>

</body></html>