<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="content_v2.html">Content API for Shopping</a> . <a href="content_v2.accountshipping.html">accountshipping</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#custombatch">custombatch(body, dryRun=None)</a></code></p>
<p class="firstline">Retrieves and updates the shipping settings of multiple accounts in a single request.</p>
<p class="toc_element">
  <code><a href="#get">get(merchantId, accountId)</a></code></p>
<p class="firstline">Retrieves the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.</p>
<p class="toc_element">
  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">Lists the shipping settings of the sub-accounts in your Merchant Center account. This method can only be called for multi-client accounts.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(merchantId, accountId, body, dryRun=None)</a></code></p>
<p class="firstline">Updates the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(merchantId, accountId, body, dryRun=None)</a></code></p>
<p class="firstline">Updates the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="custombatch">custombatch(body, dryRun=None)</code>
  <pre>Retrieves and updates the shipping settings of multiple accounts in a single request.

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

{
    "entries": [ # The request entries to be processed in the batch.
      { # A batch entry encoding a single non-batch accountshipping request.
        "batchId": 42, # An entry ID, unique within the batch request.
        "method": "A String",
        "accountShipping": { # The shipping settings of a merchant account. # The account shipping settings to update. Only defined if the method is update.
          "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
          "carrierRates": [ # Carrier-based shipping calculations.
            { # A carrier-calculated shipping rate.
              "shippingOrigin": "A String", # Shipping origin represented as a postal code.
              "name": "A String", # The name of the carrier rate.
              "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
              "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
              "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
              "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
              "modifierFlatRate": { # Additive shipping rate modifier.
                "currency": "A String", # The currency of the price.
                "value": "A String", # The price represented as a number.
              },
            },
          ],
          "locationGroups": [ # Location groups for shipping.
            { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
              "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
                { # A postal code range, that can be either:
                    # - A range of postal codes (e.g., start=12340, end=12359)
                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
                },
              ],
              "country": "A String", # The CLDR territory code of the country in which this location group is.
              "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
                "A String",
              ],
              "name": "A String", # The name of the location group.
              "postalCodes": [ # A postal code representing a city or a set of cities.
                  # - A single postal code (e.g., 12345)
                  # - A postal code prefix followed by a star (e.g., 1234*)
                "A String",
              ],
            },
          ],
          "services": [ # Shipping services describing shipping fees calculation.
            { # Shipping services provided in a country.
              "name": "A String", # The name of this shipping service.
              "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
              "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
                "rateTable": "A String", # Name of the rate table to use for the calculation.
                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
              "active": True or False, # Whether the shipping service is available.
              "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
                  # - The tree root should have no condition and no calculation method.
                  # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
                  # - The last child of an element must have no condition and matches all elements not previously matched.
                  # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
                "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
                  "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
                  "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
                  "rateTable": "A String", # Name of the rate table to use for the calculation.
                  "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
                  "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                },
                "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                    "value": "A String", # The weight represented as a number.
                    "unit": "A String", # The weight unit.
                  },
                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                      # - A range of postal codes (e.g., start=12340, end=12359)
                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
                  },
                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
                },
                "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
                  # Object with schema name: AccountShippingShippingServiceCostRule
                ],
              },
            },
          ],
          "accountId": "A String", # The ID of the account to which these account shipping settings belong.
          "rateTables": [ # Rate tables definitions.
            { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
              "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
                {
                  "rate": { # The rate applicable if the cell conditions are matched.
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                  "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
                    "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                      "value": "A String", # The weight represented as a number.
                      "unit": "A String", # The weight unit.
                    },
                    "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
                    "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
                    "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                        # - A range of postal codes (e.g., start=12340, end=12359)
                        # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                      "start": "A String", # The first (inclusive) postal code or prefix of the range.
                      "end": "A String", # The last (inclusive) postal code or prefix of the range.
                    },
                    "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
                    "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
                  },
                },
              ],
              "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
              "name": "A String", # The name of the rate table.
            },
          ],
        },
        "merchantId": "A String", # The ID of the managing account.
        "accountId": "A String", # The ID of the account for which to get/update account shipping settings.
      },
    ],
  }

  dryRun: boolean, Flag to run the request in dry-run mode.

