<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_1.html">Content API for Shopping</a> . <a href="content_v2_1.datafeeds.html">datafeeds</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#custombatch">custombatch(body)</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)</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)</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)</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="#update">update(merchantId, datafeedId, body)</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)</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.
            "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).
            },
            "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",
                ],
              },
            ],
            "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",
      },
    ],
  }


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.
            "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).
            },
            "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",
                ],
              },
            ],
            "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)</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)
</pre>
</div>

<div class="method">
    <code class="details" id="fetchnow">fetchnow(merchantId, datafeedId)</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)

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.
      "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).
      },
      "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",
          ],
        },
      ],
      "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)</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.
    "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).
    },
    "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",
        ],
      },
    ],
    "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.
  }


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.
      "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).
      },
      "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",
          ],
        },
      ],
      "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.
          "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).
          },
          "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",
              ],
            },
          ],
          "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="update">update(merchantId, datafeedId, body)</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.
    "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).
    },
    "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",
        ],
      },
    ],
    "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.
  }


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.
      "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).
      },
      "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",
          ],
        },
      ],
      "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>