text: // NOTE: This file was generated by the ServiceGenerator.
  
  // ----------------------------------------------------------------------------
  // API:
  //   YouTube Analytics API (youtubeAnalytics/v2)
  // Description:
  //   Retrieves your YouTube Analytics data.
  // Documentation:
  //   https://developers.google.com/youtube/analytics
  
  #if SWIFT_PACKAGE || GTLR_USE_MODULAR_IMPORT
    @import GoogleAPIClientForRESTCore;
  #elif GTLR_BUILT_AS_FRAMEWORK
    #import "GTLR/GTLRQuery.h"
  #else
    #import "GTLRQuery.h"
  #endif
  
  #if GTLR_RUNTIME_VERSION != 3000
  #error This file was generated by a different version of ServiceGenerator which is incompatible with this GTLR library source.
  #endif
  
  @class GTLRYouTubeAnalytics_Group;
  @class GTLRYouTubeAnalytics_GroupItem;
  
  // Generated comments include content from the discovery document; avoid them
  // causing warnings since clang's checks are some what arbitrary.
  #pragma clang diagnostic push
  #pragma clang diagnostic ignored "-Wdocumentation"
  
  NS_ASSUME_NONNULL_BEGIN
  
  /**
   *  Parent class for other YouTube Analytics query classes.
   */
  @interface GTLRYouTubeAnalyticsQuery : GTLRQuery
  
  /** Selector specifying which fields to include in a partial response. */
  @property(nonatomic, copy, nullable) NSString *fields;
  
  @end
  
  /**
   *  Removes an item from a group.
   *
   *  Method: youtubeAnalytics.groupItems.delete
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutube
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubepartner
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubeReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsMonetaryReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsReadonly
   */
  @interface GTLRYouTubeAnalyticsQuery_GroupItemsDelete : GTLRYouTubeAnalyticsQuery
  // Previous library name was
  //   +[GTLQueryYouTubeAnalytics queryForGroupItemsDelete]
  
  /**
   *  The `id` parameter specifies the YouTube group item ID of the group item
   *  that is being deleted.
   *
   *  identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
   */
  @property(nonatomic, copy, nullable) NSString *identifier;
  
  /**
   *  This parameter can only be used in a properly authorized request. **Note:**
   *  This parameter is intended exclusively for YouTube content partners that own
   *  and manage many different YouTube channels. The `onBehalfOfContentOwner`
   *  parameter indicates that the request's authorization credentials identify a
   *  YouTube user who is acting on behalf of the content owner specified in the
   *  parameter value. It allows content owners to authenticate once and get
   *  access to all their video and channel data, without having to provide
   *  authentication credentials for each individual channel. The account that the
   *  user authenticates with must be linked to the specified YouTube content
   *  owner.
   */
  @property(nonatomic, copy, nullable) NSString *onBehalfOfContentOwner;
  
  /**
   *  Fetches a @c GTLRYouTubeAnalytics_EmptyResponse.
   *
   *  Removes an item from a group.
   *
   *  @return GTLRYouTubeAnalyticsQuery_GroupItemsDelete
   */
  + (instancetype)query;
  
  @end
  
  /**
   *  Creates a group item.
   *
   *  Method: youtubeAnalytics.groupItems.insert
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutube
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubepartner
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubeReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsMonetaryReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsReadonly
   */
  @interface GTLRYouTubeAnalyticsQuery_GroupItemsInsert : GTLRYouTubeAnalyticsQuery
  // Previous library name was
  //   +[GTLQueryYouTubeAnalytics queryForGroupItemsInsertWithObject:]
  
  /**
   *  This parameter can only be used in a properly authorized request. **Note:**
   *  This parameter is intended exclusively for YouTube content partners that own
   *  and manage many different YouTube channels. The `onBehalfOfContentOwner`
   *  parameter indicates that the request's authorization credentials identify a
   *  YouTube user who is acting on behalf of the content owner specified in the
   *  parameter value. It allows content owners to authenticate once and get
   *  access to all their video and channel data, without having to provide
   *  authentication credentials for each individual channel. The account that the
   *  user authenticates with must be linked to the specified YouTube content
   *  owner.
   */
  @property(nonatomic, copy, nullable) NSString *onBehalfOfContentOwner;
  
  /**
   *  Fetches a @c GTLRYouTubeAnalytics_GroupItem.
   *
   *  Creates a group item.
   *
   *  @param object The @c GTLRYouTubeAnalytics_GroupItem to include in the query.
   *
   *  @return GTLRYouTubeAnalyticsQuery_GroupItemsInsert
   */
  + (instancetype)queryWithObject:(GTLRYouTubeAnalytics_GroupItem *)object;
  
  @end
  
  /**
   *  Returns a collection of group items that match the API request parameters.
   *
   *  Method: youtubeAnalytics.groupItems.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutube
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubepartner
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubeReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsMonetaryReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsReadonly
   */
  @interface GTLRYouTubeAnalyticsQuery_GroupItemsList : GTLRYouTubeAnalyticsQuery
  // Previous library name was
  //   +[GTLQueryYouTubeAnalytics queryForGroupItemsList]
  
  /**
   *  The `groupId` parameter specifies the unique ID of the group for which you
   *  want to retrieve group items.
   */
  @property(nonatomic, copy, nullable) NSString *groupId;
  
  /**
   *  This parameter can only be used in a properly authorized request. **Note:**
   *  This parameter is intended exclusively for YouTube content partners that own
   *  and manage many different YouTube channels. The `onBehalfOfContentOwner`
   *  parameter indicates that the request's authorization credentials identify a
   *  YouTube user who is acting on behalf of the content owner specified in the
   *  parameter value. It allows content owners to authenticate once and get
   *  access to all their video and channel data, without having to provide
   *  authentication credentials for each individual channel. The account that the
   *  user authenticates with must be linked to the specified YouTube content
   *  owner.
   */
  @property(nonatomic, copy, nullable) NSString *onBehalfOfContentOwner;
  
  /**
   *  Fetches a @c GTLRYouTubeAnalytics_ListGroupItemsResponse.
   *
   *  Returns a collection of group items that match the API request parameters.
   *
   *  @return GTLRYouTubeAnalyticsQuery_GroupItemsList
   */
  + (instancetype)query;
  
  @end
  
  /**
   *  Deletes a group.
   *
   *  Method: youtubeAnalytics.groups.delete
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutube
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubepartner
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubeReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsMonetaryReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsReadonly
   */
  @interface GTLRYouTubeAnalyticsQuery_GroupsDelete : GTLRYouTubeAnalyticsQuery
  // Previous library name was
  //   +[GTLQueryYouTubeAnalytics queryForGroupsDelete]
  
  /**
   *  The `id` parameter specifies the YouTube group ID of the group that is being
   *  deleted.
   *
   *  identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
   */
  @property(nonatomic, copy, nullable) NSString *identifier;
  
  /**
   *  This parameter can only be used in a properly authorized request. **Note:**
   *  This parameter is intended exclusively for YouTube content partners that own
   *  and manage many different YouTube channels. The `onBehalfOfContentOwner`
   *  parameter indicates that the request's authorization credentials identify a
   *  YouTube user who is acting on behalf of the content owner specified in the
   *  parameter value. It allows content owners to authenticate once and get
   *  access to all their video and channel data, without having to provide
   *  authentication credentials for each individual channel. The account that the
   *  user authenticates with must be linked to the specified YouTube content
   *  owner.
   */
  @property(nonatomic, copy, nullable) NSString *onBehalfOfContentOwner;
  
  /**
   *  Fetches a @c GTLRYouTubeAnalytics_EmptyResponse.
   *
   *  Deletes a group.
   *
   *  @return GTLRYouTubeAnalyticsQuery_GroupsDelete
   */
  + (instancetype)query;
  
  @end
  
  /**
   *  Creates a group.
   *
   *  Method: youtubeAnalytics.groups.insert
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutube
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubepartner
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubeReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsMonetaryReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsReadonly
   */
  @interface GTLRYouTubeAnalyticsQuery_GroupsInsert : GTLRYouTubeAnalyticsQuery
  // Previous library name was
  //   +[GTLQueryYouTubeAnalytics queryForGroupsInsertWithObject:]
  
  /**
   *  This parameter can only be used in a properly authorized request. **Note:**
   *  This parameter is intended exclusively for YouTube content partners that own
   *  and manage many different YouTube channels. The `onBehalfOfContentOwner`
   *  parameter indicates that the request's authorization credentials identify a
   *  YouTube user who is acting on behalf of the content owner specified in the
   *  parameter value. It allows content owners to authenticate once and get
   *  access to all their video and channel data, without having to provide
   *  authentication credentials for each individual channel. The account that the
   *  user authenticates with must be linked to the specified YouTube content
   *  owner.
   */
  @property(nonatomic, copy, nullable) NSString *onBehalfOfContentOwner;
  
  /**
   *  Fetches a @c GTLRYouTubeAnalytics_Group.
   *
   *  Creates a group.
   *
   *  @param object The @c GTLRYouTubeAnalytics_Group to include in the query.
   *
   *  @return GTLRYouTubeAnalyticsQuery_GroupsInsert
   */
  + (instancetype)queryWithObject:(GTLRYouTubeAnalytics_Group *)object;
  
  @end
  
  /**
   *  Returns a collection of groups that match the API request parameters. For
   *  example, you can retrieve all groups that the authenticated user owns, or
   *  you can retrieve one or more groups by their unique IDs.
   *
   *  Method: youtubeAnalytics.groups.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutube
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubepartner
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubeReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsMonetaryReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsReadonly
   */
  @interface GTLRYouTubeAnalyticsQuery_GroupsList : GTLRYouTubeAnalyticsQuery
  // Previous library name was
  //   +[GTLQueryYouTubeAnalytics queryForGroupsList]
  
  /**
   *  The `id` parameter specifies a comma-separated list of the YouTube group
   *  ID(s) for the resource(s) that are being retrieved. Each group must be owned
   *  by the authenticated user. In a `group` resource, the `id` property
   *  specifies the group's YouTube group ID. Note that if you do not specify a
   *  value for the `id` parameter, then you must set the `mine` parameter to
   *  `true`.
   *
   *  identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
   */
  @property(nonatomic, copy, nullable) NSString *identifier;
  
  /**
   *  This parameter can only be used in a properly authorized request. Set this
   *  parameter's value to true to retrieve all groups owned by the authenticated
   *  user.
   */
  @property(nonatomic, assign) BOOL mine;
  
  /**
   *  This parameter can only be used in a properly authorized request. **Note:**
   *  This parameter is intended exclusively for YouTube content partners that own
   *  and manage many different YouTube channels. The `onBehalfOfContentOwner`
   *  parameter indicates that the request's authorization credentials identify a
   *  YouTube user who is acting on behalf of the content owner specified in the
   *  parameter value. It allows content owners to authenticate once and get
   *  access to all their video and channel data, without having to provide
   *  authentication credentials for each individual channel. The account that the
   *  user authenticates with must be linked to the specified YouTube content
   *  owner.
   */
  @property(nonatomic, copy, nullable) NSString *onBehalfOfContentOwner;
  
  /**
   *  The `pageToken` parameter identifies a specific page in the result set that
   *  should be returned. In an API response, the `nextPageToken` property
   *  identifies the next page that can be retrieved.
   */
  @property(nonatomic, copy, nullable) NSString *pageToken;
  
  /**
   *  Fetches a @c GTLRYouTubeAnalytics_ListGroupsResponse.
   *
   *  Returns a collection of groups that match the API request parameters. For
   *  example, you can retrieve all groups that the authenticated user owns, or
   *  you can retrieve one or more groups by their unique IDs.
   *
   *  @return GTLRYouTubeAnalyticsQuery_GroupsList
   *
   *  @note Automatic pagination will be done when @c shouldFetchNextPages is
   *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
   *        information.
   */
  + (instancetype)query;
  
  @end
  
  /**
   *  Modifies a group. For example, you could change a group's title.
   *
   *  Method: youtubeAnalytics.groups.update
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutube
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubepartner
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubeReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsMonetaryReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsReadonly
   */
  @interface GTLRYouTubeAnalyticsQuery_GroupsUpdate : GTLRYouTubeAnalyticsQuery
  // Previous library name was
  //   +[GTLQueryYouTubeAnalytics queryForGroupsUpdateWithObject:]
  
  /**
   *  This parameter can only be used in a properly authorized request. **Note:**
   *  This parameter is intended exclusively for YouTube content partners that own
   *  and manage many different YouTube channels. The `onBehalfOfContentOwner`
   *  parameter indicates that the request's authorization credentials identify a
   *  YouTube user who is acting on behalf of the content owner specified in the
   *  parameter value. It allows content owners to authenticate once and get
   *  access to all their video and channel data, without having to provide
   *  authentication credentials for each individual channel. The account that the
   *  user authenticates with must be linked to the specified YouTube content
   *  owner.
   */
  @property(nonatomic, copy, nullable) NSString *onBehalfOfContentOwner;
  
  /**
   *  Fetches a @c GTLRYouTubeAnalytics_Group.
   *
   *  Modifies a group. For example, you could change a group's title.
   *
   *  @param object The @c GTLRYouTubeAnalytics_Group to include in the query.
   *
   *  @return GTLRYouTubeAnalyticsQuery_GroupsUpdate
   */
  + (instancetype)queryWithObject:(GTLRYouTubeAnalytics_Group *)object;
  
  @end
  
  /**
   *  Retrieve your YouTube Analytics reports.
   *
   *  Method: youtubeAnalytics.reports.query
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutube
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubepartner
   *    @c kGTLRAuthScopeYouTubeAnalyticsYoutubeReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsMonetaryReadonly
   *    @c kGTLRAuthScopeYouTubeAnalyticsYtAnalyticsReadonly
   */
  @interface GTLRYouTubeAnalyticsQuery_ReportsQuery : GTLRYouTubeAnalyticsQuery
  // Previous library name was
  //   +[GTLQueryYouTubeAnalytics queryForReportsQuery]
  
  /**
   *  The currency to which financial metrics should be converted. The default is
   *  US Dollar (USD). If the result contains no financial metrics, this flag will
   *  be ignored. Responds with an error if the specified currency is not
   *  recognized.", pattern: [A-Z]{3}
   */
  @property(nonatomic, copy, nullable) NSString *currency;
  
  /**
   *  A comma-separated list of YouTube Analytics dimensions, such as `views` or
   *  `ageGroup,gender`. See the [Available
   *  Reports](/youtube/analytics/v2/available_reports) document for a list of the
   *  reports that you can retrieve and the dimensions used for those reports.
   *  Also see the [Dimensions](/youtube/analytics/v2/dimsmets/dims) document for
   *  definitions of those dimensions." pattern: [0-9a-zA-Z,]+
   */
  @property(nonatomic, copy, nullable) NSString *dimensions;
  
  /**
   *  The end date for fetching YouTube Analytics data. The value should be in
   *  `YYYY-MM-DD` format. required: true, pattern: [0-9]{4}-[0-9]{2}-[0-9]{2}
   */
  @property(nonatomic, copy, nullable) NSString *endDate;
  
  /**
   *  A list of filters that should be applied when retrieving YouTube Analytics
   *  data. The [Available Reports](/youtube/analytics/v2/available_reports)
   *  document identifies the dimensions that can be used to filter each report,
   *  and the [Dimensions](/youtube/analytics/v2/dimsmets/dims) document defines
   *  those dimensions. If a request uses multiple filters, join them together
   *  with a semicolon (`;`), and the returned result table will satisfy both
   *  filters. For example, a filters parameter value of
   *  `video==dMH0bHeiRNg;country==IT` restricts the result set to include data
   *  for the given video in Italy.",
   */
  @property(nonatomic, copy, nullable) NSString *filters;
  
  /**
   *  Identifies the YouTube channel or content owner for which you are retrieving
   *  YouTube Analytics data. - To request data for a YouTube user, set the `ids`
   *  parameter value to `channel==CHANNEL_ID`, where `CHANNEL_ID` specifies the
   *  unique YouTube channel ID. - To request data for a YouTube CMS content
   *  owner, set the `ids` parameter value to `contentOwner==OWNER_NAME`, where
   *  `OWNER_NAME` is the CMS name of the content owner. required: true, pattern:
   *  [a-zA-Z]+==[a-zA-Z0-9_+-]+
   */
  @property(nonatomic, copy, nullable) NSString *ids;
  
  /**
   *  If set to true historical data (i.e. channel data from before the linking of
   *  the channel to the content owner) will be retrieved.",
   */
  @property(nonatomic, assign) BOOL includeHistoricalChannelData;
  
  /** The maximum number of rows to include in the response.", minValue: 1 */
  @property(nonatomic, assign) NSInteger maxResults;
  
  /**
   *  A comma-separated list of YouTube Analytics metrics, such as `views` or
   *  `likes,dislikes`. See the [Available
   *  Reports](/youtube/analytics/v2/available_reports) document for a list of the
   *  reports that you can retrieve and the metrics available in each report, and
   *  see the [Metrics](/youtube/analytics/v2/dimsmets/mets) document for
   *  definitions of those metrics. required: true, pattern: [0-9a-zA-Z,]+
   */
  @property(nonatomic, copy, nullable) NSString *metrics;
  
  /**
   *  A comma-separated list of dimensions or metrics that determine the sort
   *  order for YouTube Analytics data. By default the sort order is ascending.
   *  The '`-`' prefix causes descending sort order.", pattern: [-0-9a-zA-Z,]+
   */
  @property(nonatomic, copy, nullable) NSString *sort;
  
  /**
   *  The start date for fetching YouTube Analytics data. The value should be in
   *  `YYYY-MM-DD` format. required: true, pattern: "[0-9]{4}-[0-9]{2}-[0-9]{2}
   */
  @property(nonatomic, copy, nullable) NSString *startDate;
  
  /**
   *  An index of the first entity to retrieve. Use this parameter as a pagination
   *  mechanism along with the max-results parameter (one-based, inclusive).",
   *  minValue: 1
   */
  @property(nonatomic, assign) NSInteger startIndex;
  
  /**
   *  Fetches a @c GTLRYouTubeAnalytics_QueryResponse.
   *
   *  Retrieve your YouTube Analytics reports.
   *
   *  @return GTLRYouTubeAnalyticsQuery_ReportsQuery
   */
  + (instancetype)query;
  
  @end
  
  NS_ASSUME_NONNULL_END
  
  #pragma clang diagnostic pop
  