Returns:
  An object of the form:

    {
    "kind": "content#accountshippingCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingCustomBatchResponse".
    "entries": [ # The result of the execution of the batch requests.
      { # A batch entry encoding a single non-batch accountshipping response.
        "batchId": 42, # The ID of the request entry this entry responds to.
        "kind": "content#accountshippingCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingCustomBatchResponseEntry".
        "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
          "message": "A String", # The message of the first error in errors.
          "code": 42, # The HTTP status of the first error in errors.
          "errors": [ # A list of errors.
            { # An error returned by the API.
              "reason": "A String", # The error code.
              "domain": "A String", # The domain of the error.
              "message": "A String", # A description of the error.
            },
          ],
        },
        "accountShipping": { # The shipping settings of a merchant account. # The retrieved or updated account shipping settings.
          "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
          "carrierRates": [ # Carrier-based shipping calculations.
            { # A carrier-calculated shipping rate.
              "shippingOrigin": "A String", # Shipping origin represented as a postal code.
              "name": "A String", # The name of the carrier rate.
              "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
              "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
              "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
              "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
              "modifierFlatRate": { # Additive shipping rate modifier.
                "currency": "A String", # The currency of the price.
                "value": "A String", # The price represented as a number.
              },
            },
          ],
          "locationGroups": [ # Location groups for shipping.
            { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
              "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
                { # A postal code range, that can be either:
                    # - A range of postal codes (e.g., start=12340, end=12359)
                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
                },
              ],
              "country": "A String", # The CLDR territory code of the country in which this location group is.
              "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
                "A String",
              ],
              "name": "A String", # The name of the location group.
              "postalCodes": [ # A postal code representing a city or a set of cities.
                  # - A single postal code (e.g., 12345)
                  # - A postal code prefix followed by a star (e.g., 1234*)
                "A String",
              ],
            },
          ],
          "services": [ # Shipping services describing shipping fees calculation.
            { # Shipping services provided in a country.
              "name": "A String", # The name of this shipping service.
              "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
              "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
                "rateTable": "A String", # Name of the rate table to use for the calculation.
                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
              "active": True or False, # Whether the shipping service is available.
              "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
                  # - The tree root should have no condition and no calculation method.
                  # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
                  # - The last child of an element must have no condition and matches all elements not previously matched.
                  # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
                "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
                  "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
                  "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
                  "rateTable": "A String", # Name of the rate table to use for the calculation.
                  "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
                  "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                },
                "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                    "value": "A String", # The weight represented as a number.
                    "unit": "A String", # The weight unit.
                  },
                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                      # - A range of postal codes (e.g., start=12340, end=12359)
                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
                  },
                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
                },
                "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
                  # Object with schema name: AccountShippingShippingServiceCostRule
                ],
              },
            },
          ],
          "accountId": "A String", # The ID of the account to which these account shipping settings belong.
          "rateTables": [ # Rate tables definitions.
            { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
              "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
                {
                  "rate": { # The rate applicable if the cell conditions are matched.
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                  "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
                    "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                      "value": "A String", # The weight represented as a number.
                      "unit": "A String", # The weight unit.
                    },
                    "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
                    "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
                    "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                        # - A range of postal codes (e.g., start=12340, end=12359)
                        # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                      "start": "A String", # The first (inclusive) postal code or prefix of the range.
                      "end": "A String", # The last (inclusive) postal code or prefix of the range.
                    },
                    "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
                    "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
                  },
                },
              ],
              "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
              "name": "A String", # The name of the rate table.
            },
          ],
        },
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(merchantId, accountId)</code>
  <pre>Retrieves the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.

Args:
  merchantId: string, The ID of the managing account. (required)
  accountId: string, The ID of the account for which to get/update account shipping settings. (required)

