<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.datafeeds.html">datafeeds</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#custombatch">custombatch(body, dryRun=None)</a></code></p>
<p class="firstline">Deletes, fetches, gets, inserts and updates multiple datafeeds in a single request.</p>
<p class="toc_element">
  <code><a href="#delete">delete(merchantId, datafeedId, dryRun=None)</a></code></p>
<p class="firstline">Deletes a datafeed configuration from your Merchant Center account.</p>
<p class="toc_element">
  <code><a href="#fetchnow">fetchnow(merchantId, datafeedId, dryRun=None)</a></code></p>
<p class="firstline">Invokes a fetch for the datafeed in your Merchant Center account.</p>
<p class="toc_element">
  <code><a href="#get">get(merchantId, datafeedId)</a></code></p>
<p class="firstline">Retrieves a datafeed configuration from your Merchant Center account.</p>
<p class="toc_element">
  <code><a href="#insert">insert(merchantId, body, dryRun=None)</a></code></p>
<p class="firstline">Registers a datafeed configuration with your Merchant Center account.</p>
<p class="toc_element">
  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">Lists the configurations for datafeeds in your Merchant 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>
<p class="toc_element">
  <code><a href="#patch">patch(merchantId, datafeedId, body, dryRun=None)</a></code></p>
<p class="firstline">Updates a datafeed configuration of your Merchant Center account. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(merchantId, datafeedId, body, dryRun=None)</a></code></p>
<p class="firstline">Updates a datafeed configuration of your Merchant Center account.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="custombatch">custombatch(body, dryRun=None)</code>
  <pre>Deletes, fetches, gets, inserts and updates multiple datafeeds 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 datafeeds request.
        "batchId": 42, # An entry ID, unique within the batch request.
        "datafeedId": "A String", # The ID of the data feed to get, delete or fetch.
        "datafeed": { # Datafeed configuration data. # The data feed to insert.
            "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
            "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
            "name": "A String", # A descriptive name of the data feed.
            "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
            "format": { # Format of the feed file.
              "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
              "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
              "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
            },
            "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
              "username": "A String", # An optional user name for fetch_url.
              "hour": 42, # The hour of the day the feed file should be fetched (0-23).
              "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
              "paused": True or False, # Whether the scheduled fetch is paused or not.
              "weekday": "A String", # The day of the week the feed file should be fetched.
              "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
              "password": "A String", # An optional password for fetch_url.
              "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
              "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
            },
            "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
            "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
            "targets": [ # The targets this feed should apply to (country, language, destinations).
              {
                "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
                "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
                  "A String",
                ],
                "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
                "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
                  "A String",
                ],
              },
            ],
            "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
              "A String",
            ],
            "id": "A String", # The ID of the data feed.
            "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
          },
        "merchantId": "A String", # The ID of the managing account.
        "method": "A String",
      },
    ],
  }

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).

Returns:
  An object of the form:

    {
    "kind": "content#datafeedsCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedsCustomBatchResponse".
    "entries": [ # The result of the execution of the batch requests.
      { # A batch entry encoding a single non-batch datafeeds response.
        "batchId": 42, # The ID of the request entry this entry responds to.
        "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.
            },
          ],
        },
        "datafeed": { # Datafeed configuration data. # The requested data feed. Defined if and only if the request was successful.
            "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
            "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
            "name": "A String", # A descriptive name of the data feed.
            "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
            "format": { # Format of the feed file.
              "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
              "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
              "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
            },
            "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
              "username": "A String", # An optional user name for fetch_url.
              "hour": 42, # The hour of the day the feed file should be fetched (0-23).
              "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
              "paused": True or False, # Whether the scheduled fetch is paused or not.
              "weekday": "A String", # The day of the week the feed file should be fetched.
              "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
              "password": "A String", # An optional password for fetch_url.
              "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
              "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
            },
            "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
            "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
            "targets": [ # The targets this feed should apply to (country, language, destinations).
              {
                "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
                "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
                  "A String",
                ],
                "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
                "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
                  "A String",
                ],
              },
            ],
            "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
              "A String",
            ],
            "id": "A String", # The ID of the data feed.
            "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
          },
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(merchantId, datafeedId, dryRun=None)</code>
  <pre>Deletes a datafeed configuration from your Merchant Center account.

Args:
  merchantId: string, The ID of the account that manages the datafeed. This account cannot be a multi-client account. (required)
  datafeedId: string, The ID of the datafeed. (required)
  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).
</pre>
</div>

<div class="method">
    <code class="details" id="fetchnow">fetchnow(merchantId, datafeedId, dryRun=None)</code>
  <pre>Invokes a fetch for the datafeed in your Merchant Center account.

Args:
  merchantId: string, The ID of the account that manages the datafeed. This account cannot be a multi-client account. (required)
  datafeedId: string, The ID of the datafeed to be fetched. (required)
  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).

