<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="reseller_v1.html">Google Workspace Reseller API</a> . <a href="reseller_v1.customers.html">customers</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="#get">get(customerId, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).</p>
<p class="toc_element">
  <code><a href="#insert">insert(body=None, customerAuthToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Orders a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer's administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer's behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).</p>
<p class="toc_element">
  <code><a href="#patch">patch(customerId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a customer account's settings. This method supports patch semantics. You cannot update `customerType` via the Reseller API, but a `"team"` customer can verify their domain and become `customerType = "domain"`. For more information, see [Verify your domain to unlock Essentials features](https://support.google.com/a/answer/9122284).</p>
<p class="toc_element">
  <code><a href="#update">update(customerId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a customer account's settings. You cannot update `customerType` via the Reseller API, but a `"team"` customer can verify their domain and become `customerType = "domain"`. For more information, see [update a customer's settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).</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="get">get(customerId, x__xgafv=None)</code>
  <pre>Gets a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).

Args:
  customerId: string, This can be either the customer&#x27;s primary domain name or the customer&#x27;s unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer&#x27;s unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # When a Google customer&#x27;s account is registered with a reseller, the customer&#x27;s subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
  &quot;alternateEmail&quot;: &quot;A String&quot;, # Like the &quot;Customer email&quot; in the reseller tools, this email is the secondary contact used if something happens to the customer&#x27;s service such as service outage or a security issue. This property is required when creating a new &quot;domain&quot; customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a &quot;team&quot; customer.
  &quot;customerDomain&quot;: &quot;A String&quot;, # The customer&#x27;s primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
  &quot;customerDomainVerified&quot;: True or False, # Whether the customer&#x27;s primary domain has been verified.
  &quot;customerId&quot;: &quot;A String&quot;, # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
  &quot;customerType&quot;: &quot;A String&quot;, # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
  &quot;kind&quot;: &quot;reseller#customer&quot;, # Identifies the resource as a customer. Value: `reseller#customer`
  &quot;phoneNumber&quot;: &quot;A String&quot;, # Customer contact phone number. Must start with &quot;+&quot; followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, &quot;123&quot;. This field is silently ignored if invalid.
  &quot;postalAddress&quot;: { # JSON template for address of a customer. # A customer&#x27;s address information. Each field has a limit of 255 charcters.
    &quot;addressLine1&quot;: &quot;A String&quot;, # A customer&#x27;s physical address. An address can be composed of one to three lines. The `addressline2` and `addressLine3` are optional.
    &quot;addressLine2&quot;: &quot;A String&quot;, # Line 2 of the address.
    &quot;addressLine3&quot;: &quot;A String&quot;, # Line 3 of the address.
    &quot;contactName&quot;: &quot;A String&quot;, # The customer contact&#x27;s name. This is required.
    &quot;countryCode&quot;: &quot;A String&quot;, # For `countryCode` information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
    &quot;kind&quot;: &quot;customers#address&quot;, # Identifies the resource as a customer address. Value: `customers#address`
    &quot;locality&quot;: &quot;A String&quot;, # An example of a `locality` value is the city of `San Francisco`.
    &quot;organizationName&quot;: &quot;A String&quot;, # The company or company division name. This is required.
    &quot;postalCode&quot;: &quot;A String&quot;, # A `postalCode` example is a postal zip code such as `94043`. This property is required when creating a new customer.
    &quot;region&quot;: &quot;A String&quot;, # An example of a `region` value is `CA` for the state of California.
  },
  &quot;primaryAdmin&quot;: { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer.
    &quot;primaryEmail&quot;: &quot;A String&quot;, # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer&#x27;s Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.
  },
  &quot;resourceUiUrl&quot;: &quot;A String&quot;, # URL to customer&#x27;s Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(body=None, customerAuthToken=None, x__xgafv=None)</code>
  <pre>Orders a new customer&#x27;s account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer&#x27;s administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer&#x27;s behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).

Args:
  body: object, The request body.
    The object takes the form of:

{ # When a Google customer&#x27;s account is registered with a reseller, the customer&#x27;s subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
  &quot;alternateEmail&quot;: &quot;A String&quot;, # Like the &quot;Customer email&quot; in the reseller tools, this email is the secondary contact used if something happens to the customer&#x27;s service such as service outage or a security issue. This property is required when creating a new &quot;domain&quot; customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a &quot;team&quot; customer.
  &quot;customerDomain&quot;: &quot;A String&quot;, # The customer&#x27;s primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
  &quot;customerDomainVerified&quot;: True or False, # Whether the customer&#x27;s primary domain has been verified.
  &quot;customerId&quot;: &quot;A String&quot;, # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
  &quot;customerType&quot;: &quot;A String&quot;, # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
  &quot;kind&quot;: &quot;reseller#customer&quot;, # Identifies the resource as a customer. Value: `reseller#customer`
  &quot;phoneNumber&quot;: &quot;A String&quot;, # Customer contact phone number. Must start with &quot;+&quot; followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, &quot;123&quot;. This field is silently ignored if invalid.
  &quot;postalAddress&quot;: { # JSON template for address of a customer. # A customer&#x27;s address information. Each field has a limit of 255 charcters.
    &quot;addressLine1&quot;: &quot;A String&quot;, # A customer&#x27;s physical address. An address can be composed of one to three lines. The `addressline2` and `addressLine3` are optional.
    &quot;addressLine2&quot;: &quot;A String&quot;, # Line 2 of the address.
    &quot;addressLine3&quot;: &quot;A String&quot;, # Line 3 of the address.
    &quot;contactName&quot;: &quot;A String&quot;, # The customer contact&#x27;s name. This is required.
    &quot;countryCode&quot;: &quot;A String&quot;, # For `countryCode` information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
    &quot;kind&quot;: &quot;customers#address&quot;, # Identifies the resource as a customer address. Value: `customers#address`
    &quot;locality&quot;: &quot;A String&quot;, # An example of a `locality` value is the city of `San Francisco`.
    &quot;organizationName&quot;: &quot;A String&quot;, # The company or company division name. This is required.
    &quot;postalCode&quot;: &quot;A String&quot;, # A `postalCode` example is a postal zip code such as `94043`. This property is required when creating a new customer.
    &quot;region&quot;: &quot;A String&quot;, # An example of a `region` value is `CA` for the state of California.
  },
  &quot;primaryAdmin&quot;: { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer.
    &quot;primaryEmail&quot;: &quot;A String&quot;, # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer&#x27;s Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.
  },
  &quot;resourceUiUrl&quot;: &quot;A String&quot;, # URL to customer&#x27;s Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
}

  customerAuthToken: string, The `customerAuthToken` query string is required when creating a resold account that transfers a direct customer&#x27;s subscription or transfers another reseller customer&#x27;s subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # When a Google customer&#x27;s account is registered with a reseller, the customer&#x27;s subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
  &quot;alternateEmail&quot;: &quot;A String&quot;, # Like the &quot;Customer email&quot; in the reseller tools, this email is the secondary contact used if something happens to the customer&#x27;s service such as service outage or a security issue. This property is required when creating a new &quot;domain&quot; customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a &quot;team&quot; customer.
  &quot;customerDomain&quot;: &quot;A String&quot;, # The customer&#x27;s primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
  &quot;customerDomainVerified&quot;: True or False, # Whether the customer&#x27;s primary domain has been verified.
  &quot;customerId&quot;: &quot;A String&quot;, # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
  &quot;customerType&quot;: &quot;A String&quot;, # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
  &quot;kind&quot;: &quot;reseller#customer&quot;, # Identifies the resource as a customer. Value: `reseller#customer`
  &quot;phoneNumber&quot;: &quot;A String&quot;, # Customer contact phone number. Must start with &quot;+&quot; followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, &quot;123&quot;. This field is silently ignored if invalid.
  &quot;postalAddress&quot;: { # JSON template for address of a customer. # A customer&#x27;s address information. Each field has a limit of 255 charcters.
    &quot;addressLine1&quot;: &quot;A String&quot;, # A customer&#x27;s physical address. An address can be composed of one to three lines. The `addressline2` and `addressLine3` are optional.
    &quot;addressLine2&quot;: &quot;A String&quot;, # Line 2 of the address.
    &quot;addressLine3&quot;: &quot;A String&quot;, # Line 3 of the address.
    &quot;contactName&quot;: &quot;A String&quot;, # The customer contact&#x27;s name. This is required.
    &quot;countryCode&quot;: &quot;A String&quot;, # For `countryCode` information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
    &quot;kind&quot;: &quot;customers#address&quot;, # Identifies the resource as a customer address. Value: `customers#address`
    &quot;locality&quot;: &quot;A String&quot;, # An example of a `locality` value is the city of `San Francisco`.
    &quot;organizationName&quot;: &quot;A String&quot;, # The company or company division name. This is required.
    &quot;postalCode&quot;: &quot;A String&quot;, # A `postalCode` example is a postal zip code such as `94043`. This property is required when creating a new customer.
    &quot;region&quot;: &quot;A String&quot;, # An example of a `region` value is `CA` for the state of California.
  },
  &quot;primaryAdmin&quot;: { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer.
    &quot;primaryEmail&quot;: &quot;A String&quot;, # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer&#x27;s Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.
  },
  &quot;resourceUiUrl&quot;: &quot;A String&quot;, # URL to customer&#x27;s Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
}</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(customerId, body=None, x__xgafv=None)</code>
  <pre>Updates a customer account&#x27;s settings. This method supports patch semantics. You cannot update `customerType` via the Reseller API, but a `&quot;team&quot;` customer can verify their domain and become `customerType = &quot;domain&quot;`. For more information, see [Verify your domain to unlock Essentials features](https://support.google.com/a/answer/9122284).