Returns:
  An object of the form:

    { # The shipping settings of a merchant account.
    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
    "carrierRates": [ # Carrier-based shipping calculations.
      { # A carrier-calculated shipping rate.
        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
        "name": "A String", # The name of the carrier rate.
        "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
        "modifierFlatRate": { # Additive shipping rate modifier.
          "currency": "A String", # The currency of the price.
          "value": "A String", # The price represented as a number.
        },
      },
    ],
    "locationGroups": [ # Location groups for shipping.
      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
          { # A postal code range, that can be either:
              # - A range of postal codes (e.g., start=12340, end=12359)
              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
            "start": "A String", # The first (inclusive) postal code or prefix of the range.
            "end": "A String", # The last (inclusive) postal code or prefix of the range.
          },
        ],
        "country": "A String", # The CLDR territory code of the country in which this location group is.
        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
          "A String",
        ],
        "name": "A String", # The name of the location group.
        "postalCodes": [ # A postal code representing a city or a set of cities.
            # - A single postal code (e.g., 12345)
            # - A postal code prefix followed by a star (e.g., 1234*)
          "A String",
        ],
      },
    ],
    "services": [ # Shipping services describing shipping fees calculation.
      { # Shipping services provided in a country.
        "name": "A String", # The name of this shipping service.
        "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
        "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
          "rateTable": "A String", # Name of the rate table to use for the calculation.
          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
        },
        "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
        "active": True or False, # Whether the shipping service is available.
        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
            # - The tree root should have no condition and no calculation method.
            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
            # - The last child of an element must have no condition and matches all elements not previously matched.
            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
            "rateTable": "A String", # Name of the rate table to use for the calculation.
            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
              "value": "A String", # The weight represented as a number.
              "unit": "A String", # The weight unit.
            },
            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                # - A range of postal codes (e.g., start=12340, end=12359)
                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
              "start": "A String", # The first (inclusive) postal code or prefix of the range.
              "end": "A String", # The last (inclusive) postal code or prefix of the range.
            },
            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
          },
          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
            # Object with schema name: AccountShippingShippingServiceCostRule
          ],
        },
      },
    ],
    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
    "rateTables": [ # Rate tables definitions.
      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
          {
            "rate": { # The rate applicable if the cell conditions are matched.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                "value": "A String", # The weight represented as a number.
                "unit": "A String", # The weight unit.
              },
              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                  # - A range of postal codes (e.g., start=12340, end=12359)
                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                "start": "A String", # The first (inclusive) postal code or prefix of the range.
                "end": "A String", # The last (inclusive) postal code or prefix of the range.
              },
              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                "currency": "A String", # The currency of the price.
                "value": "A String", # The price represented as a number.
              },
              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
            },
          },
        ],
        "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
        "name": "A String", # The name of the rate table.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(merchantId, pageToken=None, maxResults=None)</code>
  <pre>Lists the shipping settings of the sub-accounts in your Merchant Center account. This method can only be called for multi-client accounts.

Args:
  merchantId: string, The ID of the managing account. (required)
  pageToken: string, The token returned by the previous request.
  maxResults: integer, The maximum number of shipping settings to return in the response, used for paging.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # The token for the retrieval of the next page of account shipping settings.
    "kind": "content#accountshippingListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingListResponse".
    "resources": [
      { # The shipping settings of a merchant account.
        "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
        "carrierRates": [ # Carrier-based shipping calculations.
          { # A carrier-calculated shipping rate.
            "shippingOrigin": "A String", # Shipping origin represented as a postal code.
            "name": "A String", # The name of the carrier rate.
            "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
            "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
            "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
            "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
            "modifierFlatRate": { # Additive shipping rate modifier.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
        ],
        "locationGroups": [ # Location groups for shipping.
          { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
            "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
              { # A postal code range, that can be either:
                  # - A range of postal codes (e.g., start=12340, end=12359)
                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                "start": "A String", # The first (inclusive) postal code or prefix of the range.
                "end": "A String", # The last (inclusive) postal code or prefix of the range.
              },
            ],
            "country": "A String", # The CLDR territory code of the country in which this location group is.
            "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
              "A String",
            ],
            "name": "A String", # The name of the location group.
            "postalCodes": [ # A postal code representing a city or a set of cities.
                # - A single postal code (e.g., 12345)
                # - A postal code prefix followed by a star (e.g., 1234*)
              "A String",
            ],
          },
        ],
        "services": [ # Shipping services describing shipping fees calculation.
          { # Shipping services provided in a country.
            "name": "A String", # The name of this shipping service.
            "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
            "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
            "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
              "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
              "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
              "rateTable": "A String", # Name of the rate table to use for the calculation.
              "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
              "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
                "currency": "A String", # The currency of the price.
                "value": "A String", # The price represented as a number.
              },
            },
            "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
            "active": True or False, # Whether the shipping service is available.
            "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
                # - The tree root should have no condition and no calculation method.
                # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
                # - The last child of an element must have no condition and matches all elements not previously matched.
                # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
                "rateTable": "A String", # Name of the rate table to use for the calculation.
                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
                "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                  "value": "A String", # The weight represented as a number.
                  "unit": "A String", # The weight unit.
                },
                "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
                "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
                "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                    # - A range of postal codes (e.g., start=12340, end=12359)
                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
                },
                "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
                "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
              },
              "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
                # Object with schema name: AccountShippingShippingServiceCostRule
              ],
            },
          },
        ],
        "accountId": "A String", # The ID of the account to which these account shipping settings belong.
        "rateTables": [ # Rate tables definitions.
          { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
            "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
              {
                "rate": { # The rate applicable if the cell conditions are matched.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                    "value": "A String", # The weight represented as a number.
                    "unit": "A String", # The weight unit.
                  },
                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                      # - A range of postal codes (e.g., start=12340, end=12359)
                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
                  },
                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
                },
              },
            ],
            "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
            "name": "A String", # The name of the rate table.
          },
        ],
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(merchantId, accountId, body, dryRun=None)</code>
  <pre>Updates the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account. This method supports patch semantics.

