# Bare Metal Solution API . projects . locations

## Instance Methods

Close httplib2 connections.

Submit a provisiong configuration for a given project.

### Method Details

`close()`

    Close httplib2 connections.

`submitProvisioningConfig(project, location, body=None, x__xgafv=None)`

    Submit a provisiong configuration for a given project.

    Args:
      project: string, Required. The target project of the provisioning request. (required)
      location: string, Required. The target location of the provisioning request. (required)
      body: object, The request body.
        The object takes the form of:

    { # Request for SubmitProvisioningConfig.
      "email": "A String", # Optional. Email provided to send a confirmation with provisioning config to.
      "provisioningConfig": { # An provisioning configuration. # Required. The ProvisioningConfig to submit.
        "instances": [ # Instances to be created.
          { # Configuration parameters for a new instance.
            "clientNetwork": { # A network. # Client network address.
              "address": "A String", # IP address to be assigned to the server.
              "existingNetworkId": "A String", # Name of the existing network to use. Will be of the format at--vlan for pre-intake UI networks like for eg, at-123456-vlan001 or any user-defined name like for eg, my-network-name for networks provisioned using intake UI. The field is exclusively filled only in case of an already existing network. Mutually exclusive with network_id.
              "networkId": "A String", # Name of the network to use, within the same ProvisioningConfig request. This represents a new network being provisioned in the same request. Can have any user-defined name like for eg, my-network-name. Mutually exclusive with existing_network_id.
            },
            "hyperthreading": True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
            "id": "A String", # A transient unique identifier to idenfity an instance within an ProvisioningConfig request.
            "instanceType": "A String", # Instance type.
            "location": "A String", # Location where to deploy the instance.
            "osImage": "A String", # OS image to initialize the instance.
            "privateNetwork": { # A network. # Private network address, if any.
              "address": "A String", # IP address to be assigned to the server.
              "existingNetworkId": "A String", # Name of the existing network to use. Will be of the format at--vlan for pre-intake UI networks like for eg, at-123456-vlan001 or any user-defined name like for eg, my-network-name for networks provisioned using intake UI. The field is exclusively filled only in case of an already existing network. Mutually exclusive with network_id.
              "networkId": "A String", # Name of the network to use, within the same ProvisioningConfig request. This represents a new network being provisioned in the same request. Can have any user-defined name like for eg, my-network-name. Mutually exclusive with existing_network_id.
            },
            "userNote": "A String", # User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).
          },
        ],
        "networks": [ # Networks to be created.
          { # Configuration parameters for a new network.
            "bandwidth": "A String", # Interconnect bandwidth. Set only when type is CLIENT.
            "cidr": "A String", # CIDR range of the network.
            "id": "A String", # A transient unique identifier to identify a volume within an ProvisioningConfig request.
            "location": "A String", # Location where to deploy the network.
            "serviceCidr": "A String", # Service CIDR, if any.
            "type": "A String", # The type of this network.
            "userNote": "A String", # User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).
            "vlanAttachments": [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan).
              { # A GCP vlan attachment.
                "id": "A String", # Identifier of the VLAN attachment.
                "pairingKey": "A String", # Attachment pairing key.
              },
            ],
          },
        ],
        "ticketId": "A String", # A reference to track the request.
        "volumes": [ # Volumes to be created.
          { # Configuration parameters for a new volume.
            "id": "A String", # A transient unique identifier to identify a volume within an ProvisioningConfig request.
            "location": "A String", # Location where to deploy the volume.
            "lunRanges": [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
              { # A LUN range.
                "quantity": 42, # Number of LUNs to create.
                "sizeGb": 42, # The requested size of each LUN, in GB.
              },
            ],
            "machineIds": [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
              "A String",
            ],
            "nfsExports": [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
              { # A NFS export entry.
                "allowDev": True or False, # Allow dev.
                "allowSuid": True or False, # Allow the setuid flag.
                "cidr": "A String", # A CIDR range.
                "machineId": "A String", # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
                "networkId": "A String", # Network to use to publish the export.
                "noRootSquash": True or False, # Disable root squashing.
                "permissions": "A String", # Export permissions.
              },
            ],
            "protocol": "A String", # Volume protocol.
            "sizeGb": 42, # The requested size of this volume, in GB. This will be updated in a later iteration with a generic size field.
            "snapshotsEnabled": True or False, # Whether snapshots should be enabled.
            "type": "A String", # The type of this Volume.
            "userNote": "A String", # User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).
          },
        ],
      },
    }

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

    Returns:
      An object of the form:

        { # An provisioning configuration.
      "instances": [ # Instances to be created.
        { # Configuration parameters for a new instance.
          "clientNetwork": { # A network. # Client network address.
            "address": "A String", # IP address to be assigned to the server.
            "existingNetworkId": "A String", # Name of the existing network to use. Will be of the format at--vlan for pre-intake UI networks like for eg, at-123456-vlan001 or any user-defined name like for eg, my-network-name for networks provisioned using intake UI. The field is exclusively filled only in case of an already existing network. Mutually exclusive with network_id.
            "networkId": "A String", # Name of the network to use, within the same ProvisioningConfig request. This represents a new network being provisioned in the same request. Can have any user-defined name like for eg, my-network-name. Mutually exclusive with existing_network_id.
          },
          "hyperthreading": True or False, # Whether the instance should be provisioned with Hyperthreading enabled.
          "id": "A String", # A transient unique identifier to idenfity an instance within an ProvisioningConfig request.
          "instanceType": "A String", # Instance type.
          "location": "A String", # Location where to deploy the instance.
          "osImage": "A String", # OS image to initialize the instance.
          "privateNetwork": { # A network. # Private network address, if any.
            "address": "A String", # IP address to be assigned to the server.
            "existingNetworkId": "A String", # Name of the existing network to use. Will be of the format at--vlan for pre-intake UI networks like for eg, at-123456-vlan001 or any user-defined name like for eg, my-network-name for networks provisioned using intake UI. The field is exclusively filled only in case of an already existing network. Mutually exclusive with network_id.
            "networkId": "A String", # Name of the network to use, within the same ProvisioningConfig request. This represents a new network being provisioned in the same request. Can have any user-defined name like for eg, my-network-name. Mutually exclusive with existing_network_id.
          },
          "userNote": "A String", # User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).
        },
      ],
      "networks": [ # Networks to be created.
        { # Configuration parameters for a new network.
          "bandwidth": "A String", # Interconnect bandwidth. Set only when type is CLIENT.
          "cidr": "A String", # CIDR range of the network.
          "id": "A String", # A transient unique identifier to identify a volume within an ProvisioningConfig request.
          "location": "A String", # Location where to deploy the network.
          "serviceCidr": "A String", # Service CIDR, if any.
          "type": "A String", # The type of this network.
          "userNote": "A String", # User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).
          "vlanAttachments": [ # List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan).
            { # A GCP vlan attachment.
              "id": "A String", # Identifier of the VLAN attachment.
              "pairingKey": "A String", # Attachment pairing key.
            },
          ],
        },
      ],
      "ticketId": "A String", # A reference to track the request.
      "volumes": [ # Volumes to be created.
        { # Configuration parameters for a new volume.
          "id": "A String", # A transient unique identifier to identify a volume within an ProvisioningConfig request.
          "location": "A String", # Location where to deploy the volume.
          "lunRanges": [ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
            { # A LUN range.
              "quantity": 42, # Number of LUNs to create.
              "sizeGb": 42, # The requested size of each LUN, in GB.
            },
          ],
          "machineIds": [ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
            "A String",
          ],
          "nfsExports": [ # NFS exports. Set only when protocol is PROTOCOL_NFS.
            { # A NFS export entry.
              "allowDev": True or False, # Allow dev.
              "allowSuid": True or False, # Allow the setuid flag.
              "cidr": "A String", # A CIDR range.
              "machineId": "A String", # Either a single machine, identified by an ID, or a comma-separated list of machine IDs.
              "networkId": "A String", # Network to use to publish the export.
              "noRootSquash": True or False, # Disable root squashing.
              "permissions": "A String", # Export permissions.
            },
          ],
          "protocol": "A String", # Volume protocol.
          "sizeGb": 42, # The requested size of this volume, in GB. This will be updated in a later iteration with a generic size field.
          "snapshotsEnabled": True or False, # Whether snapshots should be enabled.
          "type": "A String", # The type of this Volume.
          "userNote": "A String", # User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).
        },
      ],
    }