<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">A description of how to use this function</p>
<p class="toc_element">
  <code><a href="#delete">delete(merchantId, datafeedId, dryRun=None)</a></code></p>
<p class="firstline">Deletes a datafeed from your Merchant Center account. This method can only be called for non-multi-client accounts.</p>
<p class="toc_element">
  <code><a href="#get">get(merchantId, datafeedId)</a></code></p>
<p class="firstline">Retrieves a datafeed from your Merchant Center account. This method can only be called for non-multi-client accounts.</p>
<p class="toc_element">
  <code><a href="#insert">insert(merchantId, body, dryRun=None)</a></code></p>
<p class="firstline">Registers a datafeed with your Merchant Center account. This method can only be called for non-multi-client accounts.</p>
<p class="toc_element">
  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">Lists the datafeeds in your Merchant Center account. This method can only be called for non-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, datafeedId, body, dryRun=None)</a></code></p>
<p class="firstline">Updates a datafeed of your Merchant Center account. This method can only be called for non-multi-client accounts. 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 of your Merchant Center account. This method can only be called for non-multi-client accounts.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="custombatch">custombatch(body, dryRun=None)</code>
  <pre>A description of how to use this function

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 or delete.
        "datafeed": { # Datafeed 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", # 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.
              "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", # 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.
            "intendedDestinations": [ # 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 run the request in dry-run mode.

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 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", # 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.
              "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", # 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.
            "intendedDestinations": [ # 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 from your Merchant Center account. This method can only be called for non-multi-client accounts.

Args:
  merchantId: string, A parameter (required)
  datafeedId: string, A parameter (required)
  dryRun: boolean, Flag to run the request in dry-run mode.
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(merchantId, datafeedId)</code>
  <pre>Retrieves a datafeed from your Merchant Center account. This method can only be called for non-multi-client accounts.

Args:
  merchantId: string, A parameter (required)
  datafeedId: string, A parameter (required)

Returns:
  An object of the form:

    { # Datafeed 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", # 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.
        "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", # 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.
      "intendedDestinations": [ # 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 with your Merchant Center account. This method can only be called for non-multi-client accounts.

Args:
  merchantId: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Datafeed 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", # 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.
      "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", # 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.
    "intendedDestinations": [ # 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 run the request in dry-run mode.

Returns:
  An object of the form:

    { # Datafeed 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", # 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.
        "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", # 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.
      "intendedDestinations": [ # 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 datafeeds in your Merchant Center account. This method can only be called for non-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 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 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", # 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.
            "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", # 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.
          "intendedDestinations": [ # 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 of your Merchant Center account. This method can only be called for non-multi-client accounts. This method supports patch semantics.

Args:
  merchantId: string, A parameter (required)
  datafeedId: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Datafeed 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", # 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.
      "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", # 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.
    "intendedDestinations": [ # 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 run the request in dry-run mode.

Returns:
  An object of the form:

    { # Datafeed 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", # 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.
        "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", # 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.
      "intendedDestinations": [ # 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 of your Merchant Center account. This method can only be called for non-multi-client accounts.

Args:
  merchantId: string, A parameter (required)
  datafeedId: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Datafeed 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", # 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.
      "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", # 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.
    "intendedDestinations": [ # 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 run the request in dry-run mode.

Returns:
  An object of the form:

    { # Datafeed 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", # 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.
        "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", # 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.
      "intendedDestinations": [ # 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>