Args:
  merchantId: string, The ID of the managing account. (required)
  accountId: string, The ID of the account for which to get/update account shipping settings. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # The shipping settings of a merchant account.
  "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
  "carrierRates": [ # Carrier-based shipping calculations.
    { # A carrier-calculated shipping rate.
      "shippingOrigin": "A String", # Shipping origin represented as a postal code.
      "name": "A String", # The name of the carrier rate.
      "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
      "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
      "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
      "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
      "modifierFlatRate": { # Additive shipping rate modifier.
        "currency": "A String", # The currency of the price.
        "value": "A String", # The price represented as a number.
      },
    },
  ],
  "locationGroups": [ # Location groups for shipping.
    { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
      "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
        { # A postal code range, that can be either:
            # - A range of postal codes (e.g., start=12340, end=12359)
            # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
          "start": "A String", # The first (inclusive) postal code or prefix of the range.
          "end": "A String", # The last (inclusive) postal code or prefix of the range.
        },
      ],
      "country": "A String", # The CLDR territory code of the country in which this location group is.
      "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
        "A String",
      ],
      "name": "A String", # The name of the location group.
      "postalCodes": [ # A postal code representing a city or a set of cities.
          # - A single postal code (e.g., 12345)
          # - A postal code prefix followed by a star (e.g., 1234*)
        "A String",
      ],
    },
  ],
  "services": [ # Shipping services describing shipping fees calculation.
    { # Shipping services provided in a country.
      "name": "A String", # The name of this shipping service.
      "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
      "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
      "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
        "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
        "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
        "rateTable": "A String", # Name of the rate table to use for the calculation.
        "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
        "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
          "currency": "A String", # The currency of the price.
          "value": "A String", # The price represented as a number.
        },
      },
      "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
      "active": True or False, # Whether the shipping service is available.
      "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
          # - The tree root should have no condition and no calculation method.
          # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
          # - The last child of an element must have no condition and matches all elements not previously matched.
          # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
          "rateTable": "A String", # Name of the rate table to use for the calculation.
          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
        },
        "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
          "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
            "value": "A String", # The weight represented as a number.
            "unit": "A String", # The weight unit.
          },
          "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
          "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
          "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
              # - A range of postal codes (e.g., start=12340, end=12359)
              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
            "start": "A String", # The first (inclusive) postal code or prefix of the range.
            "end": "A String", # The last (inclusive) postal code or prefix of the range.
          },
          "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
          "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
          "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
        },
        "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
          # Object with schema name: AccountShippingShippingServiceCostRule
        ],
      },
    },
  ],
  "accountId": "A String", # The ID of the account to which these account shipping settings belong.
  "rateTables": [ # Rate tables definitions.
    { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
      "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
        {
          "rate": { # The rate applicable if the cell conditions are matched.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
          "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
              "value": "A String", # The weight represented as a number.
              "unit": "A String", # The weight unit.
            },
            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                # - A range of postal codes (e.g., start=12340, end=12359)
                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
              "start": "A String", # The first (inclusive) postal code or prefix of the range.
              "end": "A String", # The last (inclusive) postal code or prefix of the range.
            },
            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
          },
        },
      ],
      "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
      "name": "A String", # The name of the rate table.
    },
  ],
}

  dryRun: boolean, Flag to run the request in dry-run mode.