Args:
  customerId: string, This can be either the customer&#x27;s primary domain name or the customer&#x27;s unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer&#x27;s unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable. (required)
  body: object, The request body.
    The object takes the form of:

{ # When a Google customer&#x27;s account is registered with a reseller, the customer&#x27;s subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
  &quot;alternateEmail&quot;: &quot;A String&quot;, # Like the &quot;Customer email&quot; in the reseller tools, this email is the secondary contact used if something happens to the customer&#x27;s service such as service outage or a security issue. This property is required when creating a new &quot;domain&quot; customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a &quot;team&quot; customer.
  &quot;customerDomain&quot;: &quot;A String&quot;, # The customer&#x27;s primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
  &quot;customerDomainVerified&quot;: True or False, # Whether the customer&#x27;s primary domain has been verified.
  &quot;customerId&quot;: &quot;A String&quot;, # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
  &quot;customerType&quot;: &quot;A String&quot;, # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
  &quot;kind&quot;: &quot;reseller#customer&quot;, # Identifies the resource as a customer. Value: `reseller#customer`
  &quot;phoneNumber&quot;: &quot;A String&quot;, # Customer contact phone number. Must start with &quot;+&quot; followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, &quot;123&quot;. This field is silently ignored if invalid.
  &quot;postalAddress&quot;: { # JSON template for address of a customer. # A customer&#x27;s address information. Each field has a limit of 255 charcters.
    &quot;addressLine1&quot;: &quot;A String&quot;, # A customer&#x27;s physical address. An address can be composed of one to three lines. The `addressline2` and `addressLine3` are optional.
    &quot;addressLine2&quot;: &quot;A String&quot;, # Line 2 of the address.
    &quot;addressLine3&quot;: &quot;A String&quot;, # Line 3 of the address.
    &quot;contactName&quot;: &quot;A String&quot;, # The customer contact&#x27;s name. This is required.
    &quot;countryCode&quot;: &quot;A String&quot;, # For `countryCode` information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
    &quot;kind&quot;: &quot;customers#address&quot;, # Identifies the resource as a customer address. Value: `customers#address`
    &quot;locality&quot;: &quot;A String&quot;, # An example of a `locality` value is the city of `San Francisco`.
    &quot;organizationName&quot;: &quot;A String&quot;, # The company or company division name. This is required.
    &quot;postalCode&quot;: &quot;A String&quot;, # A `postalCode` example is a postal zip code such as `94043`. This property is required when creating a new customer.
    &quot;region&quot;: &quot;A String&quot;, # An example of a `region` value is `CA` for the state of California.
  },
  &quot;primaryAdmin&quot;: { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer.
    &quot;primaryEmail&quot;: &quot;A String&quot;, # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer&#x27;s Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.
  },
  &quot;resourceUiUrl&quot;: &quot;A String&quot;, # URL to customer&#x27;s Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
}

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