Returns:
  An object of the form:

    {
    "kind": "content#datafeedsFetchNowResponse", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedsFetchNowResponse".
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(merchantId, datafeedId)</code>
  <pre>Retrieves a datafeed configuration from your Merchant Center account.

Args:
  merchantId: string, The ID of the account that manages the datafeed. This account cannot be a multi-client account. (required)
  datafeedId: string, The ID of the datafeed. (required)

Returns:
  An object of the form:

    { # Datafeed configuration data.
      "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
      "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
      "name": "A String", # A descriptive name of the data feed.
      "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
      "format": { # Format of the feed file.
        "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
        "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
        "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
      },
      "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
        "username": "A String", # An optional user name for fetch_url.
        "hour": 42, # The hour of the day the feed file should be fetched (0-23).
        "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
        "paused": True or False, # Whether the scheduled fetch is paused or not.
        "weekday": "A String", # The day of the week the feed file should be fetched.
        "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
        "password": "A String", # An optional password for fetch_url.
        "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
        "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
      },
      "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
      "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
      "targets": [ # The targets this feed should apply to (country, language, destinations).
        {
          "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
          "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
            "A String",
          ],
          "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
          "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
            "A String",
          ],
        },
      ],
      "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
        "A String",
      ],
      "id": "A String", # The ID of the data feed.
      "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(merchantId, body, dryRun=None)</code>
  <pre>Registers a datafeed configuration with your Merchant Center account.

Args:
  merchantId: string, The ID of the account that manages the datafeed. This account cannot be a multi-client account. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Datafeed configuration data.
    "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
    "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
    "name": "A String", # A descriptive name of the data feed.
    "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
    "format": { # Format of the feed file.
      "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
      "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
      "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
    },
    "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
      "username": "A String", # An optional user name for fetch_url.
      "hour": 42, # The hour of the day the feed file should be fetched (0-23).
      "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
      "paused": True or False, # Whether the scheduled fetch is paused or not.
      "weekday": "A String", # The day of the week the feed file should be fetched.
      "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
      "password": "A String", # An optional password for fetch_url.
      "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
      "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
    },
    "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
    "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
    "targets": [ # The targets this feed should apply to (country, language, destinations).
      {
        "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
        "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
          "A String",
        ],
        "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
        "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
          "A String",
        ],
      },
    ],
    "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
      "A String",
    ],
    "id": "A String", # The ID of the data feed.
    "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
  }

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).

Returns:
  An object of the form:

    { # Datafeed configuration data.
      "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
      "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
      "name": "A String", # A descriptive name of the data feed.
      "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
      "format": { # Format of the feed file.
        "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
        "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
        "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
      },
      "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
        "username": "A String", # An optional user name for fetch_url.
        "hour": 42, # The hour of the day the feed file should be fetched (0-23).
        "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
        "paused": True or False, # Whether the scheduled fetch is paused or not.
        "weekday": "A String", # The day of the week the feed file should be fetched.
        "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
        "password": "A String", # An optional password for fetch_url.
        "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
        "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
      },
      "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
      "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
      "targets": [ # The targets this feed should apply to (country, language, destinations).
        {
          "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
          "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
            "A String",
          ],
          "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
          "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
            "A String",
          ],
        },
      ],
      "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
        "A String",
      ],
      "id": "A String", # The ID of the data feed.
      "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(merchantId, pageToken=None, maxResults=None)</code>
  <pre>Lists the configurations for datafeeds in your Merchant Center account.

Args:
  merchantId: string, The ID of the account that manages the datafeeds. This account cannot be a multi-client account. (required)
  pageToken: string, The token returned by the previous request.
  maxResults: integer, The maximum number of products 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 datafeeds.
    "kind": "content#datafeedsListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedsListResponse".
    "resources": [
      { # Datafeed configuration data.
          "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
          "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
          "name": "A String", # A descriptive name of the data feed.
          "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
          "format": { # Format of the feed file.
            "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
            "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
            "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
          },
          "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
            "username": "A String", # An optional user name for fetch_url.
            "hour": 42, # The hour of the day the feed file should be fetched (0-23).
            "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
            "paused": True or False, # Whether the scheduled fetch is paused or not.
            "weekday": "A String", # The day of the week the feed file should be fetched.
            "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
            "password": "A String", # An optional password for fetch_url.
            "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
            "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
          },
          "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
          "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
          "targets": [ # The targets this feed should apply to (country, language, destinations).
            {
              "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
              "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
                "A String",
              ],
              "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
              "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
                "A String",
              ],
            },
          ],
          "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
            "A String",
          ],
          "id": "A String", # The ID of the data feed.
          "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
        },
    ],
  }</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, datafeedId, body, dryRun=None)</code>
  <pre>Updates a datafeed configuration of your Merchant Center account. This method supports patch semantics.

