text: // NOTE: This file was generated by the ServiceGenerator.
  
  // ----------------------------------------------------------------------------
  // API:
  //   Cloud SQL Admin API (sqladmin/v1)
  // Description:
  //   API for Cloud SQL database instance management
  // Documentation:
  //   https://developers.google.com/cloud-sql/
  
  #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 GTLRSQLAdmin_BackupRun;
  @class GTLRSQLAdmin_Database;
  @class GTLRSQLAdmin_DatabaseInstance;
  @class GTLRSQLAdmin_GenerateEphemeralCertRequest;
  @class GTLRSQLAdmin_InstancesCloneRequest;
  @class GTLRSQLAdmin_InstancesDemoteMasterRequest;
  @class GTLRSQLAdmin_InstancesExportRequest;
  @class GTLRSQLAdmin_InstancesFailoverRequest;
  @class GTLRSQLAdmin_InstancesImportRequest;
  @class GTLRSQLAdmin_InstancesRestoreBackupRequest;
  @class GTLRSQLAdmin_InstancesRotateServerCaRequest;
  @class GTLRSQLAdmin_InstancesTruncateLogRequest;
  @class GTLRSQLAdmin_SqlInstancesRescheduleMaintenanceRequestBody;
  @class GTLRSQLAdmin_SqlInstancesStartExternalSyncRequest;
  @class GTLRSQLAdmin_SqlInstancesVerifyExternalSyncSettingsRequest;
  @class GTLRSQLAdmin_SslCertsCreateEphemeralRequest;
  @class GTLRSQLAdmin_SslCertsInsertRequest;
  @class GTLRSQLAdmin_User;
  
  // 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 SQL Admin query classes.
   */
  @interface GTLRSQLAdminQuery : GTLRQuery
  
  /** Selector specifying which fields to include in a partial response. */
  @property(nonatomic, copy, nullable) NSString *fields;
  
  @end
  
  /**
   *  Deletes the backup taken by a backup run.
   *
   *  Method: sql.backupRuns.delete
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_BackupRunsDelete : GTLRSQLAdminQuery
  
  /**
   *  The ID of the backup run to delete. To find a backup run ID, use the list
   *  method.
   *
   *  identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
   */
  @property(nonatomic, assign) long long identifier;
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Deletes the backup taken by a backup run.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *  @param identifier The ID of the backup run to delete. To find a backup run
   *    ID, use the list method.
   *
   *  @return GTLRSQLAdminQuery_BackupRunsDelete
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance
                        identifier:(long long)identifier;
  
  @end
  
  /**
   *  Retrieves a resource containing information about a backup run.
   *
   *  Method: sql.backupRuns.get
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_BackupRunsGet : GTLRSQLAdminQuery
  
  /**
   *  The ID of this backup run.
   *
   *  identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
   */
  @property(nonatomic, assign) long long identifier;
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_BackupRun.
   *
   *  Retrieves a resource containing information about a backup run.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *  @param identifier The ID of this backup run.
   *
   *  @return GTLRSQLAdminQuery_BackupRunsGet
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance
                        identifier:(long long)identifier;
  
  @end
  
  /**
   *  Creates a new backup run on demand.
   *
   *  Method: sql.backupRuns.insert
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_BackupRunsInsert : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Creates a new backup run on demand.
   *
   *  @param object The @c GTLRSQLAdmin_BackupRun to include in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_BackupRunsInsert
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_BackupRun *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Lists all backup runs associated with the project or a given instance and
   *  configuration in the reverse chronological order of the backup initiation
   *  time.
   *
   *  Method: sql.backupRuns.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_BackupRunsList : GTLRSQLAdminQuery
  
  /**
   *  Cloud SQL instance ID, or "-" for all instances. This does not include the
   *  project ID.
   */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Maximum number of backup runs per response. */
  @property(nonatomic, assign) NSInteger maxResults;
  
  /**
   *  A previously-returned page token representing part of the larger set of
   *  results to view.
   */
  @property(nonatomic, copy, nullable) NSString *pageToken;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_BackupRunsListResponse.
   *
   *  Lists all backup runs associated with the project or a given instance and
   *  configuration in the reverse chronological order of the backup initiation
   *  time.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID, or "-" for all instances. This does
   *    not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_BackupRunsList
   *
   *  @note Automatic pagination will be done when @c shouldFetchNextPages is
   *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
   *        information.
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Generates a short-lived X509 certificate containing the provided public key
   *  and signed by a private key specific to the target instance. Users may use
   *  the certificate to authenticate as themselves when connecting to the
   *  database.
   *
   *  Method: sql.connect.generateEphemeral
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_ConnectGenerateEphemeralCert : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_GenerateEphemeralCertResponse.
   *
   *  Generates a short-lived X509 certificate containing the provided public key
   *  and signed by a private key specific to the target instance. Users may use
   *  the certificate to authenticate as themselves when connecting to the
   *  database.
   *
   *  @param object The @c GTLRSQLAdmin_GenerateEphemeralCertRequest to include in
   *    the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_ConnectGenerateEphemeralCert
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_GenerateEphemeralCertRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Retrieves connect settings about a Cloud SQL instance.
   *
   *  Method: sql.connect.get
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_ConnectGet : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Optional. Optional snapshot read timestamp to trade freshness for
   *  performance.
   */
  @property(nonatomic, strong, nullable) GTLRDateTime *readTime;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_ConnectSettings.
   *
   *  Retrieves connect settings about a Cloud SQL instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_ConnectGet
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Deletes a database from a Cloud SQL instance.
   *
   *  Method: sql.databases.delete
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_DatabasesDelete : GTLRSQLAdminQuery
  
  /** Name of the database to be deleted in the instance. */
  @property(nonatomic, copy, nullable) NSString *database;
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Deletes a database from a Cloud SQL instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *  @param database Name of the database to be deleted in the instance.
   *
   *  @return GTLRSQLAdminQuery_DatabasesDelete
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance
                          database:(NSString *)database;
  
  @end
  
  /**
   *  Retrieves a resource containing information about a database inside a Cloud
   *  SQL instance.
   *
   *  Method: sql.databases.get
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_DatabasesGet : GTLRSQLAdminQuery
  
  /** Name of the database in the instance. */
  @property(nonatomic, copy, nullable) NSString *database;
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Database.
   *
   *  Retrieves a resource containing information about a database inside a Cloud
   *  SQL instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *  @param database Name of the database in the instance.
   *
   *  @return GTLRSQLAdminQuery_DatabasesGet
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance
                          database:(NSString *)database;
  
  @end
  
  /**
   *  Inserts a resource containing information about a database inside a Cloud
   *  SQL instance.
   *
   *  Method: sql.databases.insert
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_DatabasesInsert : GTLRSQLAdminQuery
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Inserts a resource containing information about a database inside a Cloud
   *  SQL instance.
   *
   *  @param object The @c GTLRSQLAdmin_Database to include in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_DatabasesInsert
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_Database *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Lists databases in the specified Cloud SQL instance.
   *
   *  Method: sql.databases.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_DatabasesList : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_DatabasesListResponse.
   *
   *  Lists databases in the specified Cloud SQL instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_DatabasesList
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Partially updates a resource containing information about a database inside
   *  a Cloud SQL instance. This method supports patch semantics.
   *
   *  Method: sql.databases.patch
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_DatabasesPatch : GTLRSQLAdminQuery
  
  /** Name of the database to be updated in the instance. */
  @property(nonatomic, copy, nullable) NSString *database;
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Partially updates a resource containing information about a database inside
   *  a Cloud SQL instance. This method supports patch semantics.
   *
   *  @param object The @c GTLRSQLAdmin_Database to include in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *  @param database Name of the database to be updated in the instance.
   *
   *  @return GTLRSQLAdminQuery_DatabasesPatch
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_Database *)object
                          project:(NSString *)project
                         instance:(NSString *)instance
                         database:(NSString *)database;
  
  @end
  
  /**
   *  Updates a resource containing information about a database inside a Cloud
   *  SQL instance.
   *
   *  Method: sql.databases.update
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_DatabasesUpdate : GTLRSQLAdminQuery
  
  /** Name of the database to be updated in the instance. */
  @property(nonatomic, copy, nullable) NSString *database;
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Updates a resource containing information about a database inside a Cloud
   *  SQL instance.
   *
   *  @param object The @c GTLRSQLAdmin_Database to include in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *  @param database Name of the database to be updated in the instance.
   *
   *  @return GTLRSQLAdminQuery_DatabasesUpdate
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_Database *)object
                          project:(NSString *)project
                         instance:(NSString *)instance
                         database:(NSString *)database;
  
  @end
  
  /**
   *  Lists all available database flags for Cloud SQL instances.
   *
   *  Method: sql.flags.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_FlagsList : GTLRSQLAdminQuery
  
  /**
   *  Database type and version you want to retrieve flags for. By default, this
   *  method returns flags for all database types and versions.
   */
  @property(nonatomic, copy, nullable) NSString *databaseVersion;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_FlagsListResponse.
   *
   *  Lists all available database flags for Cloud SQL instances.
   *
   *  @return GTLRSQLAdminQuery_FlagsList
   */
  + (instancetype)query;
  
  @end
  
  /**
   *  Adds a new trusted Certificate Authority (CA) version for the specified
   *  instance. Required to prepare for a certificate rotation. If a CA version
   *  was previously added but never used in a certificate rotation, this
   *  operation replaces that version. There cannot be more than one CA version
   *  waiting to be rotated in.
   *
   *  Method: sql.instances.addServerCa
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesAddServerCa : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Adds a new trusted Certificate Authority (CA) version for the specified
   *  instance. Required to prepare for a certificate rotation. If a CA version
   *  was previously added but never used in a certificate rotation, this
   *  operation replaces that version. There cannot be more than one CA version
   *  waiting to be rotated in.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesAddServerCa
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Creates a Cloud SQL instance as a clone of the source instance. Using this
   *  operation might cause your instance to restart.
   *
   *  Method: sql.instances.clone
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesClone : GTLRSQLAdminQuery
  
  /**
   *  The ID of the Cloud SQL instance to be cloned (source). This does not
   *  include the project ID.
   */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the source as well as the clone Cloud SQL instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Creates a Cloud SQL instance as a clone of the source instance. Using this
   *  operation might cause your instance to restart.
   *
   *  @param object The @c GTLRSQLAdmin_InstancesCloneRequest to include in the
   *    query.
   *  @param project Project ID of the source as well as the clone Cloud SQL
   *    instance.
   *  @param instance The ID of the Cloud SQL instance to be cloned (source). This
   *    does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesClone
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_InstancesCloneRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Deletes a Cloud SQL instance.
   *
   *  Method: sql.instances.delete
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesDelete : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance to be deleted. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Deletes a Cloud SQL instance.
   *
   *  @param project Project ID of the project that contains the instance to be
   *    deleted.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesDelete
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Demotes the stand-alone instance to be a Cloud SQL read replica for an
   *  external database server.
   *
   *  Method: sql.instances.demoteMaster
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesDemoteMaster : GTLRSQLAdminQuery
  
  /** Cloud SQL instance name. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Demotes the stand-alone instance to be a Cloud SQL read replica for an
   *  external database server.
   *
   *  @param object The @c GTLRSQLAdmin_InstancesDemoteMasterRequest to include in
   *    the query.
   *  @param project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance name.
   *
   *  @return GTLRSQLAdminQuery_InstancesDemoteMaster
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_InstancesDemoteMasterRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL
   *  dump or CSV file.
   *
   *  Method: sql.instances.export
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   */
  @interface GTLRSQLAdminQuery_InstancesExport : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance to be exported. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Exports data from a Cloud SQL instance to a Cloud Storage bucket as a SQL
   *  dump or CSV file.
   *
   *  @param object The @c GTLRSQLAdmin_InstancesExportRequest to include in the
   *    query.
   *  @param project Project ID of the project that contains the instance to be
   *    exported.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesExport
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_InstancesExportRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Initiates a manual failover of a high availability (HA) primary instance to
   *  a standby instance, which becomes the primary instance. Users are then
   *  rerouted to the new primary. For more information, see the Overview of high
   *  availability page in the Cloud SQL documentation. If using Legacy HA (MySQL
   *  only), this causes the instance to failover to its failover replica
   *  instance.
   *
   *  Method: sql.instances.failover
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesFailover : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** ID of the project that contains the read replica. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Initiates a manual failover of a high availability (HA) primary instance to
   *  a standby instance, which becomes the primary instance. Users are then
   *  rerouted to the new primary. For more information, see the Overview of high
   *  availability page in the Cloud SQL documentation. If using Legacy HA (MySQL
   *  only), this causes the instance to failover to its failover replica
   *  instance.
   *
   *  @param object The @c GTLRSQLAdmin_InstancesFailoverRequest to include in the
   *    query.
   *  @param project ID of the project that contains the read replica.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesFailover
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_InstancesFailoverRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Retrieves a resource containing information about a Cloud SQL instance.
   *
   *  Method: sql.instances.get
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesGet : GTLRSQLAdminQuery
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_DatabaseInstance.
   *
   *  Retrieves a resource containing information about a Cloud SQL instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesGet
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Imports data into a Cloud SQL instance from a SQL dump or CSV file in Cloud
   *  Storage.
   *
   *  Method: sql.instances.import
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   */
  @interface GTLRSQLAdminQuery_InstancesImport : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Imports data into a Cloud SQL instance from a SQL dump or CSV file in Cloud
   *  Storage.
   *
   *  @param object The @c GTLRSQLAdmin_InstancesImportRequest to include in the
   *    query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesImport
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_InstancesImportRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Creates a new Cloud SQL instance.
   *
   *  Method: sql.instances.insert
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesInsert : GTLRSQLAdminQuery
  
  /**
   *  Project ID of the project to which the newly created Cloud SQL instances
   *  should belong.
   */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Creates a new Cloud SQL instance.
   *
   *  @param object The @c GTLRSQLAdmin_DatabaseInstance to include in the query.
   *  @param project Project ID of the project to which the newly created Cloud
   *    SQL instances should belong.
   *
   *  @return GTLRSQLAdminQuery_InstancesInsert
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_DatabaseInstance *)object
                          project:(NSString *)project;
  
  @end
  
  /**
   *  Lists instances under a given project.
   *
   *  Method: sql.instances.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesList : GTLRSQLAdminQuery
  
  /**
   *  A filter expression that filters resources listed in the response. The
   *  expression is in the form of field:value. For example,
   *  'instanceType:CLOUD_SQL_INSTANCE'. Fields can be nested as needed as per
   *  their JSON representation, such as 'settings.userLabels.auto_start:true'.
   *  Multiple filter queries are space-separated. For example. 'state:RUNNABLE
   *  instanceType:CLOUD_SQL_INSTANCE'. By default, each expression is an AND
   *  expression. However, you can include AND and OR expressions explicitly.
   */
  @property(nonatomic, copy, nullable) NSString *filter;
  
  /** The maximum number of results to return per response. */
  @property(nonatomic, assign) NSUInteger maxResults;
  
  /**
   *  A previously-returned page token representing part of the larger set of
   *  results to view.
   */
  @property(nonatomic, copy, nullable) NSString *pageToken;
  
  /** Project ID of the project for which to list Cloud SQL instances. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_InstancesListResponse.
   *
   *  Lists instances under a given project.
   *
   *  @param project Project ID of the project for which to list Cloud SQL
   *    instances.
   *
   *  @return GTLRSQLAdminQuery_InstancesList
   *
   *  @note Automatic pagination will be done when @c shouldFetchNextPages is
   *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
   *        information.
   */
  + (instancetype)queryWithProject:(NSString *)project;
  
  @end
  
  /**
   *  Lists all of the trusted Certificate Authorities (CAs) for the specified
   *  instance. There can be up to three CAs listed: the CA that was used to sign
   *  the certificate that is currently in use, a CA that has been added but not
   *  yet used to sign a certificate, and a CA used to sign a certificate that has
   *  previously rotated out.
   *
   *  Method: sql.instances.listServerCas
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesListServerCas : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_InstancesListServerCasResponse.
   *
   *  Lists all of the trusted Certificate Authorities (CAs) for the specified
   *  instance. There can be up to three CAs listed: the CA that was used to sign
   *  the certificate that is currently in use, a CA that has been added but not
   *  yet used to sign a certificate, and a CA used to sign a certificate that has
   *  previously rotated out.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesListServerCas
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Updates settings of a Cloud SQL instance. This method supports patch
   *  semantics.
   *
   *  Method: sql.instances.patch
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesPatch : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Updates settings of a Cloud SQL instance. This method supports patch
   *  semantics.
   *
   *  @param object The @c GTLRSQLAdmin_DatabaseInstance to include in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesPatch
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_DatabaseInstance *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Promotes the read replica instance to be a stand-alone Cloud SQL instance.
   *  Using this operation might cause your instance to restart.
   *
   *  Method: sql.instances.promoteReplica
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesPromoteReplica : GTLRSQLAdminQuery
  
  /** Cloud SQL read replica instance name. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** ID of the project that contains the read replica. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Promotes the read replica instance to be a stand-alone Cloud SQL instance.
   *  Using this operation might cause your instance to restart.
   *
   *  @param project ID of the project that contains the read replica.
   *  @param instance Cloud SQL read replica instance name.
   *
   *  @return GTLRSQLAdminQuery_InstancesPromoteReplica
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Deletes all client certificates and generates a new server SSL certificate
   *  for the instance.
   *
   *  Method: sql.instances.resetSslConfig
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesResetSslConfig : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Deletes all client certificates and generates a new server SSL certificate
   *  for the instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesResetSslConfig
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Restarts a Cloud SQL instance.
   *
   *  Method: sql.instances.restart
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesRestart : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance to be restarted. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Restarts a Cloud SQL instance.
   *
   *  @param project Project ID of the project that contains the instance to be
   *    restarted.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesRestart
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Restores a backup of a Cloud SQL instance. Using this operation might cause
   *  your instance to restart.
   *
   *  Method: sql.instances.restoreBackup
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesRestoreBackup : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Restores a backup of a Cloud SQL instance. Using this operation might cause
   *  your instance to restart.
   *
   *  @param object The @c GTLRSQLAdmin_InstancesRestoreBackupRequest to include
   *    in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesRestoreBackup
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_InstancesRestoreBackupRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Rotates the server certificate to one signed by the Certificate Authority
   *  (CA) version previously added with the addServerCA method.
   *
   *  Method: sql.instances.rotateServerCa
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesRotateServerCa : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Rotates the server certificate to one signed by the Certificate Authority
   *  (CA) version previously added with the addServerCA method.
   *
   *  @param object The @c GTLRSQLAdmin_InstancesRotateServerCaRequest to include
   *    in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesRotateServerCa
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_InstancesRotateServerCaRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Starts the replication in the read replica instance.
   *
   *  Method: sql.instances.startReplica
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesStartReplica : GTLRSQLAdminQuery
  
  /** Cloud SQL read replica instance name. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** ID of the project that contains the read replica. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Starts the replication in the read replica instance.
   *
   *  @param project ID of the project that contains the read replica.
   *  @param instance Cloud SQL read replica instance name.
   *
   *  @return GTLRSQLAdminQuery_InstancesStartReplica
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Stops the replication in the read replica instance.
   *
   *  Method: sql.instances.stopReplica
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesStopReplica : GTLRSQLAdminQuery
  
  /** Cloud SQL read replica instance name. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** ID of the project that contains the read replica. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Stops the replication in the read replica instance.
   *
   *  @param project ID of the project that contains the read replica.
   *  @param instance Cloud SQL read replica instance name.
   *
   *  @return GTLRSQLAdminQuery_InstancesStopReplica
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Truncate MySQL general and slow query log tables MySQL only.
   *
   *  Method: sql.instances.truncateLog
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesTruncateLog : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the Cloud SQL project. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Truncate MySQL general and slow query log tables MySQL only.
   *
   *  @param object The @c GTLRSQLAdmin_InstancesTruncateLogRequest to include in
   *    the query.
   *  @param project Project ID of the Cloud SQL project.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesTruncateLog
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_InstancesTruncateLogRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Updates settings of a Cloud SQL instance. Using this operation might cause
   *  your instance to restart.
   *
   *  Method: sql.instances.update
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_InstancesUpdate : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Updates settings of a Cloud SQL instance. Using this operation might cause
   *  your instance to restart.
   *
   *  @param object The @c GTLRSQLAdmin_DatabaseInstance to include in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_InstancesUpdate
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_DatabaseInstance *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Retrieves an instance operation that has been performed on an instance.
   *
   *  Method: sql.operations.get
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_OperationsGet : GTLRSQLAdminQuery
  
  /** Instance operation ID. */
  @property(nonatomic, copy, nullable) NSString *operation;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Retrieves an instance operation that has been performed on an instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param operation Instance operation ID.
   *
   *  @return GTLRSQLAdminQuery_OperationsGet
   */
  + (instancetype)queryWithProject:(NSString *)project
                         operation:(NSString *)operation;
  
  @end
  
  /**
   *  Lists all instance operations that have been performed on the given Cloud
   *  SQL instance in the reverse chronological order of the start time.
   *
   *  Method: sql.operations.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_OperationsList : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Maximum number of operations per response. */
  @property(nonatomic, assign) NSUInteger maxResults;
  
  /**
   *  A previously-returned page token representing part of the larger set of
   *  results to view.
   */
  @property(nonatomic, copy, nullable) NSString *pageToken;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_OperationsListResponse.
   *
   *  Lists all instance operations that have been performed on the given Cloud
   *  SQL instance in the reverse chronological order of the start time.
   *
   *  @param project Project ID of the project that contains the instance.
   *
   *  @return GTLRSQLAdminQuery_OperationsList
   *
   *  @note Automatic pagination will be done when @c shouldFetchNextPages is
   *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
   *        information.
   */
  + (instancetype)queryWithProject:(NSString *)project;
  
  @end
  
  /**
   *  Reschedules the maintenance on the given instance.
   *
   *  Method: sql.projects.instances.rescheduleMaintenance
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_ProjectsInstancesRescheduleMaintenance : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Reschedules the maintenance on the given instance.
   *
   *  @param object The @c
   *    GTLRSQLAdmin_SqlInstancesRescheduleMaintenanceRequestBody to include in
   *    the query.
   *  @param project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_ProjectsInstancesRescheduleMaintenance
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_SqlInstancesRescheduleMaintenanceRequestBody *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Start External primary instance migration.
   *
   *  Method: sql.projects.instances.startExternalSync
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_ProjectsInstancesStartExternalSync : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Start External primary instance migration.
   *
   *  @param object The @c GTLRSQLAdmin_SqlInstancesStartExternalSyncRequest to
   *    include in the query.
   *  @param project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_ProjectsInstancesStartExternalSync
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_SqlInstancesStartExternalSyncRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Verify External primary instance external sync settings.
   *
   *  Method: sql.projects.instances.verifyExternalSyncSettings
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_ProjectsInstancesVerifyExternalSyncSettings : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_SqlInstancesVerifyExternalSyncSettingsResponse.
   *
   *  Verify External primary instance external sync settings.
   *
   *  @param object The @c
   *    GTLRSQLAdmin_SqlInstancesVerifyExternalSyncSettingsRequest to include in
   *    the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_ProjectsInstancesVerifyExternalSyncSettings
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_SqlInstancesVerifyExternalSyncSettingsRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Generates a short-lived X509 certificate containing the provided public key
   *  and signed by a private key specific to the target instance. Users may use
   *  the certificate to authenticate as themselves when connecting to the
   *  database.
   *
   *  Method: sql.sslCerts.createEphemeral
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_SslCertsCreateEphemeral : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the Cloud SQL project. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_SslCert.
   *
   *  Generates a short-lived X509 certificate containing the provided public key
   *  and signed by a private key specific to the target instance. Users may use
   *  the certificate to authenticate as themselves when connecting to the
   *  database.
   *
   *  @param object The @c GTLRSQLAdmin_SslCertsCreateEphemeralRequest to include
   *    in the query.
   *  @param project Project ID of the Cloud SQL project.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_SslCertsCreateEphemeral
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_SslCertsCreateEphemeralRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Deletes the SSL certificate. For First Generation instances, the certificate
   *  remains valid until the instance is restarted.
   *
   *  Method: sql.sslCerts.delete
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_SslCertsDelete : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /** Sha1 FingerPrint. */
  @property(nonatomic, copy, nullable) NSString *sha1Fingerprint;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Deletes the SSL certificate. For First Generation instances, the certificate
   *  remains valid until the instance is restarted.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *  @param sha1Fingerprint Sha1 FingerPrint.
   *
   *  @return GTLRSQLAdminQuery_SslCertsDelete
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance
                   sha1Fingerprint:(NSString *)sha1Fingerprint;
  
  @end
  
  /**
   *  Retrieves a particular SSL certificate. Does not include the private key
   *  (required for usage). The private key must be saved from the response to
   *  initial creation.
   *
   *  Method: sql.sslCerts.get
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_SslCertsGet : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /** Sha1 FingerPrint. */
  @property(nonatomic, copy, nullable) NSString *sha1Fingerprint;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_SslCert.
   *
   *  Retrieves a particular SSL certificate. Does not include the private key
   *  (required for usage). The private key must be saved from the response to
   *  initial creation.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *  @param sha1Fingerprint Sha1 FingerPrint.
   *
   *  @return GTLRSQLAdminQuery_SslCertsGet
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance
                   sha1Fingerprint:(NSString *)sha1Fingerprint;
  
  @end
  
  /**
   *  Creates an SSL certificate and returns it along with the private key and
   *  server certificate authority. The new certificate will not be usable until
   *  the instance is restarted.
   *
   *  Method: sql.sslCerts.insert
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_SslCertsInsert : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_SslCertsInsertResponse.
   *
   *  Creates an SSL certificate and returns it along with the private key and
   *  server certificate authority. The new certificate will not be usable until
   *  the instance is restarted.
   *
   *  @param object The @c GTLRSQLAdmin_SslCertsInsertRequest to include in the
   *    query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_SslCertsInsert
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_SslCertsInsertRequest *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Lists all of the current SSL certificates for the instance.
   *
   *  Method: sql.sslCerts.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_SslCertsList : GTLRSQLAdminQuery
  
  /** Cloud SQL instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_SslCertsListResponse.
   *
   *  Lists all of the current SSL certificates for the instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Cloud SQL instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_SslCertsList
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Lists all available machine types (tiers) for Cloud SQL, for example,
   *  db-custom-1-3840. For more information, see
   *  https://cloud.google.com/sql/pricing.
   *
   *  Method: sql.tiers.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_TiersList : GTLRSQLAdminQuery
  
  /** Project ID of the project for which to list tiers. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_TiersListResponse.
   *
   *  Lists all available machine types (tiers) for Cloud SQL, for example,
   *  db-custom-1-3840. For more information, see
   *  https://cloud.google.com/sql/pricing.
   *
   *  @param project Project ID of the project for which to list tiers.
   *
   *  @return GTLRSQLAdminQuery_TiersList
   */
  + (instancetype)queryWithProject:(NSString *)project;
  
  @end
  
  /**
   *  Deletes a user from a Cloud SQL instance.
   *
   *  Method: sql.users.delete
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_UsersDelete : GTLRSQLAdminQuery
  
  /** Host of the user in the instance. */
  @property(nonatomic, copy, nullable) NSString *host;
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Name of the user in the instance. */
  @property(nonatomic, copy, nullable) NSString *name;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Deletes a user from a Cloud SQL instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_UsersDelete
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Creates a new user in a Cloud SQL instance.
   *
   *  Method: sql.users.insert
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_UsersInsert : GTLRSQLAdminQuery
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Creates a new user in a Cloud SQL instance.
   *
   *  @param object The @c GTLRSQLAdmin_User to include in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_UsersInsert
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_User *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  /**
   *  Lists users in the specified Cloud SQL instance.
   *
   *  Method: sql.users.list
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_UsersList : GTLRSQLAdminQuery
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_UsersListResponse.
   *
   *  Lists users in the specified Cloud SQL instance.
   *
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_UsersList
   */
  + (instancetype)queryWithProject:(NSString *)project
                          instance:(NSString *)instance;
  
  @end
  
  /**
   *  Updates an existing user in a Cloud SQL instance.
   *
   *  Method: sql.users.update
   *
   *  Authorization scope(s):
   *    @c kGTLRAuthScopeSQLAdminCloudPlatform
   *    @c kGTLRAuthScopeSQLAdminSqlserviceAdmin
   */
  @interface GTLRSQLAdminQuery_UsersUpdate : GTLRSQLAdminQuery
  
  /** Optional. Host of the user in the instance. */
  @property(nonatomic, copy, nullable) NSString *host;
  
  /** Database instance ID. This does not include the project ID. */
  @property(nonatomic, copy, nullable) NSString *instance;
  
  /** Name of the user in the instance. */
  @property(nonatomic, copy, nullable) NSString *name;
  
  /** Project ID of the project that contains the instance. */
  @property(nonatomic, copy, nullable) NSString *project;
  
  /**
   *  Fetches a @c GTLRSQLAdmin_Operation.
   *
   *  Updates an existing user in a Cloud SQL instance.
   *
   *  @param object The @c GTLRSQLAdmin_User to include in the query.
   *  @param project Project ID of the project that contains the instance.
   *  @param instance Database instance ID. This does not include the project ID.
   *
   *  @return GTLRSQLAdminQuery_UsersUpdate
   */
  + (instancetype)queryWithObject:(GTLRSQLAdmin_User *)object
                          project:(NSString *)project
                         instance:(NSString *)instance;
  
  @end
  
  NS_ASSUME_NONNULL_END
  
  #pragma clang diagnostic pop
  