<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="manufacturers_v1.html">Manufacturer Center API</a> . <a href="manufacturers_v1.accounts.html">accounts</a> . <a href="manufacturers_v1.accounts.products.html">products</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(parent=None, name=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the product from a Manufacturer Center account, including product</p>
<p class="toc_element">
  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
<p class="firstline">Lists all the products in a Manufacturer Center account.</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>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(parent=None, name=None, x__xgafv=None)</code>
  <pre>Gets the product from a Manufacturer Center account, including product
issues.

Args:
  parent: string, Parent ID in the format `accounts/{account_id}`.

`account_id` - The ID of the Manufacturer Center account. (required)
  name: string, Name in the format `{target_country}:{content_language}:{product_id}`.

`target_country`   - The target country of the product as a CLDR territory
                     code (for example, US).

`content_language` - The content language of the product as a two-letter
                     ISO 639-1 language code (for example, en).

`product_id`     -   The ID of the product. For more information, see
                     https://support.google.com/manufacturers/answer/6124116#id. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Product data.
    "targetCountry": "A String", # The target country of the product as a CLDR territory code (for example,
        # US).
        # @OutputOnly
    "manuallyDeletedAttributes": [ # Names of the attributes of the product deleted manually via the
        # Manufacturer Center UI.
        # @OutputOnly
      "A String",
    ],
    "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
        #
        # `account_id` - The ID of the Manufacturer Center account.
        # @OutputOnly
    "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
        # (for example, en).
        # @OutputOnly
    "name": "A String", # Name in the format `{target_country}:{content_language}:{product_id}`.
        #
        # `target_country`   - The target country of the product as a CLDR territory
        #                      code (for example, US).
        #
        # `content_language` - The content language of the product as a two-letter
        #                      ISO 639-1 language code (for example, en).
        #
        # `product_id`     -   The ID of the product. For more information, see
        #                      https://support.google.com/manufacturers/answer/6124116#id.
        # @OutputOnly
    "manuallyProvidedAttributes": { # Attributes of the product. For more information, see # Attributes of the product provided manually via the Manufacturer Center UI.
        # @OutputOnly
        # https://support.google.com/manufacturers/answer/6124116.
      "productLine": "A String", # The name of the group of products related to the product. For more
          # information, see
          # https://support.google.com/manufacturers/answer/6124116#productline.
      "title": "A String", # The title of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#title.
      "mpn": "A String", # The Manufacturer Part Number (MPN) of the product. For more information,
          # see https://support.google.com/manufacturers/answer/6124116#mpn.
      "brand": "A String", # The brand name of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#brand.
      "productName": "A String", # The canonical name of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#productname.
      "productPageUrl": "A String", # The URL of the manufacturer's detail page of the product. For more
          # information, see
          # https://support.google.com/manufacturers/answer/6124116#productpage.
      "gtin": [ # The Global Trade Item Number (GTIN) of the product. For more information,
          # see https://support.google.com/manufacturers/answer/6124116#gtin.
        "A String",
      ],
      "productType": [ # The manufacturer's category of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#producttype.
        "A String",
      ],
    },
    "finalAttributes": { # Attributes of the product. For more information, see # Final attributes of the product. The final attributes are obtained by
        # overriding the uploaded attributes with the manually provided and deleted
        # attributes. Google systems only process, evaluate, review, and/or use final
        # attributes.
        # @OutputOnly
        # https://support.google.com/manufacturers/answer/6124116.
      "productLine": "A String", # The name of the group of products related to the product. For more
          # information, see
          # https://support.google.com/manufacturers/answer/6124116#productline.
      "title": "A String", # The title of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#title.
      "mpn": "A String", # The Manufacturer Part Number (MPN) of the product. For more information,
          # see https://support.google.com/manufacturers/answer/6124116#mpn.
      "brand": "A String", # The brand name of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#brand.
      "productName": "A String", # The canonical name of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#productname.
      "productPageUrl": "A String", # The URL of the manufacturer's detail page of the product. For more
          # information, see
          # https://support.google.com/manufacturers/answer/6124116#productpage.
      "gtin": [ # The Global Trade Item Number (GTIN) of the product. For more information,
          # see https://support.google.com/manufacturers/answer/6124116#gtin.
        "A String",
      ],
      "productType": [ # The manufacturer's category of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#producttype.
        "A String",
      ],
    },
    "uploadedAttributes": { # Attributes of the product. For more information, see # Attributes of the product uploaded via the Manufacturer Center API or via
        # feeds.
        # https://support.google.com/manufacturers/answer/6124116.
      "productLine": "A String", # The name of the group of products related to the product. For more
          # information, see
          # https://support.google.com/manufacturers/answer/6124116#productline.
      "title": "A String", # The title of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#title.
      "mpn": "A String", # The Manufacturer Part Number (MPN) of the product. For more information,
          # see https://support.google.com/manufacturers/answer/6124116#mpn.
      "brand": "A String", # The brand name of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#brand.
      "productName": "A String", # The canonical name of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#productname.
      "productPageUrl": "A String", # The URL of the manufacturer's detail page of the product. For more
          # information, see
          # https://support.google.com/manufacturers/answer/6124116#productpage.
      "gtin": [ # The Global Trade Item Number (GTIN) of the product. For more information,
          # see https://support.google.com/manufacturers/answer/6124116#gtin.
        "A String",
      ],
      "productType": [ # The manufacturer's category of the product. For more information, see
          # https://support.google.com/manufacturers/answer/6124116#producttype.
        "A String",
      ],
    },
    "issues": [ # A server-generated list of issues associated with the product.
        # @OutputOnly
      { # Product issue.
        "attribute": "A String", # If present, the attribute that triggered the issue. For more information
            # about attributes, see
            # https://support.google.com/manufacturers/answer/6124116.
        "type": "A String", # The server-generated type of the issue, for example,
            # “INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.
        "severity": "A String", # The severity of the issue.
        "description": "A String", # Description of the issue.
      },
    ],
    "productId": "A String", # The ID of the product. For more information, see
        # https://support.google.com/manufacturers/answer/6124116#id.
        # @OutputOnly
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
  <pre>Lists all the products in a Manufacturer Center account.

Args:
  parent: string, Parent ID in the format `accounts/{account_id}`.

`account_id` - The ID of the Manufacturer Center account. (required)
  pageToken: string, The token returned by the previous request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
  pageSize: integer, Maximum number of product statuses 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 product statuses.
    "products": [ # List of the products.
      { # Product data.
        "targetCountry": "A String", # The target country of the product as a CLDR territory code (for example,
            # US).
            # @OutputOnly
        "manuallyDeletedAttributes": [ # Names of the attributes of the product deleted manually via the
            # Manufacturer Center UI.
            # @OutputOnly
          "A String",
        ],
        "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
            #
            # `account_id` - The ID of the Manufacturer Center account.
            # @OutputOnly
        "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
            # (for example, en).
            # @OutputOnly
        "name": "A String", # Name in the format `{target_country}:{content_language}:{product_id}`.
            #
            # `target_country`   - The target country of the product as a CLDR territory
            #                      code (for example, US).
            #
            # `content_language` - The content language of the product as a two-letter
            #                      ISO 639-1 language code (for example, en).
            #
            # `product_id`     -   The ID of the product. For more information, see
            #                      https://support.google.com/manufacturers/answer/6124116#id.
            # @OutputOnly
        "manuallyProvidedAttributes": { # Attributes of the product. For more information, see # Attributes of the product provided manually via the Manufacturer Center UI.
            # @OutputOnly
            # https://support.google.com/manufacturers/answer/6124116.
          "productLine": "A String", # The name of the group of products related to the product. For more
              # information, see
              # https://support.google.com/manufacturers/answer/6124116#productline.
          "title": "A String", # The title of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#title.
          "mpn": "A String", # The Manufacturer Part Number (MPN) of the product. For more information,
              # see https://support.google.com/manufacturers/answer/6124116#mpn.
          "brand": "A String", # The brand name of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#brand.
          "productName": "A String", # The canonical name of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#productname.
          "productPageUrl": "A String", # The URL of the manufacturer's detail page of the product. For more
              # information, see
              # https://support.google.com/manufacturers/answer/6124116#productpage.
          "gtin": [ # The Global Trade Item Number (GTIN) of the product. For more information,
              # see https://support.google.com/manufacturers/answer/6124116#gtin.
            "A String",
          ],
          "productType": [ # The manufacturer's category of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#producttype.
            "A String",
          ],
        },
        "finalAttributes": { # Attributes of the product. For more information, see # Final attributes of the product. The final attributes are obtained by
            # overriding the uploaded attributes with the manually provided and deleted
            # attributes. Google systems only process, evaluate, review, and/or use final
            # attributes.
            # @OutputOnly
            # https://support.google.com/manufacturers/answer/6124116.
          "productLine": "A String", # The name of the group of products related to the product. For more
              # information, see
              # https://support.google.com/manufacturers/answer/6124116#productline.
          "title": "A String", # The title of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#title.
          "mpn": "A String", # The Manufacturer Part Number (MPN) of the product. For more information,
              # see https://support.google.com/manufacturers/answer/6124116#mpn.
          "brand": "A String", # The brand name of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#brand.
          "productName": "A String", # The canonical name of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#productname.
          "productPageUrl": "A String", # The URL of the manufacturer's detail page of the product. For more
              # information, see
              # https://support.google.com/manufacturers/answer/6124116#productpage.
          "gtin": [ # The Global Trade Item Number (GTIN) of the product. For more information,
              # see https://support.google.com/manufacturers/answer/6124116#gtin.
            "A String",
          ],
          "productType": [ # The manufacturer's category of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#producttype.
            "A String",
          ],
        },
        "uploadedAttributes": { # Attributes of the product. For more information, see # Attributes of the product uploaded via the Manufacturer Center API or via
            # feeds.
            # https://support.google.com/manufacturers/answer/6124116.
          "productLine": "A String", # The name of the group of products related to the product. For more
              # information, see
              # https://support.google.com/manufacturers/answer/6124116#productline.
          "title": "A String", # The title of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#title.
          "mpn": "A String", # The Manufacturer Part Number (MPN) of the product. For more information,
              # see https://support.google.com/manufacturers/answer/6124116#mpn.
          "brand": "A String", # The brand name of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#brand.
          "productName": "A String", # The canonical name of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#productname.
          "productPageUrl": "A String", # The URL of the manufacturer's detail page of the product. For more
              # information, see
              # https://support.google.com/manufacturers/answer/6124116#productpage.
          "gtin": [ # The Global Trade Item Number (GTIN) of the product. For more information,
              # see https://support.google.com/manufacturers/answer/6124116#gtin.
            "A String",
          ],
          "productType": [ # The manufacturer's category of the product. For more information, see
              # https://support.google.com/manufacturers/answer/6124116#producttype.
            "A String",
          ],
        },
        "issues": [ # A server-generated list of issues associated with the product.
            # @OutputOnly
          { # Product issue.
            "attribute": "A String", # If present, the attribute that triggered the issue. For more information
                # about attributes, see
                # https://support.google.com/manufacturers/answer/6124116.
            "type": "A String", # The server-generated type of the issue, for example,
                # “INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.
            "severity": "A String", # The severity of the issue.
            "description": "A String", # Description of the issue.
          },
        ],
        "productId": "A String", # The ID of the product. For more information, see
            # https://support.google.com/manufacturers/answer/6124116#id.
            # @OutputOnly
      },
    ],
  }</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>

</body></html>