Returns:
  An object of the form:

    { # The shipping settings of a merchant account.
    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
    "carrierRates": [ # Carrier-based shipping calculations.
      { # A carrier-calculated shipping rate.
        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
        "name": "A String", # The name of the carrier rate.
        "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
        "modifierFlatRate": { # Additive shipping rate modifier.
          "currency": "A String", # The currency of the price.
          "value": "A String", # The price represented as a number.
        },
      },
    ],
    "locationGroups": [ # Location groups for shipping.
      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
          { # A postal code range, that can be either:
              # - A range of postal codes (e.g., start=12340, end=12359)
              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
            "start": "A String", # The first (inclusive) postal code or prefix of the range.
            "end": "A String", # The last (inclusive) postal code or prefix of the range.
          },
        ],
        "country": "A String", # The CLDR territory code of the country in which this location group is.
        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
          "A String",
        ],
        "name": "A String", # The name of the location group.
        "postalCodes": [ # A postal code representing a city or a set of cities.
            # - A single postal code (e.g., 12345)
            # - A postal code prefix followed by a star (e.g., 1234*)
          "A String",
        ],
      },
    ],
    "services": [ # Shipping services describing shipping fees calculation.
      { # Shipping services provided in a country.
        "name": "A String", # The name of this shipping service.
        "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
        "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
          "rateTable": "A String", # Name of the rate table to use for the calculation.
          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
        },
        "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
        "active": True or False, # Whether the shipping service is available.
        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
            # - The tree root should have no condition and no calculation method.
            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
            # - The last child of an element must have no condition and matches all elements not previously matched.
            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
            "rateTable": "A String", # Name of the rate table to use for the calculation.
            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
              "value": "A String", # The weight represented as a number.
              "unit": "A String", # The weight unit.
            },
            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                # - A range of postal codes (e.g., start=12340, end=12359)
                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
              "start": "A String", # The first (inclusive) postal code or prefix of the range.
              "end": "A String", # The last (inclusive) postal code or prefix of the range.
            },
            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
          },
          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
            # Object with schema name: AccountShippingShippingServiceCostRule
          ],
        },
      },
    ],
    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
    "rateTables": [ # Rate tables definitions.
      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
          {
            "rate": { # The rate applicable if the cell conditions are matched.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                "value": "A String", # The weight represented as a number.
                "unit": "A String", # The weight unit.
              },
              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                  # - A range of postal codes (e.g., start=12340, end=12359)
                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                "start": "A String", # The first (inclusive) postal code or prefix of the range.
                "end": "A String", # The last (inclusive) postal code or prefix of the range.
              },
              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                "currency": "A String", # The currency of the price.
                "value": "A String", # The price represented as a number.
              },
              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
            },
          },
        ],
        "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
        "name": "A String", # The name of the rate table.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(merchantId, accountId, body, dryRun=None)</code>
  <pre>Updates the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.

Args:
  merchantId: string, The ID of the managing account. (required)
  accountId: string, The ID of the account for which to get/update account shipping settings. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # The shipping settings of a merchant account.
  "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
  "carrierRates": [ # Carrier-based shipping calculations.
    { # A carrier-calculated shipping rate.
      "shippingOrigin": "A String", # Shipping origin represented as a postal code.
      "name": "A String", # The name of the carrier rate.
      "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
      "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
      "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
      "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
      "modifierFlatRate": { # Additive shipping rate modifier.
        "currency": "A String", # The currency of the price.
        "value": "A String", # The price represented as a number.
      },
    },
  ],
  "locationGroups": [ # Location groups for shipping.
    { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
      "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
        { # A postal code range, that can be either:
            # - A range of postal codes (e.g., start=12340, end=12359)
            # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
          "start": "A String", # The first (inclusive) postal code or prefix of the range.
          "end": "A String", # The last (inclusive) postal code or prefix of the range.
        },
      ],
      "country": "A String", # The CLDR territory code of the country in which this location group is.
      "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
        "A String",
      ],
      "name": "A String", # The name of the location group.
      "postalCodes": [ # A postal code representing a city or a set of cities.
          # - A single postal code (e.g., 12345)
          # - A postal code prefix followed by a star (e.g., 1234*)
        "A String",
      ],
    },
  ],
  "services": [ # Shipping services describing shipping fees calculation.
    { # Shipping services provided in a country.
      "name": "A String", # The name of this shipping service.
      "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
      "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
      "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
        "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
        "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
        "rateTable": "A String", # Name of the rate table to use for the calculation.
        "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
        "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
          "currency": "A String", # The currency of the price.
          "value": "A String", # The price represented as a number.
        },
      },
      "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
      "active": True or False, # Whether the shipping service is available.
      "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
          # - The tree root should have no condition and no calculation method.
          # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
          # - The last child of an element must have no condition and matches all elements not previously matched.
          # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
          "rateTable": "A String", # Name of the rate table to use for the calculation.
          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
        },
        "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
          "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
            "value": "A String", # The weight represented as a number.
            "unit": "A String", # The weight unit.
          },
          "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
          "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
          "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
              # - A range of postal codes (e.g., start=12340, end=12359)
              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
            "start": "A String", # The first (inclusive) postal code or prefix of the range.
            "end": "A String", # The last (inclusive) postal code or prefix of the range.
          },
          "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
          "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
          "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
        },
        "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
          # Object with schema name: AccountShippingShippingServiceCostRule
        ],
      },
    },
  ],
  "accountId": "A String", # The ID of the account to which these account shipping settings belong.
  "rateTables": [ # Rate tables definitions.
    { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
      "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
        {
          "rate": { # The rate applicable if the cell conditions are matched.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
          "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
              "value": "A String", # The weight represented as a number.
              "unit": "A String", # The weight unit.
            },
            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                # - A range of postal codes (e.g., start=12340, end=12359)
                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
              "start": "A String", # The first (inclusive) postal code or prefix of the range.
              "end": "A String", # The last (inclusive) postal code or prefix of the range.
            },
            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
          },
        },
      ],
      "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
      "name": "A String", # The name of the rate table.
    },
  ],
}

  dryRun: boolean, Flag to run the request in dry-run mode.

