<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="baremetalsolution_v2.html">Bare Metal Solution API</a> . <a href="baremetalsolution_v2.projects.html">projects</a> . <a href="baremetalsolution_v2.projects.locations.html">locations</a> . <a href="baremetalsolution_v2.projects.locations.provisioningConfigs.html">provisioningConfigs</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, email=None, x__xgafv=None)</a></code></p>
<p class="firstline">Create new ProvisioningConfig.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Get ProvisioningConfig by name.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, email=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Update existing ProvisioningConfig.</p>
<p class="toc_element">
  <code><a href="#submit">submit(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Submit a provisioning configuration for a given project.</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, email=None, x__xgafv=None)</code>
  <pre>Create new ProvisioningConfig.

Args:
  parent: string, Required. The parent project and location containing the ProvisioningConfig. (required)
  body: object, The request body.
    The object takes the form of:

{ # A provisioning configuration.
  &quot;cloudConsoleUri&quot;: &quot;A String&quot;, # Output only. URI to Cloud Console UI view of this provisioning config.
  &quot;customId&quot;: &quot;A String&quot;, # Optional. The user-defined identifier of the provisioning config.
  &quot;email&quot;: &quot;A String&quot;, # Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.
  &quot;handoverServiceAccount&quot;: &quot;A String&quot;, # A service account to enable customers to access instance credentials upon handover.
  &quot;instances&quot;: [ # Instances to be created.
    { # Configuration parameters for a new instance.
      &quot;accountNetworksEnabled&quot;: True or False, # If true networks can be from different projects of the same vendor account.
      &quot;clientNetwork&quot;: { # A network. # Client network address. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;hyperthreading&quot;: True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify an instance within an ProvisioningConfig request.
      &quot;instanceType&quot;: &quot;A String&quot;, # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose.
      &quot;logicalInterfaces&quot;: [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
        { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
          &quot;interfaceIndex&quot;: 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
          &quot;logicalNetworkInterfaces&quot;: [ # List of logical network interfaces within a logical interface.
            { # Each logical network interface is effectively a network and IP pair.
              &quot;defaultGateway&quot;: True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
              &quot;id&quot;: &quot;A String&quot;, # An identifier for the `Network`, generated by the backend.
              &quot;ipAddress&quot;: &quot;A String&quot;, # IP address in the network
              &quot;network&quot;: &quot;A String&quot;, # Name of the network
              &quot;networkType&quot;: &quot;A String&quot;, # Type of network.
            },
          ],
          &quot;name&quot;: &quot;A String&quot;, # Interface name. This is of syntax or and forms part of the network template name.
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the instance config.
      &quot;networkConfig&quot;: &quot;A String&quot;, # The type of network configuration on the instance.
      &quot;networkTemplate&quot;: &quot;A String&quot;, # Server network template name. Filled if InstanceConfig.multivlan_config is true.
      &quot;osImage&quot;: &quot;A String&quot;, # OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;privateNetwork&quot;: { # A network. # Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;sshKeyNames&quot;: [ # Optional. List of names of ssh keys used to provision the instance.
        &quot;A String&quot;,
      ],
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;location&quot;: &quot;A String&quot;, # Optional. Location name of this ProvisioningConfig. It is optional only for Intake UI transition period.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The system-generated name of the provisioning config. This follows the UUID format.
  &quot;networks&quot;: [ # Networks to be created.
    { # Configuration parameters for a new network.
      &quot;bandwidth&quot;: &quot;A String&quot;, # Interconnect bandwidth. Set only when type is CLIENT.
      &quot;cidr&quot;: &quot;A String&quot;, # CIDR range of the network.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;jumboFramesEnabled&quot;: True or False, # The JumboFramesEnabled option for customer to set.
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the network config.
      &quot;serviceCidr&quot;: &quot;A String&quot;, # Service CIDR, if any.
      &quot;type&quot;: &quot;A String&quot;, # The type of this network, either Client or Private.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      &quot;vlanAttachments&quot;: [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan). Use only one of vlan_attachments or vrf
        { # A GCP vlan attachment.
          &quot;id&quot;: &quot;A String&quot;, # Identifier of the VLAN attachment.
          &quot;pairingKey&quot;: &quot;A String&quot;, # Attachment pairing key.
        },
      ],
      &quot;vlanSameProject&quot;: True or False, # Whether the VLAN attachment pair is located in the same project.
      &quot;vrf&quot;: &quot;A String&quot;, # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`. If vrf is specified, vlan_attachments must be empty.
    },
  ],
  &quot;pod&quot;: &quot;A String&quot;, # Optional. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes, nfsshares) allocated in the same pod only.
  &quot;state&quot;: &quot;A String&quot;, # Output only. State of ProvisioningConfig.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Optional status messages associated with the FAILED state.
  &quot;ticketId&quot;: &quot;A String&quot;, # A generated ticket id to track provisioning request.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update timestamp.
  &quot;volumes&quot;: [ # Volumes to be created.
    { # Configuration parameters for a new volume.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;lunRanges&quot;: [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
        { # A LUN(Logical Unit Number) range.
          &quot;quantity&quot;: 42, # Number of LUNs to create.
          &quot;sizeGb&quot;: 42, # The requested size of each LUN, in GB.
        },
      ],
      &quot;machineIds&quot;: [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the volume config.
      &quot;nfsExports&quot;: [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
        { # A NFS export entry.
          &quot;allowDev&quot;: True or False, # Allow dev flag in NfsShare AllowedClientsRequest.
          &quot;allowSuid&quot;: True or False, # Allow the setuid flag.
          &quot;cidr&quot;: &quot;A String&quot;, # A CIDR range.
          &quot;machineId&quot;: &quot;A String&quot;, # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
          &quot;networkId&quot;: &quot;A String&quot;, # Network to use to publish the export.
          &quot;noRootSquash&quot;: True or False, # Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication.
          &quot;permissions&quot;: &quot;A String&quot;, # Export permissions.
        },
      ],
      &quot;performanceTier&quot;: &quot;A String&quot;, # Performance tier of the Volume. Default is SHARED.
      &quot;protocol&quot;: &quot;A String&quot;, # Volume protocol.
      &quot;sizeGb&quot;: 42, # The requested size of this volume, in GB.
      &quot;snapshotsEnabled&quot;: True or False, # Whether snapshots should be enabled.
      &quot;type&quot;: &quot;A String&quot;, # The type of this Volume.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;vpcScEnabled&quot;: True or False, # If true, VPC SC is enabled for the cluster.
}

  email: string, Optional. Email provided to send a confirmation with provisioning config to.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A provisioning configuration.
  &quot;cloudConsoleUri&quot;: &quot;A String&quot;, # Output only. URI to Cloud Console UI view of this provisioning config.
  &quot;customId&quot;: &quot;A String&quot;, # Optional. The user-defined identifier of the provisioning config.
  &quot;email&quot;: &quot;A String&quot;, # Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.
  &quot;handoverServiceAccount&quot;: &quot;A String&quot;, # A service account to enable customers to access instance credentials upon handover.
  &quot;instances&quot;: [ # Instances to be created.
    { # Configuration parameters for a new instance.
      &quot;accountNetworksEnabled&quot;: True or False, # If true networks can be from different projects of the same vendor account.
      &quot;clientNetwork&quot;: { # A network. # Client network address. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;hyperthreading&quot;: True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify an instance within an ProvisioningConfig request.
      &quot;instanceType&quot;: &quot;A String&quot;, # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose.
      &quot;logicalInterfaces&quot;: [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
        { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
          &quot;interfaceIndex&quot;: 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
          &quot;logicalNetworkInterfaces&quot;: [ # List of logical network interfaces within a logical interface.
            { # Each logical network interface is effectively a network and IP pair.
              &quot;defaultGateway&quot;: True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
              &quot;id&quot;: &quot;A String&quot;, # An identifier for the `Network`, generated by the backend.
              &quot;ipAddress&quot;: &quot;A String&quot;, # IP address in the network
              &quot;network&quot;: &quot;A String&quot;, # Name of the network
              &quot;networkType&quot;: &quot;A String&quot;, # Type of network.
            },
          ],
          &quot;name&quot;: &quot;A String&quot;, # Interface name. This is of syntax or and forms part of the network template name.
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the instance config.
      &quot;networkConfig&quot;: &quot;A String&quot;, # The type of network configuration on the instance.
      &quot;networkTemplate&quot;: &quot;A String&quot;, # Server network template name. Filled if InstanceConfig.multivlan_config is true.
      &quot;osImage&quot;: &quot;A String&quot;, # OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;privateNetwork&quot;: { # A network. # Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;sshKeyNames&quot;: [ # Optional. List of names of ssh keys used to provision the instance.
        &quot;A String&quot;,
      ],
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;location&quot;: &quot;A String&quot;, # Optional. Location name of this ProvisioningConfig. It is optional only for Intake UI transition period.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The system-generated name of the provisioning config. This follows the UUID format.
  &quot;networks&quot;: [ # Networks to be created.
    { # Configuration parameters for a new network.
      &quot;bandwidth&quot;: &quot;A String&quot;, # Interconnect bandwidth. Set only when type is CLIENT.
      &quot;cidr&quot;: &quot;A String&quot;, # CIDR range of the network.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;jumboFramesEnabled&quot;: True or False, # The JumboFramesEnabled option for customer to set.
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the network config.
      &quot;serviceCidr&quot;: &quot;A String&quot;, # Service CIDR, if any.
      &quot;type&quot;: &quot;A String&quot;, # The type of this network, either Client or Private.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      &quot;vlanAttachments&quot;: [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan). Use only one of vlan_attachments or vrf
        { # A GCP vlan attachment.
          &quot;id&quot;: &quot;A String&quot;, # Identifier of the VLAN attachment.
          &quot;pairingKey&quot;: &quot;A String&quot;, # Attachment pairing key.
        },
      ],
      &quot;vlanSameProject&quot;: True or False, # Whether the VLAN attachment pair is located in the same project.
      &quot;vrf&quot;: &quot;A String&quot;, # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`. If vrf is specified, vlan_attachments must be empty.
    },
  ],
  &quot;pod&quot;: &quot;A String&quot;, # Optional. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes, nfsshares) allocated in the same pod only.
  &quot;state&quot;: &quot;A String&quot;, # Output only. State of ProvisioningConfig.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Optional status messages associated with the FAILED state.
  &quot;ticketId&quot;: &quot;A String&quot;, # A generated ticket id to track provisioning request.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update timestamp.
  &quot;volumes&quot;: [ # Volumes to be created.
    { # Configuration parameters for a new volume.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;lunRanges&quot;: [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
        { # A LUN(Logical Unit Number) range.
          &quot;quantity&quot;: 42, # Number of LUNs to create.
          &quot;sizeGb&quot;: 42, # The requested size of each LUN, in GB.
        },
      ],
      &quot;machineIds&quot;: [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the volume config.
      &quot;nfsExports&quot;: [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
        { # A NFS export entry.
          &quot;allowDev&quot;: True or False, # Allow dev flag in NfsShare AllowedClientsRequest.
          &quot;allowSuid&quot;: True or False, # Allow the setuid flag.
          &quot;cidr&quot;: &quot;A String&quot;, # A CIDR range.
          &quot;machineId&quot;: &quot;A String&quot;, # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
          &quot;networkId&quot;: &quot;A String&quot;, # Network to use to publish the export.
          &quot;noRootSquash&quot;: True or False, # Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication.
          &quot;permissions&quot;: &quot;A String&quot;, # Export permissions.
        },
      ],
      &quot;performanceTier&quot;: &quot;A String&quot;, # Performance tier of the Volume. Default is SHARED.
      &quot;protocol&quot;: &quot;A String&quot;, # Volume protocol.
      &quot;sizeGb&quot;: 42, # The requested size of this volume, in GB.
      &quot;snapshotsEnabled&quot;: True or False, # Whether snapshots should be enabled.
      &quot;type&quot;: &quot;A String&quot;, # The type of this Volume.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;vpcScEnabled&quot;: True or False, # If true, VPC SC is enabled for the cluster.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Get ProvisioningConfig by name.

Args:
  name: string, Required. Name of the ProvisioningConfig. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A provisioning configuration.
  &quot;cloudConsoleUri&quot;: &quot;A String&quot;, # Output only. URI to Cloud Console UI view of this provisioning config.
  &quot;customId&quot;: &quot;A String&quot;, # Optional. The user-defined identifier of the provisioning config.
  &quot;email&quot;: &quot;A String&quot;, # Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.
  &quot;handoverServiceAccount&quot;: &quot;A String&quot;, # A service account to enable customers to access instance credentials upon handover.
  &quot;instances&quot;: [ # Instances to be created.
    { # Configuration parameters for a new instance.
      &quot;accountNetworksEnabled&quot;: True or False, # If true networks can be from different projects of the same vendor account.
      &quot;clientNetwork&quot;: { # A network. # Client network address. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;hyperthreading&quot;: True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify an instance within an ProvisioningConfig request.
      &quot;instanceType&quot;: &quot;A String&quot;, # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose.
      &quot;logicalInterfaces&quot;: [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
        { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
          &quot;interfaceIndex&quot;: 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
          &quot;logicalNetworkInterfaces&quot;: [ # List of logical network interfaces within a logical interface.
            { # Each logical network interface is effectively a network and IP pair.
              &quot;defaultGateway&quot;: True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
              &quot;id&quot;: &quot;A String&quot;, # An identifier for the `Network`, generated by the backend.
              &quot;ipAddress&quot;: &quot;A String&quot;, # IP address in the network
              &quot;network&quot;: &quot;A String&quot;, # Name of the network
              &quot;networkType&quot;: &quot;A String&quot;, # Type of network.
            },
          ],
          &quot;name&quot;: &quot;A String&quot;, # Interface name. This is of syntax or and forms part of the network template name.
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the instance config.
      &quot;networkConfig&quot;: &quot;A String&quot;, # The type of network configuration on the instance.
      &quot;networkTemplate&quot;: &quot;A String&quot;, # Server network template name. Filled if InstanceConfig.multivlan_config is true.
      &quot;osImage&quot;: &quot;A String&quot;, # OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;privateNetwork&quot;: { # A network. # Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;sshKeyNames&quot;: [ # Optional. List of names of ssh keys used to provision the instance.
        &quot;A String&quot;,
      ],
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;location&quot;: &quot;A String&quot;, # Optional. Location name of this ProvisioningConfig. It is optional only for Intake UI transition period.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The system-generated name of the provisioning config. This follows the UUID format.
  &quot;networks&quot;: [ # Networks to be created.
    { # Configuration parameters for a new network.
      &quot;bandwidth&quot;: &quot;A String&quot;, # Interconnect bandwidth. Set only when type is CLIENT.
      &quot;cidr&quot;: &quot;A String&quot;, # CIDR range of the network.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;jumboFramesEnabled&quot;: True or False, # The JumboFramesEnabled option for customer to set.
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the network config.
      &quot;serviceCidr&quot;: &quot;A String&quot;, # Service CIDR, if any.
      &quot;type&quot;: &quot;A String&quot;, # The type of this network, either Client or Private.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      &quot;vlanAttachments&quot;: [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan). Use only one of vlan_attachments or vrf
        { # A GCP vlan attachment.
          &quot;id&quot;: &quot;A String&quot;, # Identifier of the VLAN attachment.
          &quot;pairingKey&quot;: &quot;A String&quot;, # Attachment pairing key.
        },
      ],
      &quot;vlanSameProject&quot;: True or False, # Whether the VLAN attachment pair is located in the same project.
      &quot;vrf&quot;: &quot;A String&quot;, # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`. If vrf is specified, vlan_attachments must be empty.
    },
  ],
  &quot;pod&quot;: &quot;A String&quot;, # Optional. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes, nfsshares) allocated in the same pod only.
  &quot;state&quot;: &quot;A String&quot;, # Output only. State of ProvisioningConfig.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Optional status messages associated with the FAILED state.
  &quot;ticketId&quot;: &quot;A String&quot;, # A generated ticket id to track provisioning request.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update timestamp.
  &quot;volumes&quot;: [ # Volumes to be created.
    { # Configuration parameters for a new volume.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;lunRanges&quot;: [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
        { # A LUN(Logical Unit Number) range.
          &quot;quantity&quot;: 42, # Number of LUNs to create.
          &quot;sizeGb&quot;: 42, # The requested size of each LUN, in GB.
        },
      ],
      &quot;machineIds&quot;: [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the volume config.
      &quot;nfsExports&quot;: [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
        { # A NFS export entry.
          &quot;allowDev&quot;: True or False, # Allow dev flag in NfsShare AllowedClientsRequest.
          &quot;allowSuid&quot;: True or False, # Allow the setuid flag.
          &quot;cidr&quot;: &quot;A String&quot;, # A CIDR range.
          &quot;machineId&quot;: &quot;A String&quot;, # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
          &quot;networkId&quot;: &quot;A String&quot;, # Network to use to publish the export.
          &quot;noRootSquash&quot;: True or False, # Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication.
          &quot;permissions&quot;: &quot;A String&quot;, # Export permissions.
        },
      ],
      &quot;performanceTier&quot;: &quot;A String&quot;, # Performance tier of the Volume. Default is SHARED.
      &quot;protocol&quot;: &quot;A String&quot;, # Volume protocol.
      &quot;sizeGb&quot;: 42, # The requested size of this volume, in GB.
      &quot;snapshotsEnabled&quot;: True or False, # Whether snapshots should be enabled.
      &quot;type&quot;: &quot;A String&quot;, # The type of this Volume.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;vpcScEnabled&quot;: True or False, # If true, VPC SC is enabled for the cluster.
}</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, email=None, updateMask=None, x__xgafv=None)</code>
  <pre>Update existing ProvisioningConfig.

Args:
  name: string, Output only. The system-generated name of the provisioning config. This follows the UUID format. (required)
  body: object, The request body.
    The object takes the form of:

{ # A provisioning configuration.
  &quot;cloudConsoleUri&quot;: &quot;A String&quot;, # Output only. URI to Cloud Console UI view of this provisioning config.
  &quot;customId&quot;: &quot;A String&quot;, # Optional. The user-defined identifier of the provisioning config.
  &quot;email&quot;: &quot;A String&quot;, # Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.
  &quot;handoverServiceAccount&quot;: &quot;A String&quot;, # A service account to enable customers to access instance credentials upon handover.
  &quot;instances&quot;: [ # Instances to be created.
    { # Configuration parameters for a new instance.
      &quot;accountNetworksEnabled&quot;: True or False, # If true networks can be from different projects of the same vendor account.
      &quot;clientNetwork&quot;: { # A network. # Client network address. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;hyperthreading&quot;: True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify an instance within an ProvisioningConfig request.
      &quot;instanceType&quot;: &quot;A String&quot;, # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose.
      &quot;logicalInterfaces&quot;: [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
        { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
          &quot;interfaceIndex&quot;: 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
          &quot;logicalNetworkInterfaces&quot;: [ # List of logical network interfaces within a logical interface.
            { # Each logical network interface is effectively a network and IP pair.
              &quot;defaultGateway&quot;: True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
              &quot;id&quot;: &quot;A String&quot;, # An identifier for the `Network`, generated by the backend.
              &quot;ipAddress&quot;: &quot;A String&quot;, # IP address in the network
              &quot;network&quot;: &quot;A String&quot;, # Name of the network
              &quot;networkType&quot;: &quot;A String&quot;, # Type of network.
            },
          ],
          &quot;name&quot;: &quot;A String&quot;, # Interface name. This is of syntax or and forms part of the network template name.
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the instance config.
      &quot;networkConfig&quot;: &quot;A String&quot;, # The type of network configuration on the instance.
      &quot;networkTemplate&quot;: &quot;A String&quot;, # Server network template name. Filled if InstanceConfig.multivlan_config is true.
      &quot;osImage&quot;: &quot;A String&quot;, # OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;privateNetwork&quot;: { # A network. # Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;sshKeyNames&quot;: [ # Optional. List of names of ssh keys used to provision the instance.
        &quot;A String&quot;,
      ],
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;location&quot;: &quot;A String&quot;, # Optional. Location name of this ProvisioningConfig. It is optional only for Intake UI transition period.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The system-generated name of the provisioning config. This follows the UUID format.
  &quot;networks&quot;: [ # Networks to be created.
    { # Configuration parameters for a new network.
      &quot;bandwidth&quot;: &quot;A String&quot;, # Interconnect bandwidth. Set only when type is CLIENT.
      &quot;cidr&quot;: &quot;A String&quot;, # CIDR range of the network.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;jumboFramesEnabled&quot;: True or False, # The JumboFramesEnabled option for customer to set.
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the network config.
      &quot;serviceCidr&quot;: &quot;A String&quot;, # Service CIDR, if any.
      &quot;type&quot;: &quot;A String&quot;, # The type of this network, either Client or Private.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      &quot;vlanAttachments&quot;: [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan). Use only one of vlan_attachments or vrf
        { # A GCP vlan attachment.
          &quot;id&quot;: &quot;A String&quot;, # Identifier of the VLAN attachment.
          &quot;pairingKey&quot;: &quot;A String&quot;, # Attachment pairing key.
        },
      ],
      &quot;vlanSameProject&quot;: True or False, # Whether the VLAN attachment pair is located in the same project.
      &quot;vrf&quot;: &quot;A String&quot;, # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`. If vrf is specified, vlan_attachments must be empty.
    },
  ],
  &quot;pod&quot;: &quot;A String&quot;, # Optional. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes, nfsshares) allocated in the same pod only.
  &quot;state&quot;: &quot;A String&quot;, # Output only. State of ProvisioningConfig.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Optional status messages associated with the FAILED state.
  &quot;ticketId&quot;: &quot;A String&quot;, # A generated ticket id to track provisioning request.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update timestamp.
  &quot;volumes&quot;: [ # Volumes to be created.
    { # Configuration parameters for a new volume.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;lunRanges&quot;: [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
        { # A LUN(Logical Unit Number) range.
          &quot;quantity&quot;: 42, # Number of LUNs to create.
          &quot;sizeGb&quot;: 42, # The requested size of each LUN, in GB.
        },
      ],
      &quot;machineIds&quot;: [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the volume config.
      &quot;nfsExports&quot;: [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
        { # A NFS export entry.
          &quot;allowDev&quot;: True or False, # Allow dev flag in NfsShare AllowedClientsRequest.
          &quot;allowSuid&quot;: True or False, # Allow the setuid flag.
          &quot;cidr&quot;: &quot;A String&quot;, # A CIDR range.
          &quot;machineId&quot;: &quot;A String&quot;, # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
          &quot;networkId&quot;: &quot;A String&quot;, # Network to use to publish the export.
          &quot;noRootSquash&quot;: True or False, # Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication.
          &quot;permissions&quot;: &quot;A String&quot;, # Export permissions.
        },
      ],
      &quot;performanceTier&quot;: &quot;A String&quot;, # Performance tier of the Volume. Default is SHARED.
      &quot;protocol&quot;: &quot;A String&quot;, # Volume protocol.
      &quot;sizeGb&quot;: 42, # The requested size of this volume, in GB.
      &quot;snapshotsEnabled&quot;: True or False, # Whether snapshots should be enabled.
      &quot;type&quot;: &quot;A String&quot;, # The type of this Volume.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;vpcScEnabled&quot;: True or False, # If true, VPC SC is enabled for the cluster.
}

  email: string, Optional. Email provided to send a confirmation with provisioning config to.
  updateMask: string, Required. The list of fields to update.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A provisioning configuration.
  &quot;cloudConsoleUri&quot;: &quot;A String&quot;, # Output only. URI to Cloud Console UI view of this provisioning config.
  &quot;customId&quot;: &quot;A String&quot;, # Optional. The user-defined identifier of the provisioning config.
  &quot;email&quot;: &quot;A String&quot;, # Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.
  &quot;handoverServiceAccount&quot;: &quot;A String&quot;, # A service account to enable customers to access instance credentials upon handover.
  &quot;instances&quot;: [ # Instances to be created.
    { # Configuration parameters for a new instance.
      &quot;accountNetworksEnabled&quot;: True or False, # If true networks can be from different projects of the same vendor account.
      &quot;clientNetwork&quot;: { # A network. # Client network address. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;hyperthreading&quot;: True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify an instance within an ProvisioningConfig request.
      &quot;instanceType&quot;: &quot;A String&quot;, # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose.
      &quot;logicalInterfaces&quot;: [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
        { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
          &quot;interfaceIndex&quot;: 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
          &quot;logicalNetworkInterfaces&quot;: [ # List of logical network interfaces within a logical interface.
            { # Each logical network interface is effectively a network and IP pair.
              &quot;defaultGateway&quot;: True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
              &quot;id&quot;: &quot;A String&quot;, # An identifier for the `Network`, generated by the backend.
              &quot;ipAddress&quot;: &quot;A String&quot;, # IP address in the network
              &quot;network&quot;: &quot;A String&quot;, # Name of the network
              &quot;networkType&quot;: &quot;A String&quot;, # Type of network.
            },
          ],
          &quot;name&quot;: &quot;A String&quot;, # Interface name. This is of syntax or and forms part of the network template name.
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # The name of the instance config.
      &quot;networkConfig&quot;: &quot;A String&quot;, # The type of network configuration on the instance.
      &quot;networkTemplate&quot;: &quot;A String&quot;, # Server network template name. Filled if InstanceConfig.multivlan_config is true.
      &quot;osImage&quot;: &quot;A String&quot;, # OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      &quot;privateNetwork&quot;: { # A network. # Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
        &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
        &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
        &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
      },
      &quot;sshKeyNames&quot;: [ # Optional. List of names of ssh keys used to provision the instance.
        &quot;A String&quot;,
      ],
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;location&quot;: &quot;A String&quot;, # Optional. Location name of this ProvisioningConfig. It is optional only for Intake UI transition period.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The system-generated name of the provisioning config. This follows the UUID format.
  &quot;networks&quot;: [ # Networks to be created.
    { # Configuration parameters for a new network.
      &quot;bandwidth&quot;: &quot;A String&quot;, # Interconnect bandwidth. Set only when type is CLIENT.
      &quot;cidr&quot;: &quot;A String&quot;, # CIDR range of the network.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;jumboFramesEnabled&quot;: True or False, # The JumboFramesEnabled option for customer to set.
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the network config.
      &quot;serviceCidr&quot;: &quot;A String&quot;, # Service CIDR, if any.
      &quot;type&quot;: &quot;A String&quot;, # The type of this network, either Client or Private.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      &quot;vlanAttachments&quot;: [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan). Use only one of vlan_attachments or vrf
        { # A GCP vlan attachment.
          &quot;id&quot;: &quot;A String&quot;, # Identifier of the VLAN attachment.
          &quot;pairingKey&quot;: &quot;A String&quot;, # Attachment pairing key.
        },
      ],
      &quot;vlanSameProject&quot;: True or False, # Whether the VLAN attachment pair is located in the same project.
      &quot;vrf&quot;: &quot;A String&quot;, # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`. If vrf is specified, vlan_attachments must be empty.
    },
  ],
  &quot;pod&quot;: &quot;A String&quot;, # Optional. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes, nfsshares) allocated in the same pod only.
  &quot;state&quot;: &quot;A String&quot;, # Output only. State of ProvisioningConfig.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Optional status messages associated with the FAILED state.
  &quot;ticketId&quot;: &quot;A String&quot;, # A generated ticket id to track provisioning request.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update timestamp.
  &quot;volumes&quot;: [ # Volumes to be created.
    { # Configuration parameters for a new volume.
      &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
      &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
      &quot;lunRanges&quot;: [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
        { # A LUN(Logical Unit Number) range.
          &quot;quantity&quot;: 42, # Number of LUNs to create.
          &quot;sizeGb&quot;: 42, # The requested size of each LUN, in GB.
        },
      ],
      &quot;machineIds&quot;: [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the volume config.
      &quot;nfsExports&quot;: [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
        { # A NFS export entry.
          &quot;allowDev&quot;: True or False, # Allow dev flag in NfsShare AllowedClientsRequest.
          &quot;allowSuid&quot;: True or False, # Allow the setuid flag.
          &quot;cidr&quot;: &quot;A String&quot;, # A CIDR range.
          &quot;machineId&quot;: &quot;A String&quot;, # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
          &quot;networkId&quot;: &quot;A String&quot;, # Network to use to publish the export.
          &quot;noRootSquash&quot;: True or False, # Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication.
          &quot;permissions&quot;: &quot;A String&quot;, # Export permissions.
        },
      ],
      &quot;performanceTier&quot;: &quot;A String&quot;, # Performance tier of the Volume. Default is SHARED.
      &quot;protocol&quot;: &quot;A String&quot;, # Volume protocol.
      &quot;sizeGb&quot;: 42, # The requested size of this volume, in GB.
      &quot;snapshotsEnabled&quot;: True or False, # Whether snapshots should be enabled.
      &quot;type&quot;: &quot;A String&quot;, # The type of this Volume.
      &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
    },
  ],
  &quot;vpcScEnabled&quot;: True or False, # If true, VPC SC is enabled for the cluster.
}</pre>
</div>

<div class="method">
    <code class="details" id="submit">submit(parent, body=None, x__xgafv=None)</code>
  <pre>Submit a provisioning configuration for a given project.

Args:
  parent: string, Required. The parent project and location containing the ProvisioningConfig. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for SubmitProvisioningConfig.
  &quot;email&quot;: &quot;A String&quot;, # Optional. Email provided to send a confirmation with provisioning config to.
  &quot;provisioningConfig&quot;: { # A provisioning configuration. # Required. The ProvisioningConfig to create.
    &quot;cloudConsoleUri&quot;: &quot;A String&quot;, # Output only. URI to Cloud Console UI view of this provisioning config.
    &quot;customId&quot;: &quot;A String&quot;, # Optional. The user-defined identifier of the provisioning config.
    &quot;email&quot;: &quot;A String&quot;, # Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.
    &quot;handoverServiceAccount&quot;: &quot;A String&quot;, # A service account to enable customers to access instance credentials upon handover.
    &quot;instances&quot;: [ # Instances to be created.
      { # Configuration parameters for a new instance.
        &quot;accountNetworksEnabled&quot;: True or False, # If true networks can be from different projects of the same vendor account.
        &quot;clientNetwork&quot;: { # A network. # Client network address. Filled if InstanceConfig.multivlan_config is false.
          &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
          &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
          &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
        },
        &quot;hyperthreading&quot;: True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
        &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify an instance within an ProvisioningConfig request.
        &quot;instanceType&quot;: &quot;A String&quot;, # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
        &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose.
        &quot;logicalInterfaces&quot;: [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
          { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
            &quot;interfaceIndex&quot;: 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
            &quot;logicalNetworkInterfaces&quot;: [ # List of logical network interfaces within a logical interface.
              { # Each logical network interface is effectively a network and IP pair.
                &quot;defaultGateway&quot;: True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
                &quot;id&quot;: &quot;A String&quot;, # An identifier for the `Network`, generated by the backend.
                &quot;ipAddress&quot;: &quot;A String&quot;, # IP address in the network
                &quot;network&quot;: &quot;A String&quot;, # Name of the network
                &quot;networkType&quot;: &quot;A String&quot;, # Type of network.
              },
            ],
            &quot;name&quot;: &quot;A String&quot;, # Interface name. This is of syntax or and forms part of the network template name.
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # The name of the instance config.
        &quot;networkConfig&quot;: &quot;A String&quot;, # The type of network configuration on the instance.
        &quot;networkTemplate&quot;: &quot;A String&quot;, # Server network template name. Filled if InstanceConfig.multivlan_config is true.
        &quot;osImage&quot;: &quot;A String&quot;, # OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
        &quot;privateNetwork&quot;: { # A network. # Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
          &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
          &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
          &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
        },
        &quot;sshKeyNames&quot;: [ # Optional. List of names of ssh keys used to provision the instance.
          &quot;A String&quot;,
        ],
        &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      },
    ],
    &quot;location&quot;: &quot;A String&quot;, # Optional. Location name of this ProvisioningConfig. It is optional only for Intake UI transition period.
    &quot;name&quot;: &quot;A String&quot;, # Output only. The system-generated name of the provisioning config. This follows the UUID format.
    &quot;networks&quot;: [ # Networks to be created.
      { # Configuration parameters for a new network.
        &quot;bandwidth&quot;: &quot;A String&quot;, # Interconnect bandwidth. Set only when type is CLIENT.
        &quot;cidr&quot;: &quot;A String&quot;, # CIDR range of the network.
        &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
        &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
        &quot;jumboFramesEnabled&quot;: True or False, # The JumboFramesEnabled option for customer to set.
        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the network config.
        &quot;serviceCidr&quot;: &quot;A String&quot;, # Service CIDR, if any.
        &quot;type&quot;: &quot;A String&quot;, # The type of this network, either Client or Private.
        &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
        &quot;vlanAttachments&quot;: [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan). Use only one of vlan_attachments or vrf
          { # A GCP vlan attachment.
            &quot;id&quot;: &quot;A String&quot;, # Identifier of the VLAN attachment.
            &quot;pairingKey&quot;: &quot;A String&quot;, # Attachment pairing key.
          },
        ],
        &quot;vlanSameProject&quot;: True or False, # Whether the VLAN attachment pair is located in the same project.
        &quot;vrf&quot;: &quot;A String&quot;, # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`. If vrf is specified, vlan_attachments must be empty.
      },
    ],
    &quot;pod&quot;: &quot;A String&quot;, # Optional. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes, nfsshares) allocated in the same pod only.
    &quot;state&quot;: &quot;A String&quot;, # Output only. State of ProvisioningConfig.
    &quot;statusMessage&quot;: &quot;A String&quot;, # Optional status messages associated with the FAILED state.
    &quot;ticketId&quot;: &quot;A String&quot;, # A generated ticket id to track provisioning request.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update timestamp.
    &quot;volumes&quot;: [ # Volumes to be created.
      { # Configuration parameters for a new volume.
        &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
        &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
        &quot;lunRanges&quot;: [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
          { # A LUN(Logical Unit Number) range.
            &quot;quantity&quot;: 42, # Number of LUNs to create.
            &quot;sizeGb&quot;: 42, # The requested size of each LUN, in GB.
          },
        ],
        &quot;machineIds&quot;: [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
          &quot;A String&quot;,
        ],
        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the volume config.
        &quot;nfsExports&quot;: [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
          { # A NFS export entry.
            &quot;allowDev&quot;: True or False, # Allow dev flag in NfsShare AllowedClientsRequest.
            &quot;allowSuid&quot;: True or False, # Allow the setuid flag.
            &quot;cidr&quot;: &quot;A String&quot;, # A CIDR range.
            &quot;machineId&quot;: &quot;A String&quot;, # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
            &quot;networkId&quot;: &quot;A String&quot;, # Network to use to publish the export.
            &quot;noRootSquash&quot;: True or False, # Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication.
            &quot;permissions&quot;: &quot;A String&quot;, # Export permissions.
          },
        ],
        &quot;performanceTier&quot;: &quot;A String&quot;, # Performance tier of the Volume. Default is SHARED.
        &quot;protocol&quot;: &quot;A String&quot;, # Volume protocol.
        &quot;sizeGb&quot;: 42, # The requested size of this volume, in GB.
        &quot;snapshotsEnabled&quot;: True or False, # Whether snapshots should be enabled.
        &quot;type&quot;: &quot;A String&quot;, # The type of this Volume.
        &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      },
    ],
    &quot;vpcScEnabled&quot;: True or False, # If true, VPC SC is enabled for the cluster.
  },
}

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

Returns:
  An object of the form:

    { # Response for SubmitProvisioningConfig.
  &quot;provisioningConfig&quot;: { # A provisioning configuration. # The submitted provisioning config.
    &quot;cloudConsoleUri&quot;: &quot;A String&quot;, # Output only. URI to Cloud Console UI view of this provisioning config.
    &quot;customId&quot;: &quot;A String&quot;, # Optional. The user-defined identifier of the provisioning config.
    &quot;email&quot;: &quot;A String&quot;, # Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.
    &quot;handoverServiceAccount&quot;: &quot;A String&quot;, # A service account to enable customers to access instance credentials upon handover.
    &quot;instances&quot;: [ # Instances to be created.
      { # Configuration parameters for a new instance.
        &quot;accountNetworksEnabled&quot;: True or False, # If true networks can be from different projects of the same vendor account.
        &quot;clientNetwork&quot;: { # A network. # Client network address. Filled if InstanceConfig.multivlan_config is false.
          &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
          &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
          &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
        },
        &quot;hyperthreading&quot;: True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
        &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify an instance within an ProvisioningConfig request.
        &quot;instanceType&quot;: &quot;A String&quot;, # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
        &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose.
        &quot;logicalInterfaces&quot;: [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
          { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
            &quot;interfaceIndex&quot;: 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
            &quot;logicalNetworkInterfaces&quot;: [ # List of logical network interfaces within a logical interface.
              { # Each logical network interface is effectively a network and IP pair.
                &quot;defaultGateway&quot;: True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
                &quot;id&quot;: &quot;A String&quot;, # An identifier for the `Network`, generated by the backend.
                &quot;ipAddress&quot;: &quot;A String&quot;, # IP address in the network
                &quot;network&quot;: &quot;A String&quot;, # Name of the network
                &quot;networkType&quot;: &quot;A String&quot;, # Type of network.
              },
            ],
            &quot;name&quot;: &quot;A String&quot;, # Interface name. This is of syntax or and forms part of the network template name.
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # The name of the instance config.
        &quot;networkConfig&quot;: &quot;A String&quot;, # The type of network configuration on the instance.
        &quot;networkTemplate&quot;: &quot;A String&quot;, # Server network template name. Filled if InstanceConfig.multivlan_config is true.
        &quot;osImage&quot;: &quot;A String&quot;, # OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
        &quot;privateNetwork&quot;: { # A network. # Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
          &quot;address&quot;: &quot;A String&quot;, # IPv4 address to be assigned to the server.
          &quot;existingNetworkId&quot;: &quot;A String&quot;, # Name of the existing network to use.
          &quot;networkId&quot;: &quot;A String&quot;, # Id of the network to use, within the same ProvisioningConfig request.
        },
        &quot;sshKeyNames&quot;: [ # Optional. List of names of ssh keys used to provision the instance.
          &quot;A String&quot;,
        ],
        &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      },
    ],
    &quot;location&quot;: &quot;A String&quot;, # Optional. Location name of this ProvisioningConfig. It is optional only for Intake UI transition period.
    &quot;name&quot;: &quot;A String&quot;, # Output only. The system-generated name of the provisioning config. This follows the UUID format.
    &quot;networks&quot;: [ # Networks to be created.
      { # Configuration parameters for a new network.
        &quot;bandwidth&quot;: &quot;A String&quot;, # Interconnect bandwidth. Set only when type is CLIENT.
        &quot;cidr&quot;: &quot;A String&quot;, # CIDR range of the network.
        &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
        &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
        &quot;jumboFramesEnabled&quot;: True or False, # The JumboFramesEnabled option for customer to set.
        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the network config.
        &quot;serviceCidr&quot;: &quot;A String&quot;, # Service CIDR, if any.
        &quot;type&quot;: &quot;A String&quot;, # The type of this network, either Client or Private.
        &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
        &quot;vlanAttachments&quot;: [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan). Use only one of vlan_attachments or vrf
          { # A GCP vlan attachment.
            &quot;id&quot;: &quot;A String&quot;, # Identifier of the VLAN attachment.
            &quot;pairingKey&quot;: &quot;A String&quot;, # Attachment pairing key.
          },
        ],
        &quot;vlanSameProject&quot;: True or False, # Whether the VLAN attachment pair is located in the same project.
        &quot;vrf&quot;: &quot;A String&quot;, # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`. If vrf is specified, vlan_attachments must be empty.
      },
    ],
    &quot;pod&quot;: &quot;A String&quot;, # Optional. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes, nfsshares) allocated in the same pod only.
    &quot;state&quot;: &quot;A String&quot;, # Output only. State of ProvisioningConfig.
    &quot;statusMessage&quot;: &quot;A String&quot;, # Optional status messages associated with the FAILED state.
    &quot;ticketId&quot;: &quot;A String&quot;, # A generated ticket id to track provisioning request.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update timestamp.
    &quot;volumes&quot;: [ # Volumes to be created.
      { # Configuration parameters for a new volume.
        &quot;gcpService&quot;: &quot;A String&quot;, # The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.
        &quot;id&quot;: &quot;A String&quot;, # A transient unique identifier to identify a volume within an ProvisioningConfig request.
        &quot;lunRanges&quot;: [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
          { # A LUN(Logical Unit Number) range.
            &quot;quantity&quot;: 42, # Number of LUNs to create.
            &quot;sizeGb&quot;: 42, # The requested size of each LUN, in GB.
          },
        ],
        &quot;machineIds&quot;: [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
          &quot;A String&quot;,
        ],
        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the volume config.
        &quot;nfsExports&quot;: [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
          { # A NFS export entry.
            &quot;allowDev&quot;: True or False, # Allow dev flag in NfsShare AllowedClientsRequest.
            &quot;allowSuid&quot;: True or False, # Allow the setuid flag.
            &quot;cidr&quot;: &quot;A String&quot;, # A CIDR range.
            &quot;machineId&quot;: &quot;A String&quot;, # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
            &quot;networkId&quot;: &quot;A String&quot;, # Network to use to publish the export.
            &quot;noRootSquash&quot;: True or False, # Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication.
            &quot;permissions&quot;: &quot;A String&quot;, # Export permissions.
          },
        ],
        &quot;performanceTier&quot;: &quot;A String&quot;, # Performance tier of the Volume. Default is SHARED.
        &quot;protocol&quot;: &quot;A String&quot;, # Volume protocol.
        &quot;sizeGb&quot;: 42, # The requested size of this volume, in GB.
        &quot;snapshotsEnabled&quot;: True or False, # Whether snapshots should be enabled.
        &quot;type&quot;: &quot;A String&quot;, # The type of this Volume.
        &quot;userNote&quot;: &quot;A String&quot;, # User note field, it can be used by customers to add additional information for the BMS Ops team .
      },
    ],
    &quot;vpcScEnabled&quot;: True or False, # If true, VPC SC is enabled for the cluster.
  },
}</pre>
</div>

</body></html>