Args:
  merchantId: string, The ID of the account that manages the datafeed. This account cannot be a multi-client account. (required)
  datafeedId: string, The ID of the datafeed. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Datafeed configuration data.
    "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
    "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
    "name": "A String", # A descriptive name of the data feed.
    "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
    "format": { # Format of the feed file.
      "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
      "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
      "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
    },
    "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
      "username": "A String", # An optional user name for fetch_url.
      "hour": 42, # The hour of the day the feed file should be fetched (0-23).
      "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
      "paused": True or False, # Whether the scheduled fetch is paused or not.
      "weekday": "A String", # The day of the week the feed file should be fetched.
      "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
      "password": "A String", # An optional password for fetch_url.
      "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
      "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
    },
    "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
    "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
    "targets": [ # The targets this feed should apply to (country, language, destinations).
      {
        "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
        "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
          "A String",
        ],
        "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
        "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
          "A String",
        ],
      },
    ],
    "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
      "A String",
    ],
    "id": "A String", # The ID of the data feed.
    "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
  }

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).

Returns:
  An object of the form:

    { # Datafeed configuration data.
      "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
      "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
      "name": "A String", # A descriptive name of the data feed.
      "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
      "format": { # Format of the feed file.
        "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
        "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
        "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
      },
      "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
        "username": "A String", # An optional user name for fetch_url.
        "hour": 42, # The hour of the day the feed file should be fetched (0-23).
        "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
        "paused": True or False, # Whether the scheduled fetch is paused or not.
        "weekday": "A String", # The day of the week the feed file should be fetched.
        "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
        "password": "A String", # An optional password for fetch_url.
        "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
        "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
      },
      "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
      "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
      "targets": [ # The targets this feed should apply to (country, language, destinations).
        {
          "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
          "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
            "A String",
          ],
          "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
          "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
            "A String",
          ],
        },
      ],
      "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
        "A String",
      ],
      "id": "A String", # The ID of the data feed.
      "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(merchantId, datafeedId, body, dryRun=None)</code>
  <pre>Updates a datafeed configuration of your Merchant Center account.

Args:
  merchantId: string, The ID of the account that manages the datafeed. This account cannot be a multi-client account. (required)
  datafeedId: string, The ID of the datafeed. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Datafeed configuration data.
    "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
    "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
    "name": "A String", # A descriptive name of the data feed.
    "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
    "format": { # Format of the feed file.
      "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
      "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
      "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
    },
    "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
      "username": "A String", # An optional user name for fetch_url.
      "hour": 42, # The hour of the day the feed file should be fetched (0-23).
      "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
      "paused": True or False, # Whether the scheduled fetch is paused or not.
      "weekday": "A String", # The day of the week the feed file should be fetched.
      "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
      "password": "A String", # An optional password for fetch_url.
      "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
      "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
    },
    "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
    "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
    "targets": [ # The targets this feed should apply to (country, language, destinations).
      {
        "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
        "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
          "A String",
        ],
        "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
        "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
          "A String",
        ],
      },
    ],
    "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
      "A String",
    ],
    "id": "A String", # The ID of the data feed.
    "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
  }

  dryRun: boolean, Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).

Returns:
  An object of the form:

    { # Datafeed configuration data.
      "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
      "contentType": "A String", # The type of data feed. For product inventory feeds, only feeds for local stores, not online stores, are supported.
      "name": "A String", # A descriptive name of the data feed.
      "contentLanguage": "A String", # [DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targetCountry.
      "format": { # Format of the feed file.
        "fileEncoding": "A String", # Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected.
        "quotingMode": "A String", # Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds.
        "columnDelimiter": "A String", # Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds.
      },
      "fetchSchedule": { # The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required. # Fetch schedule for the feed file.
        "username": "A String", # An optional user name for fetch_url.
        "hour": 42, # The hour of the day the feed file should be fetched (0-23).
        "fetchUrl": "A String", # The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols.
        "paused": True or False, # Whether the scheduled fetch is paused or not.
        "weekday": "A String", # The day of the week the feed file should be fetched.
        "timeZone": "A String", # Time zone used for schedule. UTC by default. E.g., "America/Los_Angeles".
        "password": "A String", # An optional password for fetch_url.
        "minuteOfHour": 42, # The minute of the hour the feed file should be fetched (0-59). Read-only.
        "dayOfMonth": 42, # The day of the month the feed file should be fetched (1-31).
      },
      "targetCountry": "A String", # [DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.
      "fileName": "A String", # The filename of the feed. All feeds must have a unique file name.
      "targets": [ # The targets this feed should apply to (country, language, destinations).
        {
          "country": "A String", # The country where the items in the feed will be included in the search index, represented as a  CLDR territory code.
          "includedDestinations": [ # The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in the excluded_destination field.
            "A String",
          ],
          "language": "A String", # The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for targets[].country.
          "excludedDestinations": [ # The list of destinations to exclude for this target (corresponds to unchecked check boxes in Merchant Center).
            "A String",
          ],
        },
      ],
      "intendedDestinations": [ # [DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).
        "A String",
      ],
      "id": "A String", # The ID of the data feed.
      "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
    }</pre>
</div>

</body></html>