Returns:
  An object of the form:

    { # The shipping settings of a merchant account.
    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
    "carrierRates": [ # Carrier-based shipping calculations.
      { # A carrier-calculated shipping rate.
        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
        "name": "A String", # The name of the carrier rate.
        "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
        "modifierFlatRate": { # Additive shipping rate modifier.
          "currency": "A String", # The currency of the price.
          "value": "A String", # The price represented as a number.
        },
      },
    ],
    "locationGroups": [ # Location groups for shipping.
      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
          { # A postal code range, that can be either:
              # - A range of postal codes (e.g., start=12340, end=12359)
              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
            "start": "A String", # The first (inclusive) postal code or prefix of the range.
            "end": "A String", # The last (inclusive) postal code or prefix of the range.
          },
        ],
        "country": "A String", # The CLDR territory code of the country in which this location group is.
        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
          "A String",
        ],
        "name": "A String", # The name of the location group.
        "postalCodes": [ # A postal code representing a city or a set of cities.
            # - A single postal code (e.g., 12345)
            # - A postal code prefix followed by a star (e.g., 1234*)
          "A String",
        ],
      },
    ],
    "services": [ # Shipping services describing shipping fees calculation.
      { # Shipping services provided in a country.
        "name": "A String", # The name of this shipping service.
        "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
        "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
          "rateTable": "A String", # Name of the rate table to use for the calculation.
          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
            "currency": "A String", # The currency of the price.
            "value": "A String", # The price represented as a number.
          },
        },
        "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
        "active": True or False, # Whether the shipping service is available.
        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
            # - The tree root should have no condition and no calculation method.
            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
            # - The last child of an element must have no condition and matches all elements not previously matched.
            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
            "rateTable": "A String", # Name of the rate table to use for the calculation.
            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
              "value": "A String", # The weight represented as a number.
              "unit": "A String", # The weight unit.
            },
            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                # - A range of postal codes (e.g., start=12340, end=12359)
                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
              "start": "A String", # The first (inclusive) postal code or prefix of the range.
              "end": "A String", # The last (inclusive) postal code or prefix of the range.
            },
            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
          },
          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
            # Object with schema name: AccountShippingShippingServiceCostRule
          ],
        },
      },
    ],
    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
    "rateTables": [ # Rate tables definitions.
      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
          {
            "rate": { # The rate applicable if the cell conditions are matched.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
                "value": "A String", # The weight represented as a number.
                "unit": "A String", # The weight unit.
              },
              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
                  # - A range of postal codes (e.g., start=12340, end=12359)
                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
                "start": "A String", # The first (inclusive) postal code or prefix of the range.
                "end": "A String", # The last (inclusive) postal code or prefix of the range.
              },
              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
                "currency": "A String", # The currency of the price.
                "value": "A String", # The price represented as a number.
              },
              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
            },
          },
        ],
        "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
        "name": "A String", # The name of the rate table.
      },
    ],
  }</pre>
</div>

</body></html>