Returns:
  An object of the form:

    { # When a Google customer&#x27;s account is registered with a reseller, the customer&#x27;s subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
  &quot;alternateEmail&quot;: &quot;A String&quot;, # Like the &quot;Customer email&quot; in the reseller tools, this email is the secondary contact used if something happens to the customer&#x27;s service such as service outage or a security issue. This property is required when creating a new &quot;domain&quot; customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a &quot;team&quot; customer.
  &quot;customerDomain&quot;: &quot;A String&quot;, # The customer&#x27;s primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
  &quot;customerDomainVerified&quot;: True or False, # Whether the customer&#x27;s primary domain has been verified.
  &quot;customerId&quot;: &quot;A String&quot;, # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
  &quot;customerType&quot;: &quot;A String&quot;, # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
  &quot;kind&quot;: &quot;reseller#customer&quot;, # Identifies the resource as a customer. Value: `reseller#customer`
  &quot;phoneNumber&quot;: &quot;A String&quot;, # Customer contact phone number. Must start with &quot;+&quot; followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, &quot;123&quot;. This field is silently ignored if invalid.
  &quot;postalAddress&quot;: { # JSON template for address of a customer. # A customer&#x27;s address information. Each field has a limit of 255 charcters.
    &quot;addressLine1&quot;: &quot;A String&quot;, # A customer&#x27;s physical address. An address can be composed of one to three lines. The `addressline2` and `addressLine3` are optional.
    &quot;addressLine2&quot;: &quot;A String&quot;, # Line 2 of the address.
    &quot;addressLine3&quot;: &quot;A String&quot;, # Line 3 of the address.
    &quot;contactName&quot;: &quot;A String&quot;, # The customer contact&#x27;s name. This is required.
    &quot;countryCode&quot;: &quot;A String&quot;, # For `countryCode` information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
    &quot;kind&quot;: &quot;customers#address&quot;, # Identifies the resource as a customer address. Value: `customers#address`
    &quot;locality&quot;: &quot;A String&quot;, # An example of a `locality` value is the city of `San Francisco`.
    &quot;organizationName&quot;: &quot;A String&quot;, # The company or company division name. This is required.
    &quot;postalCode&quot;: &quot;A String&quot;, # A `postalCode` example is a postal zip code such as `94043`. This property is required when creating a new customer.
    &quot;region&quot;: &quot;A String&quot;, # An example of a `region` value is `CA` for the state of California.
  },
  &quot;primaryAdmin&quot;: { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer.
    &quot;primaryEmail&quot;: &quot;A String&quot;, # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer&#x27;s Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.
  },
  &quot;resourceUiUrl&quot;: &quot;A String&quot;, # URL to customer&#x27;s Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(customerId, body=None, x__xgafv=None)</code>
  <pre>Updates a customer account&#x27;s settings. You cannot update `customerType` via the Reseller API, but a `&quot;team&quot;` customer can verify their domain and become `customerType = &quot;domain&quot;`. For more information, see [update a customer&#x27;s settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).

Args:
  customerId: string, This can be either the customer&#x27;s primary domain name or the customer&#x27;s unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer&#x27;s unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable. (required)
  body: object, The request body.
    The object takes the form of:

{ # When a Google customer&#x27;s account is registered with a reseller, the customer&#x27;s subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
  &quot;alternateEmail&quot;: &quot;A String&quot;, # Like the &quot;Customer email&quot; in the reseller tools, this email is the secondary contact used if something happens to the customer&#x27;s service such as service outage or a security issue. This property is required when creating a new &quot;domain&quot; customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a &quot;team&quot; customer.
  &quot;customerDomain&quot;: &quot;A String&quot;, # The customer&#x27;s primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
  &quot;customerDomainVerified&quot;: True or False, # Whether the customer&#x27;s primary domain has been verified.
  &quot;customerId&quot;: &quot;A String&quot;, # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
  &quot;customerType&quot;: &quot;A String&quot;, # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
  &quot;kind&quot;: &quot;reseller#customer&quot;, # Identifies the resource as a customer. Value: `reseller#customer`
  &quot;phoneNumber&quot;: &quot;A String&quot;, # Customer contact phone number. Must start with &quot;+&quot; followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, &quot;123&quot;. This field is silently ignored if invalid.
  &quot;postalAddress&quot;: { # JSON template for address of a customer. # A customer&#x27;s address information. Each field has a limit of 255 charcters.
    &quot;addressLine1&quot;: &quot;A String&quot;, # A customer&#x27;s physical address. An address can be composed of one to three lines. The `addressline2` and `addressLine3` are optional.
    &quot;addressLine2&quot;: &quot;A String&quot;, # Line 2 of the address.
    &quot;addressLine3&quot;: &quot;A String&quot;, # Line 3 of the address.
    &quot;contactName&quot;: &quot;A String&quot;, # The customer contact&#x27;s name. This is required.
    &quot;countryCode&quot;: &quot;A String&quot;, # For `countryCode` information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
    &quot;kind&quot;: &quot;customers#address&quot;, # Identifies the resource as a customer address. Value: `customers#address`
    &quot;locality&quot;: &quot;A String&quot;, # An example of a `locality` value is the city of `San Francisco`.
    &quot;organizationName&quot;: &quot;A String&quot;, # The company or company division name. This is required.
    &quot;postalCode&quot;: &quot;A String&quot;, # A `postalCode` example is a postal zip code such as `94043`. This property is required when creating a new customer.
    &quot;region&quot;: &quot;A String&quot;, # An example of a `region` value is `CA` for the state of California.
  },
  &quot;primaryAdmin&quot;: { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer.
    &quot;primaryEmail&quot;: &quot;A String&quot;, # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer&#x27;s Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.
  },
  &quot;resourceUiUrl&quot;: &quot;A String&quot;, # URL to customer&#x27;s Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
}

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

Returns:
  An object of the form:

    { # When a Google customer&#x27;s account is registered with a reseller, the customer&#x27;s subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.
  &quot;alternateEmail&quot;: &quot;A String&quot;, # Like the &quot;Customer email&quot; in the reseller tools, this email is the secondary contact used if something happens to the customer&#x27;s service such as service outage or a security issue. This property is required when creating a new &quot;domain&quot; customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a &quot;team&quot; customer.
  &quot;customerDomain&quot;: &quot;A String&quot;, # The customer&#x27;s primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.
  &quot;customerDomainVerified&quot;: True or False, # Whether the customer&#x27;s primary domain has been verified.
  &quot;customerId&quot;: &quot;A String&quot;, # This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.
  &quot;customerType&quot;: &quot;A String&quot;, # Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).
  &quot;kind&quot;: &quot;reseller#customer&quot;, # Identifies the resource as a customer. Value: `reseller#customer`
  &quot;phoneNumber&quot;: &quot;A String&quot;, # Customer contact phone number. Must start with &quot;+&quot; followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, &quot;123&quot;. This field is silently ignored if invalid.
  &quot;postalAddress&quot;: { # JSON template for address of a customer. # A customer&#x27;s address information. Each field has a limit of 255 charcters.
    &quot;addressLine1&quot;: &quot;A String&quot;, # A customer&#x27;s physical address. An address can be composed of one to three lines. The `addressline2` and `addressLine3` are optional.
    &quot;addressLine2&quot;: &quot;A String&quot;, # Line 2 of the address.
    &quot;addressLine3&quot;: &quot;A String&quot;, # Line 3 of the address.
    &quot;contactName&quot;: &quot;A String&quot;, # The customer contact&#x27;s name. This is required.
    &quot;countryCode&quot;: &quot;A String&quot;, # For `countryCode` information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.
    &quot;kind&quot;: &quot;customers#address&quot;, # Identifies the resource as a customer address. Value: `customers#address`
    &quot;locality&quot;: &quot;A String&quot;, # An example of a `locality` value is the city of `San Francisco`.
    &quot;organizationName&quot;: &quot;A String&quot;, # The company or company division name. This is required.
    &quot;postalCode&quot;: &quot;A String&quot;, # A `postalCode` example is a postal zip code such as `94043`. This property is required when creating a new customer.
    &quot;region&quot;: &quot;A String&quot;, # An example of a `region` value is `CA` for the state of California.
  },
  &quot;primaryAdmin&quot;: { # JSON template for primary admin in case of TEAM customers # The first admin details of the customer, present in case of TEAM customer.
    &quot;primaryEmail&quot;: &quot;A String&quot;, # The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer&#x27;s Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.
  },
  &quot;resourceUiUrl&quot;: &quot;A String&quot;, # URL to customer&#x27;s Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.
}</pre>
</div>

</body></html>