<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="gkehub_v1alpha.html">GKE Hub API</a> . <a href="gkehub_v1alpha.projects.html">projects</a> . <a href="gkehub_v1alpha.projects.locations.html">locations</a> . <a href="gkehub_v1alpha.projects.locations.fleets.html">fleets</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a fleet.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Removes a Fleet. There must be no memberships remaining in the Fleet.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the details of a fleet.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a fleet.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a fleet.

Args:
  parent: string, Required. The parent (project and location) where the Fleet will be created. Specified in the format `projects/*/locations/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Fleet contains the Fleet-wide metadata and configuration.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was created.
  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was deleted.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`
  &quot;fleetName&quot;: &quot;A String&quot;, # The name for the fleet. The name must meet the following constraints: + The name of a fleet should be unique within the organization; + It must consist of lower case alphanumeric characters or `-`; + The length of the name must be less than or equal to 63; + Unicode names must be expressed in Punycode format (rfc3492). Examples: + prod-fleet + xn--wlq33vhyw9jb （Punycode form for &quot;生产环境&quot;)
  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each GCP project can have at most one fleet resource, named &quot;default&quot;.
  &quot;uid&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Fleet resources. If a Fleet resource is deleted and another resource with the same name is created, it gets a different uid.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was last updated.
}

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

Returns:
  An object of the form:

    { # Fleet contains the Fleet-wide metadata and configuration.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was created.
  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was deleted.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`
  &quot;fleetName&quot;: &quot;A String&quot;, # The name for the fleet. The name must meet the following constraints: + The name of a fleet should be unique within the organization; + It must consist of lower case alphanumeric characters or `-`; + The length of the name must be less than or equal to 63; + Unicode names must be expressed in Punycode format (rfc3492). Examples: + prod-fleet + xn--wlq33vhyw9jb （Punycode form for &quot;生产环境&quot;)
  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each GCP project can have at most one fleet resource, named &quot;default&quot;.
  &quot;uid&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Fleet resources. If a Fleet resource is deleted and another resource with the same name is created, it gets a different uid.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was last updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Removes a Fleet. There must be no memberships remaining in the Fleet.

Args:
  name: string, Required. The Fleet resource name in the format `projects/*/locations/*/fleets/*`. (required)
  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>Returns the details of a fleet.

Args:
  name: string, Required. The Fleet resource name in the format `projects/*/locations/*/fleets/*`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Fleet contains the Fleet-wide metadata and configuration.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was created.
  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was deleted.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`
  &quot;fleetName&quot;: &quot;A String&quot;, # The name for the fleet. The name must meet the following constraints: + The name of a fleet should be unique within the organization; + It must consist of lower case alphanumeric characters or `-`; + The length of the name must be less than or equal to 63; + Unicode names must be expressed in Punycode format (rfc3492). Examples: + prod-fleet + xn--wlq33vhyw9jb （Punycode form for &quot;生产环境&quot;)
  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each GCP project can have at most one fleet resource, named &quot;default&quot;.
  &quot;uid&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Fleet resources. If a Fleet resource is deleted and another resource with the same name is created, it gets a different uid.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was last updated.
}</pre>
</div>

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

Args:
  name: string, Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each GCP project can have at most one fleet resource, named &quot;default&quot;. (required)
  body: object, The request body.
    The object takes the form of:

{ # Fleet contains the Fleet-wide metadata and configuration.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was created.
  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was deleted.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`
  &quot;fleetName&quot;: &quot;A String&quot;, # The name for the fleet. The name must meet the following constraints: + The name of a fleet should be unique within the organization; + It must consist of lower case alphanumeric characters or `-`; + The length of the name must be less than or equal to 63; + Unicode names must be expressed in Punycode format (rfc3492). Examples: + prod-fleet + xn--wlq33vhyw9jb （Punycode form for &quot;生产环境&quot;)
  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each GCP project can have at most one fleet resource, named &quot;default&quot;.
  &quot;uid&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Fleet resources. If a Fleet resource is deleted and another resource with the same name is created, it gets a different uid.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was last updated.
}

  updateMask: string, Required. The fields to be updated;
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Fleet contains the Fleet-wide metadata and configuration.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was created.
  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was deleted.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`
  &quot;fleetName&quot;: &quot;A String&quot;, # The name for the fleet. The name must meet the following constraints: + The name of a fleet should be unique within the organization; + It must consist of lower case alphanumeric characters or `-`; + The length of the name must be less than or equal to 63; + Unicode names must be expressed in Punycode format (rfc3492). Examples: + prod-fleet + xn--wlq33vhyw9jb （Punycode form for &quot;生产环境&quot;)
  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each GCP project can have at most one fleet resource, named &quot;default&quot;.
  &quot;uid&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Fleet resources. If a Fleet resource is deleted and another resource with the same name is created, it gets a different uid.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Fleet was last updated.
}</pre>
</div>

</body></html>