-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Cloud SQL Administration SDK.
--   
--   Creates and configures Cloud SQL instances, which provide
--   fully-managed MySQL databases.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1beta4</tt> of the API.
@package gogol-sqladmin
@version 0.3.0


module Network.Google.SQLAdmin.Types

-- | Default request referring to version <tt>v1beta4</tt> of the Cloud SQL
--   Administration API. This contains the host and root path used as a
--   starting point for constructing service requests.
sQLAdminService :: ServiceConfig

-- | Manage your Google SQL Service instances
sqlServiceAdminScope :: Proxy '["https://www.googleapis.com/auth/sqlservice.admin"]

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | SslCerts Resource
--   
--   <i>See:</i> <a>sslCert</a> smart constructor.
data SSLCert

-- | Creates a value of <a>SSLCert</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scCommonName</a></li>
--   <li><a>scKind</a></li>
--   <li><a>scCertSerialNumber</a></li>
--   <li><a>scSelfLink</a></li>
--   <li><a>scCert</a></li>
--   <li><a>scSha1Fingerprint</a></li>
--   <li><a>scExpirationTime</a></li>
--   <li><a>scCreateTime</a></li>
--   <li><a>scInstance</a></li>
--   </ul>
sslCert :: SSLCert

-- | User supplied name. Constrained to [a-zA-Z.-_ ]+.
scCommonName :: Lens' SSLCert (Maybe Text)

-- | This is always sql#sslCert.
scKind :: Lens' SSLCert Text

-- | Serial number, as extracted from the certificate.
scCertSerialNumber :: Lens' SSLCert (Maybe Text)

-- | The URI of this resource.
scSelfLink :: Lens' SSLCert (Maybe Text)

-- | PEM representation.
scCert :: Lens' SSLCert (Maybe Text)

-- | Sha1 Fingerprint.
scSha1Fingerprint :: Lens' SSLCert (Maybe Text)

-- | The time when the certificate expires in RFC 3339 format, for example
--   2012-11-15T16:19:00.094Z.
scExpirationTime :: Lens' SSLCert (Maybe UTCTime)

-- | The time when the certificate was created in RFC 3339 format, for
--   example 2012-11-15T16:19:00.094Z
scCreateTime :: Lens' SSLCert (Maybe UTCTime)

-- | Name of the database instance.
scInstance :: Lens' SSLCert (Maybe Text)

-- | Database list response.
--   
--   <i>See:</i> <a>databasesListResponse</a> smart constructor.
data DatabasesListResponse

-- | Creates a value of <a>DatabasesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlrKind</a></li>
--   <li><a>dlrItems</a></li>
--   </ul>
databasesListResponse :: DatabasesListResponse

-- | This is always sql#databasesList.
dlrKind :: Lens' DatabasesListResponse Text

-- | List of database resources in the instance.
dlrItems :: Lens' DatabasesListResponse [Database]

-- | Database instance export request.
--   
--   <i>See:</i> <a>instancesExportRequest</a> smart constructor.
data InstancesExportRequest

-- | Creates a value of <a>InstancesExportRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ierExportContext</a></li>
--   </ul>
instancesExportRequest :: InstancesExportRequest

-- | Contains details about the export operation.
ierExportContext :: Lens' InstancesExportRequest (Maybe ExportContext)

-- | On-premises instance configuration.
--   
--   <i>See:</i> <a>onPremisesConfiguration</a> smart constructor.
data OnPremisesConfiguration

-- | Creates a value of <a>OnPremisesConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>opcKind</a></li>
--   <li><a>opcHostPort</a></li>
--   </ul>
onPremisesConfiguration :: OnPremisesConfiguration

-- | This is always sql#onPremisesConfiguration.
opcKind :: Lens' OnPremisesConfiguration Text

-- | The host and port of the on-premises instance in host:port format
opcHostPort :: Lens' OnPremisesConfiguration (Maybe Text)

-- | Database instance list operations response.
--   
--   <i>See:</i> <a>operationsListResponse</a> smart constructor.
data OperationsListResponse

-- | Creates a value of <a>OperationsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>olrNextPageToken</a></li>
--   <li><a>olrKind</a></li>
--   <li><a>olrItems</a></li>
--   </ul>
operationsListResponse :: OperationsListResponse

-- | The continuation token, used to page through large result sets.
--   Provide this value in a subsequent request to return the next page of
--   results.
olrNextPageToken :: Lens' OperationsListResponse (Maybe Text)

-- | This is always sql#operationsList.
olrKind :: Lens' OperationsListResponse Text

-- | List of operation resources.
olrItems :: Lens' OperationsListResponse [Operation]

-- | Database instance import context.
--   
--   <i>See:</i> <a>importContext</a> smart constructor.
data ImportContext

-- | Creates a value of <a>ImportContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icDatabase</a></li>
--   <li><a>icKind</a></li>
--   <li><a>icCSVImportOptions</a></li>
--   <li><a>icURI</a></li>
--   <li><a>icFileType</a></li>
--   </ul>
importContext :: ImportContext

-- | The database (for example, guestbook) to which the import is made. If
--   fileType is SQL and no database is specified, it is assumed that the
--   database is specified in the file to be imported. If fileType is CSV,
--   it must be specified.
icDatabase :: Lens' ImportContext (Maybe Text)

-- | This is always sql#importContext.
icKind :: Lens' ImportContext Text

-- | Options for importing data as CSV.
icCSVImportOptions :: Lens' ImportContext (Maybe ImportContextCSVImportOptions)

-- | A path to the file in Google Cloud Storage from which the import is
--   made. The URI is in the form gs://bucketName/fileName. Compressed gzip
--   files (.gz) are supported when fileType is SQL.
icURI :: Lens' ImportContext (Maybe Text)

-- | The file type for the specified uri. SQL: The file contains SQL
--   statements. CSV: The file contains CSV data.
icFileType :: Lens' ImportContext (Maybe Text)

-- | An Operations resource contains information about database instance
--   operations such as create, delete, and restart. Operations resources
--   are created in response to operations that were initiated; you never
--   create them directly.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oTargetId</a></li>
--   <li><a>oTargetProject</a></li>
--   <li><a>oStatus</a></li>
--   <li><a>oInsertTime</a></li>
--   <li><a>oImportContext</a></li>
--   <li><a>oStartTime</a></li>
--   <li><a>oKind</a></li>
--   <li><a>oError</a></li>
--   <li><a>oExportContext</a></li>
--   <li><a>oUser</a></li>
--   <li><a>oSelfLink</a></li>
--   <li><a>oName</a></li>
--   <li><a>oEndTime</a></li>
--   <li><a>oOperationType</a></li>
--   <li><a>oTargetLink</a></li>
--   </ul>
operation :: Operation

-- | Name of the database instance related to this operation.
oTargetId :: Lens' Operation (Maybe Text)

-- | The project ID of the target instance related to this operation.
oTargetProject :: Lens' Operation (Maybe Text)

-- | The status of an operation. Valid values are PENDING, RUNNING, DONE,
--   UNKNOWN.
oStatus :: Lens' Operation (Maybe Text)

-- | The time this operation was enqueued in UTC timezone in RFC 3339
--   format, for example 2012-11-15T16:19:00.094Z.
oInsertTime :: Lens' Operation (Maybe UTCTime)

-- | The context for import operation, if applicable.
oImportContext :: Lens' Operation (Maybe ImportContext)

-- | The time this operation actually started in UTC timezone in RFC 3339
--   format, for example 2012-11-15T16:19:00.094Z.
oStartTime :: Lens' Operation (Maybe UTCTime)

-- | This is always sql#operation.
oKind :: Lens' Operation Text

-- | If errors occurred during processing of this operation, this field
--   will be populated.
oError :: Lens' Operation (Maybe OperationErrors)

-- | The context for export operation, if applicable.
oExportContext :: Lens' Operation (Maybe ExportContext)

-- | The email address of the user who initiated this operation.
oUser :: Lens' Operation (Maybe Text)

-- | The URI of this resource.
oSelfLink :: Lens' Operation (Maybe Text)

-- | An identifier that uniquely identifies the operation. You can use this
--   identifier to retrieve the Operations resource that has information
--   about the operation.
oName :: Lens' Operation (Maybe Text)

-- | The time this operation finished in UTC timezone in RFC 3339 format,
--   for example 2012-11-15T16:19:00.094Z.
oEndTime :: Lens' Operation (Maybe UTCTime)

-- | The type of the operation. Valid values are CREATE, DELETE, UPDATE,
--   RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER,
--   DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
oOperationType :: Lens' Operation (Maybe Text)

-- | The URI of the instance related to the operation.
oTargetLink :: Lens' Operation (Maybe Text)

-- | Database instance settings.
--   
--   <i>See:</i> <a>settings</a> smart constructor.
data Settings

-- | Creates a value of <a>Settings</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStorageAutoResize</a></li>
--   <li><a>sReplicationType</a></li>
--   <li><a>sActivationPolicy</a></li>
--   <li><a>sSettingsVersion</a></li>
--   <li><a>sDataDiskSizeGb</a></li>
--   <li><a>sAuthorizedGaeApplications</a></li>
--   <li><a>sKind</a></li>
--   <li><a>sPricingPlan</a></li>
--   <li><a>sIPConfiguration</a></li>
--   <li><a>sMaintenanceWindow</a></li>
--   <li><a>sDatabaseReplicationEnabled</a></li>
--   <li><a>sTier</a></li>
--   <li><a>sDatabaseFlags</a></li>
--   <li><a>sDataDiskType</a></li>
--   <li><a>sCrashSafeReplicationEnabled</a></li>
--   <li><a>sLocationPreference</a></li>
--   <li><a>sBackupConfiguration</a></li>
--   </ul>
settings :: Settings

-- | Configuration to increase storage size automatically. The default
--   value is false. Applies only to Second Generation instances.
sStorageAutoResize :: Lens' Settings (Maybe Bool)

-- | The type of replication this instance uses. This can be either
--   ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First
--   Generation instances.
sReplicationType :: Lens' Settings (Maybe Text)

-- | The activation policy specifies when the instance is activated; it is
--   applicable only when the instance state is RUNNABLE. The activation
--   policy cannot be updated together with other settings for Second
--   Generation instances. Valid values: ALWAYS: The instance is on; it is
--   not deactivated by inactivity. NEVER: The instance is off; it is not
--   activated, even if a connection request arrives. ON_DEMAND: The
--   instance responds to incoming requests, and turns itself off when not
--   in use. Instances with PER_USE pricing turn off after 15 minutes of
--   inactivity. Instances with PER_PACKAGE pricing turn off after 12 hours
--   of inactivity.
sActivationPolicy :: Lens' Settings (Maybe Text)

-- | The version of instance settings. This is a required field for update
--   method to make sure concurrent updates are handled properly. During
--   update, use the most recent settingsVersion value for this instance
--   and do not try to update this value.
sSettingsVersion :: Lens' Settings (Maybe Int64)

-- | The size of data disk, in GB. The data disk size minimum is 10GB.
--   Applies only to Second Generation instances.
sDataDiskSizeGb :: Lens' Settings (Maybe Int64)

-- | The App Engine app IDs that can access this instance. This property is
--   only applicable to First Generation instances.
sAuthorizedGaeApplications :: Lens' Settings [Text]

-- | This is always sql#settings.
sKind :: Lens' Settings Text

-- | The pricing plan for this instance. This can be either PER_USE or
--   PACKAGE. Only PER_USE is supported for Second Generation instances.
sPricingPlan :: Lens' Settings (Maybe Text)

-- | The settings for IP Management. This allows to enable or disable the
--   instance IP and manage which external networks can connect to the
--   instance. The IPv4 address cannot be disabled for Second Generation
--   instances.
sIPConfiguration :: Lens' Settings (Maybe IPConfiguration)

-- | The maintenance window for this instance. This specifies when the
--   instance may be restarted for maintenance purposes. Applies only to
--   Second Generation instances.
sMaintenanceWindow :: Lens' Settings (Maybe MaintenanceWindow)

-- | Configuration specific to read replica instances. Indicates whether
--   replication is enabled or not.
sDatabaseReplicationEnabled :: Lens' Settings (Maybe Bool)

-- | The tier of service for this instance, for example D1, D2. For more
--   information, see pricing.
sTier :: Lens' Settings (Maybe Text)

-- | The database flags passed to the instance at startup.
sDatabaseFlags :: Lens' Settings [DatabaseFlags]

-- | The type of data disk. Only supported for Second Generation instances.
--   The default type is PD_SSD. Applies only to Second Generation
--   instances.
sDataDiskType :: Lens' Settings (Maybe Text)

-- | Configuration specific to read replica instances. Indicates whether
--   database flags for crash-safe replication are enabled. This property
--   is only applicable to First Generation instances.
sCrashSafeReplicationEnabled :: Lens' Settings (Maybe Bool)

-- | The location preference settings. This allows the instance to be
--   located as near as possible to either an App Engine app or GCE zone
--   for better performance. App Engine co-location is only applicable to
--   First Generation instances.
sLocationPreference :: Lens' Settings (Maybe LocationPreference)

-- | The daily backup configuration for the instance.
sBackupConfiguration :: Lens' Settings (Maybe BackupConfiguration)

-- | Database instance IP Mapping.
--   
--   <i>See:</i> <a>ipMApping</a> smart constructor.
data IPMApping

-- | Creates a value of <a>IPMApping</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>imaIPAddress</a></li>
--   <li><a>imaTimeToRetire</a></li>
--   <li><a>imaType</a></li>
--   </ul>
ipMApping :: IPMApping

-- | The IP address assigned.
imaIPAddress :: Lens' IPMApping (Maybe Text)

-- | The due time for this IP to be retired in RFC 3339 format, for example
--   2012-11-15T16:19:00.094Z. This field is only available when the IP is
--   scheduled to be retired.
imaTimeToRetire :: Lens' IPMApping (Maybe UTCTime)

-- | The type of this IP address. A PRIMARY address is an address that can
--   accept incoming connections. An OUTGOING address is the source address
--   of connections originating from the instance, if supported.
imaType :: Lens' IPMApping (Maybe Text)

-- | A database resource inside a Cloud SQL instance.
--   
--   <i>See:</i> <a>database</a> smart constructor.
data Database

-- | Creates a value of <a>Database</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dEtag</a></li>
--   <li><a>dProject</a></li>
--   <li><a>dKind</a></li>
--   <li><a>dCollation</a></li>
--   <li><a>dSelfLink</a></li>
--   <li><a>dName</a></li>
--   <li><a>dCharSet</a></li>
--   <li><a>dInstance</a></li>
--   </ul>
database :: Database

-- | HTTP 1.1 Entity tag for the resource.
dEtag :: Lens' Database (Maybe Text)

-- | The project ID of the project containing the Cloud SQL database. The
--   Google apps domain is prefixed if applicable.
dProject :: Lens' Database (Maybe Text)

-- | This is always sql#database.
dKind :: Lens' Database Text

-- | The MySQL collation value.
dCollation :: Lens' Database (Maybe Text)

-- | The URI of this resource.
dSelfLink :: Lens' Database (Maybe Text)

-- | The name of the database in the Cloud SQL instance. This does not
--   include the project ID or instance name.
dName :: Lens' Database (Maybe Text)

-- | The MySQL charset value.
dCharSet :: Lens' Database (Maybe Text)

-- | The name of the Cloud SQL instance. This does not include the project
--   ID.
dInstance :: Lens' Database (Maybe Text)

-- | SslCerts create ephemeral certificate request.
--   
--   <i>See:</i> <a>sslCertsCreateEphemeralRequest</a> smart constructor.
data SSLCertsCreateEphemeralRequest

-- | Creates a value of <a>SSLCertsCreateEphemeralRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sccerPublicKey</a></li>
--   </ul>
sslCertsCreateEphemeralRequest :: SSLCertsCreateEphemeralRequest

-- | PEM encoded public key to include in the signed certificate.
sccerPublicKey :: Lens' SSLCertsCreateEphemeralRequest (Maybe Text)

-- | Binary log coordinates.
--   
--   <i>See:</i> <a>binLogCoordinates</a> smart constructor.
data BinLogCoordinates

-- | Creates a value of <a>BinLogCoordinates</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>blcBinLogPosition</a></li>
--   <li><a>blcKind</a></li>
--   <li><a>blcBinLogFileName</a></li>
--   </ul>
binLogCoordinates :: BinLogCoordinates

-- | Position (offset) within the binary log file.
blcBinLogPosition :: Lens' BinLogCoordinates (Maybe Int64)

-- | This is always sql#binLogCoordinates.
blcKind :: Lens' BinLogCoordinates Text

-- | Name of the binary log file for a Cloud SQL instance.
blcBinLogFileName :: Lens' BinLogCoordinates (Maybe Text)

-- | The name and status of the failover replica. This property is
--   applicable only to Second Generation instances.
--   
--   <i>See:</i> <a>databaseInstanceFailoverReplica</a> smart constructor.
data DatabaseInstanceFailoverReplica

-- | Creates a value of <a>DatabaseInstanceFailoverReplica</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>difrName</a></li>
--   <li><a>difrAvailable</a></li>
--   </ul>
databaseInstanceFailoverReplica :: DatabaseInstanceFailoverReplica

-- | The name of the failover replica. If specified at instance creation, a
--   failover replica is created for the instance. The name doesn't include
--   the project ID. This property is applicable only to Second Generation
--   instances.
difrName :: Lens' DatabaseInstanceFailoverReplica (Maybe Text)

-- | The availability status of the failover replica. A false status
--   indicates that the failover replica is out of sync. The master can
--   only failover to the falover replica when the status is true.
difrAvailable :: Lens' DatabaseInstanceFailoverReplica (Maybe Bool)

-- | Tiers list response.
--   
--   <i>See:</i> <a>tiersListResponse</a> smart constructor.
data TiersListResponse

-- | Creates a value of <a>TiersListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlrKind</a></li>
--   <li><a>tlrItems</a></li>
--   </ul>
tiersListResponse :: TiersListResponse

-- | This is always sql#tiersList.
tlrKind :: Lens' TiersListResponse Text

-- | List of tiers.
tlrItems :: Lens' TiersListResponse [Tier]

-- | User list response.
--   
--   <i>See:</i> <a>usersListResponse</a> smart constructor.
data UsersListResponse

-- | Creates a value of <a>UsersListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulrNextPageToken</a></li>
--   <li><a>ulrKind</a></li>
--   <li><a>ulrItems</a></li>
--   </ul>
usersListResponse :: UsersListResponse

-- | An identifier that uniquely identifies the operation. You can use this
--   identifier to retrieve the Operations resource that has information
--   about the operation.
ulrNextPageToken :: Lens' UsersListResponse (Maybe Text)

-- | This is always sql#usersList.
ulrKind :: Lens' UsersListResponse Text

-- | List of user resources in the instance.
ulrItems :: Lens' UsersListResponse [User]

-- | Database instance export context.
--   
--   <i>See:</i> <a>exportContext</a> smart constructor.
data ExportContext

-- | Creates a value of <a>ExportContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecCSVExportOptions</a></li>
--   <li><a>ecKind</a></li>
--   <li><a>ecURI</a></li>
--   <li><a>ecFileType</a></li>
--   <li><a>ecSQLExportOptions</a></li>
--   <li><a>ecDatabases</a></li>
--   </ul>
exportContext :: ExportContext

-- | Options for exporting data as CSV.
ecCSVExportOptions :: Lens' ExportContext (Maybe ExportContextCSVExportOptions)

-- | This is always sql#exportContext.
ecKind :: Lens' ExportContext Text

-- | The path to the file in Google Cloud Storage where the export will be
--   stored. The URI is in the form gs://bucketName/fileName. If the file
--   already exists, the operation fails. If fileType is SQL and the
--   filename ends with .gz, the contents are compressed.
ecURI :: Lens' ExportContext (Maybe Text)

-- | The file type for the specified uri. SQL: The file contains SQL
--   statements. CSV: The file contains CSV data.
ecFileType :: Lens' ExportContext (Maybe Text)

-- | Options for exporting data as SQL statements.
ecSQLExportOptions :: Lens' ExportContext (Maybe ExportContextSQLExportOptions)

-- | Databases (for example, guestbook) from which the export is made. If
--   fileType is SQL and no database is specified, all databases are
--   exported. If fileType is CSV, you can optionally specify at most one
--   database to export. If csvExportOptions.selectQuery also specifies the
--   database, this field will be ignored.
ecDatabases :: Lens' ExportContext [Text]

-- | Database instance operation errors list wrapper.
--   
--   <i>See:</i> <a>operationErrors</a> smart constructor.
data OperationErrors

-- | Creates a value of <a>OperationErrors</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oeKind</a></li>
--   <li><a>oeErrors</a></li>
--   </ul>
operationErrors :: OperationErrors

-- | This is always sql#operationErrors.
oeKind :: Lens' OperationErrors Text

-- | The list of errors encountered while processing this operation.
oeErrors :: Lens' OperationErrors [OperationError]

-- | SslCerts list response.
--   
--   <i>See:</i> <a>sslCertsListResponse</a> smart constructor.
data SSLCertsListResponse

-- | Creates a value of <a>SSLCertsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sclrKind</a></li>
--   <li><a>sclrItems</a></li>
--   </ul>
sslCertsListResponse :: SSLCertsListResponse

-- | This is always sql#sslCertsList.
sclrKind :: Lens' SSLCertsListResponse Text

-- | List of client certificates for the instance.
sclrItems :: Lens' SSLCertsListResponse [SSLCert]

-- | SslCerts insert request.
--   
--   <i>See:</i> <a>sslCertsInsertRequest</a> smart constructor.
data SSLCertsInsertRequest

-- | Creates a value of <a>SSLCertsInsertRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scirCommonName</a></li>
--   </ul>
sslCertsInsertRequest :: SSLCertsInsertRequest

-- | User supplied name. Must be a distinct name from the other
--   certificates for this instance. New certificates will not be usable
--   until the instance is restarted.
scirCommonName :: Lens' SSLCertsInsertRequest (Maybe Text)

-- | IP Management configuration.
--   
--   <i>See:</i> <a>ipConfiguration</a> smart constructor.
data IPConfiguration

-- | Creates a value of <a>IPConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icAuthorizedNetworks</a></li>
--   <li><a>icRequireSSL</a></li>
--   <li><a>icIPv4Enabled</a></li>
--   </ul>
ipConfiguration :: IPConfiguration

-- | The list of external networks that are allowed to connect to the
--   instance using the IP. In CIDR notation, also known as 'slash'
--   notation (e.g. 192.168.100.0/24).
icAuthorizedNetworks :: Lens' IPConfiguration [ACLEntry]

-- | Whether the mysqld should default to 'REQUIRE X509' for users
--   connecting over IP.
icRequireSSL :: Lens' IPConfiguration (Maybe Bool)

-- | Whether the instance should be assigned an IP address or not.
icIPv4Enabled :: Lens' IPConfiguration (Maybe Bool)

-- | Maintenance window. This specifies when a v2 Cloud SQL instance should
--   preferably be restarted for system maintenance puruposes.
--   
--   <i>See:</i> <a>maintenanceWindow</a> smart constructor.
data MaintenanceWindow

-- | Creates a value of <a>MaintenanceWindow</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mwKind</a></li>
--   <li><a>mwDay</a></li>
--   <li><a>mwHour</a></li>
--   <li><a>mwUpdateTrack</a></li>
--   </ul>
maintenanceWindow :: MaintenanceWindow

-- | This is always sql#maintenanceWindow.
mwKind :: Lens' MaintenanceWindow Text

-- | day of week (1-7), starting on Monday.
mwDay :: Lens' MaintenanceWindow (Maybe Int32)

-- | hour of day - 0 to 23.
mwHour :: Lens' MaintenanceWindow (Maybe Int32)
mwUpdateTrack :: Lens' MaintenanceWindow (Maybe Text)

-- | Options for importing data as CSV.
--   
--   <i>See:</i> <a>importContextCSVImportOptions</a> smart constructor.
data ImportContextCSVImportOptions

-- | Creates a value of <a>ImportContextCSVImportOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iccioColumns</a></li>
--   <li><a>iccioTable</a></li>
--   </ul>
importContextCSVImportOptions :: ImportContextCSVImportOptions

-- | The columns to which CSV data is imported. If not specified, all
--   columns of the database table are loaded with CSV data.
iccioColumns :: Lens' ImportContextCSVImportOptions [Text]

-- | The table to which CSV data is imported.
iccioTable :: Lens' ImportContextCSVImportOptions (Maybe Text)

-- | Options for exporting data as CSV.
--   
--   <i>See:</i> <a>exportContextCSVExportOptions</a> smart constructor.
data ExportContextCSVExportOptions

-- | Creates a value of <a>ExportContextCSVExportOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecceoSelectQuery</a></li>
--   </ul>
exportContextCSVExportOptions :: ExportContextCSVExportOptions

-- | The select query used to extract the data.
ecceoSelectQuery :: Lens' ExportContextCSVExportOptions (Maybe Text)

-- | A Cloud SQL user resource.
--   
--   <i>See:</i> <a>user</a> smart constructor.
data User

-- | Creates a value of <a>User</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uEtag</a></li>
--   <li><a>uProject</a></li>
--   <li><a>uKind</a></li>
--   <li><a>uName</a></li>
--   <li><a>uPassword</a></li>
--   <li><a>uHost</a></li>
--   <li><a>uInstance</a></li>
--   </ul>
user :: User

-- | HTTP 1.1 Entity tag for the resource.
uEtag :: Lens' User (Maybe Text)

-- | The project ID of the project containing the Cloud SQL database. The
--   Google apps domain is prefixed if applicable. Can be omitted for
--   update since it is already specified on the URL.
uProject :: Lens' User (Maybe Text)

-- | This is always sql#user.
uKind :: Lens' User Text

-- | The name of the user in the Cloud SQL instance. Can be omitted for
--   update since it is already specified on the URL.
uName :: Lens' User (Maybe Text)

-- | The password for the user.
uPassword :: Lens' User (Maybe Text)

-- | The host name from which the user can connect. For insert operations,
--   host defaults to an empty string. For update operations, host is
--   specified as part of the request URL. The host name cannot be updated
--   after insertion.
uHost :: Lens' User (Maybe Text)

-- | The name of the Cloud SQL instance. This does not include the project
--   ID. Can be omitted for update since it is already specified on the
--   URL.
uInstance :: Lens' User (Maybe Text)

-- | A Cloud SQL instance resource.
--   
--   <i>See:</i> <a>databaseInstance</a> smart constructor.
data DatabaseInstance

-- | Creates a value of <a>DatabaseInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>datBackendType</a></li>
--   <li><a>datMaxDiskSize</a></li>
--   <li><a>datOnPremisesConfiguration</a></li>
--   <li><a>datEtag</a></li>
--   <li><a>datState</a></li>
--   <li><a>datIPv6Address</a></li>
--   <li><a>datServerCaCert</a></li>
--   <li><a>datDatabaseVersion</a></li>
--   <li><a>datProject</a></li>
--   <li><a>datSettings</a></li>
--   <li><a>datKind</a></li>
--   <li><a>datConnectionName</a></li>
--   <li><a>datCurrentDiskSize</a></li>
--   <li><a>datInstanceType</a></li>
--   <li><a>datReplicaNames</a></li>
--   <li><a>datSelfLink</a></li>
--   <li><a>datFailoverReplica</a></li>
--   <li><a>datName</a></li>
--   <li><a>datMasterInstanceName</a></li>
--   <li><a>datReplicaConfiguration</a></li>
--   <li><a>datRegion</a></li>
--   <li><a>datServiceAccountEmailAddress</a></li>
--   <li><a>datIPAddresses</a></li>
--   <li><a>datSuspensionReason</a></li>
--   </ul>
databaseInstance :: DatabaseInstance

-- | FIRST_GEN: Basic Cloud SQL instance that runs in a Google-managed
--   container. SECOND_GEN: A newer Cloud SQL backend that runs in a
--   Compute Engine VM. EXTERNAL: A MySQL server that is not managed by
--   Google.
datBackendType :: Lens' DatabaseInstance (Maybe Text)

-- | The maximum disk size of the instance in bytes.
datMaxDiskSize :: Lens' DatabaseInstance (Maybe Int64)

-- | Configuration specific to on-premises instances.
datOnPremisesConfiguration :: Lens' DatabaseInstance (Maybe OnPremisesConfiguration)

-- | HTTP 1.1 Entity tag for the resource.
datEtag :: Lens' DatabaseInstance (Maybe Text)

-- | The current serving state of the Cloud SQL instance. This can be one
--   of the following. RUNNABLE: The instance is running, or is ready to
--   run when accessed. SUSPENDED: The instance is not available, for
--   example due to problems with billing. PENDING_CREATE: The instance is
--   being created. MAINTENANCE: The instance is down for maintenance.
--   FAILED: The instance creation failed. UNKNOWN_STATE: The state of the
--   instance is unknown.
datState :: Lens' DatabaseInstance (Maybe Text)

-- | The IPv6 address assigned to the instance. This property is applicable
--   only to First Generation instances.
datIPv6Address :: Lens' DatabaseInstance (Maybe Text)

-- | SSL configuration.
datServerCaCert :: Lens' DatabaseInstance (Maybe SSLCert)

-- | The database engine type and version. The databaseVersion can not be
--   changed after instance creation. Can be MYSQL_5_5, MYSQL_5_6 or
--   MYSQL_5_7. Defaults to MYSQL_5_6. MYSQL_5_7 is applicable only to
--   Second Generation instances.
datDatabaseVersion :: Lens' DatabaseInstance (Maybe Text)

-- | The project ID of the project containing the Cloud SQL instance. The
--   Google apps domain is prefixed if applicable.
datProject :: Lens' DatabaseInstance (Maybe Text)

-- | The user settings.
datSettings :: Lens' DatabaseInstance (Maybe Settings)

-- | This is always sql#instance.
datKind :: Lens' DatabaseInstance Text

-- | Connection name of the Cloud SQL instance used in connection strings.
datConnectionName :: Lens' DatabaseInstance (Maybe Text)

-- | The current disk usage of the instance in bytes. This property has
--   been deprecated. Users should use the
--   "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud
--   Monitoring API instead. Please see
--   https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ
--   for details.
datCurrentDiskSize :: Lens' DatabaseInstance (Maybe Int64)

-- | The instance type. This can be one of the following.
--   CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from
--   a master. ON_PREMISES_INSTANCE: An instance running on the customer's
--   premises. READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a
--   read-replica.
datInstanceType :: Lens' DatabaseInstance (Maybe Text)

-- | The replicas of the instance.
datReplicaNames :: Lens' DatabaseInstance [Text]

-- | The URI of this resource.
datSelfLink :: Lens' DatabaseInstance (Maybe Text)

-- | The name and status of the failover replica. This property is
--   applicable only to Second Generation instances.
datFailoverReplica :: Lens' DatabaseInstance (Maybe DatabaseInstanceFailoverReplica)

-- | Name of the Cloud SQL instance. This does not include the project ID.
datName :: Lens' DatabaseInstance (Maybe Text)

-- | The name of the instance which will act as master in the replication
--   setup.
datMasterInstanceName :: Lens' DatabaseInstance (Maybe Text)

-- | Configuration specific to read-replicas replicating from on-premises
--   masters.
datReplicaConfiguration :: Lens' DatabaseInstance (Maybe ReplicaConfiguration)

-- | The geographical region. Can be us-central (FIRST_GEN instances only),
--   us-central1 (SECOND_GEN instances only), asia-east1 or europe-west1.
--   Defaults to us-central or us-central1 depending on the instance type
--   (First Generation or Second Generation). The region can not be changed
--   after instance creation.
datRegion :: Lens' DatabaseInstance (Maybe Text)

-- | The service account email address assigned to the instance. This
--   property is applicable only to Second Generation instances.
datServiceAccountEmailAddress :: Lens' DatabaseInstance (Maybe Text)

-- | The assigned IP addresses for the instance.
datIPAddresses :: Lens' DatabaseInstance [IPMApping]

-- | If the instance state is SUSPENDED, the reason for the suspension.
datSuspensionReason :: Lens' DatabaseInstance [Text]

-- | Database instance clone context.
--   
--   <i>See:</i> <a>cloneContext</a> smart constructor.
data CloneContext

-- | Creates a value of <a>CloneContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccDestinationInstanceName</a></li>
--   <li><a>ccBinLogCoordinates</a></li>
--   <li><a>ccKind</a></li>
--   </ul>
cloneContext :: CloneContext

-- | Name of the Cloud SQL instance to be created as a clone.
ccDestinationInstanceName :: Lens' CloneContext (Maybe Text)

-- | Binary log coordinates, if specified, indentify the the position up to
--   which the source instance should be cloned. If not specified, the
--   source instance is cloned up to the most recent binary log coordintes.
ccBinLogCoordinates :: Lens' CloneContext (Maybe BinLogCoordinates)

-- | This is always sql#cloneContext.
ccKind :: Lens' CloneContext Text

-- | A Google Cloud SQL service flag resource.
--   
--   <i>See:</i> <a>flag</a> smart constructor.
data Flag

-- | Creates a value of <a>Flag</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fMaxValue</a></li>
--   <li><a>fKind</a></li>
--   <li><a>fAppliesTo</a></li>
--   <li><a>fName</a></li>
--   <li><a>fAllowedStringValues</a></li>
--   <li><a>fType</a></li>
--   <li><a>fMinValue</a></li>
--   <li><a>fRequiresRestart</a></li>
--   </ul>
flag :: Flag

-- | For INTEGER flags, the maximum allowed value.
fMaxValue :: Lens' Flag (Maybe Int64)

-- | This is always sql#flag.
fKind :: Lens' Flag Text

-- | The database version this flag applies to. Can be MYSQL_5_5,
--   MYSQL_5_6, or MYSQL_5_7. MYSQL_5_7 is applicable only to Second
--   Generation instances.
fAppliesTo :: Lens' Flag [Text]

-- | This is the name of the flag. Flag names always use underscores, not
--   hyphens, e.g. max_allowed_packet
fName :: Lens' Flag (Maybe Text)

-- | For STRING flags, a list of strings that the value can be set to.
fAllowedStringValues :: Lens' Flag [Text]

-- | The type of the flag. Flags are typed to being BOOLEAN, STRING,
--   INTEGER or NONE. NONE is used for flags which do not take a value,
--   such as skip_grant_tables.
fType :: Lens' Flag (Maybe Text)

-- | For INTEGER flags, the minimum allowed value.
fMinValue :: Lens' Flag (Maybe Int64)

-- | Indicates whether changing this flag will trigger a database restart.
--   Only applicable to Second Generation instances.
fRequiresRestart :: Lens' Flag (Maybe Bool)

-- | Instance failover request.
--   
--   <i>See:</i> <a>instancesFailoverRequest</a> smart constructor.
data InstancesFailoverRequest

-- | Creates a value of <a>InstancesFailoverRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifrFailoverContext</a></li>
--   </ul>
instancesFailoverRequest :: InstancesFailoverRequest

-- | Failover Context.
ifrFailoverContext :: Lens' InstancesFailoverRequest (Maybe FailoverContext)

-- | A database instance backup run resource.
--   
--   <i>See:</i> <a>backupRun</a> smart constructor.
data BackupRun

-- | Creates a value of <a>BackupRun</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brStatus</a></li>
--   <li><a>brStartTime</a></li>
--   <li><a>brKind</a></li>
--   <li><a>brError</a></li>
--   <li><a>brWindowStartTime</a></li>
--   <li><a>brSelfLink</a></li>
--   <li><a>brEndTime</a></li>
--   <li><a>brId</a></li>
--   <li><a>brType</a></li>
--   <li><a>brEnQueuedTime</a></li>
--   <li><a>brDescription</a></li>
--   <li><a>brInstance</a></li>
--   </ul>
backupRun :: BackupRun

-- | The status of this run.
brStatus :: Lens' BackupRun (Maybe Text)

-- | The time the backup operation actually started in UTC timezone in RFC
--   3339 format, for example 2012-11-15T16:19:00.094Z.
brStartTime :: Lens' BackupRun (Maybe UTCTime)

-- | This is always sql#backupRun.
brKind :: Lens' BackupRun Text

-- | Information about why the backup operation failed. This is only
--   present if the run has the FAILED status.
brError :: Lens' BackupRun (Maybe OperationError)

-- | The start time of the backup window during which this the backup was
--   attempted in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
brWindowStartTime :: Lens' BackupRun (Maybe UTCTime)

-- | The URI of this resource.
brSelfLink :: Lens' BackupRun (Maybe Text)

-- | The time the backup operation completed in UTC timezone in RFC 3339
--   format, for example 2012-11-15T16:19:00.094Z.
brEndTime :: Lens' BackupRun (Maybe UTCTime)

-- | A unique identifier for this backup run. Note that this is unique only
--   within the scope of a particular Cloud SQL instance.
brId :: Lens' BackupRun (Maybe Int64)

-- | The type of this run; can be either "AUTOMATED" or "ON_DEMAND".
brType :: Lens' BackupRun (Maybe Text)

-- | The time the run was enqueued in UTC timezone in RFC 3339 format, for
--   example 2012-11-15T16:19:00.094Z.
brEnQueuedTime :: Lens' BackupRun (Maybe UTCTime)

-- | The description of this run, only applicable to on-demand backups.
brDescription :: Lens' BackupRun (Maybe Text)

-- | Name of the database instance.
brInstance :: Lens' BackupRun (Maybe Text)

-- | An entry for an Access Control list.
--   
--   <i>See:</i> <a>aclEntry</a> smart constructor.
data ACLEntry

-- | Creates a value of <a>ACLEntry</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aeKind</a></li>
--   <li><a>aeValue</a></li>
--   <li><a>aeName</a></li>
--   <li><a>aeExpirationTime</a></li>
--   </ul>
aclEntry :: ACLEntry

-- | This is always sql#aclEntry.
aeKind :: Lens' ACLEntry Text

-- | The whitelisted value for the access control list.
aeValue :: Lens' ACLEntry (Maybe Text)

-- | An optional label to identify this entry.
aeName :: Lens' ACLEntry (Maybe Text)

-- | The time when this access control entry expires in RFC 3339 format,
--   for example 2012-11-15T16:19:00.094Z.
aeExpirationTime :: Lens' ACLEntry (Maybe UTCTime)

-- | MySQL flags for Cloud SQL instances.
--   
--   <i>See:</i> <a>databaseFlags</a> smart constructor.
data DatabaseFlags

-- | Creates a value of <a>DatabaseFlags</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfValue</a></li>
--   <li><a>dfName</a></li>
--   </ul>
databaseFlags :: DatabaseFlags

-- | The value of the flag. Booleans should be set to on for true and off
--   for false. This field must be omitted if the flag doesn't take a
--   value.
dfValue :: Lens' DatabaseFlags (Maybe Text)

-- | The name of the flag. These flags are passed at instance startup, so
--   include both MySQL server options and MySQL system variables. Flags
--   should be specified with underscores, not hyphens. For more
--   information, see Configuring MySQL Flags in the Google Cloud SQL
--   documentation, as well as the official MySQL documentation for server
--   options and system variables.
dfName :: Lens' DatabaseFlags (Maybe Text)

-- | A Google Cloud SQL service tier resource.
--   
--   <i>See:</i> <a>tier</a> smart constructor.
data Tier

-- | Creates a value of <a>Tier</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tKind</a></li>
--   <li><a>tTier</a></li>
--   <li><a>tRegion</a></li>
--   <li><a>tDiskQuota</a></li>
--   <li><a>tRAM</a></li>
--   </ul>
tier :: Tier

-- | This is always sql#tier.
tKind :: Lens' Tier Text

-- | An identifier for the service tier, for example D1, D2 etc. For
--   related information, see Pricing.
tTier :: Lens' Tier (Maybe Text)

-- | The applicable regions for this tier.
tRegion :: Lens' Tier [Text]

-- | The maximum disk size of this tier in bytes.
tDiskQuota :: Lens' Tier (Maybe Int64)

-- | The maximum RAM usage of this tier in bytes.
tRAM :: Lens' Tier (Maybe Int64)

-- | Read-replica configuration specific to MySQL databases.
--   
--   <i>See:</i> <a>mySQLReplicaConfiguration</a> smart constructor.
data MySQLReplicaConfiguration

-- | Creates a value of <a>MySQLReplicaConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msqlrcVerifyServerCertificate</a></li>
--   <li><a>msqlrcKind</a></li>
--   <li><a>msqlrcClientKey</a></li>
--   <li><a>msqlrcUsername</a></li>
--   <li><a>msqlrcSSLCipher</a></li>
--   <li><a>msqlrcMasterHeartbeatPeriod</a></li>
--   <li><a>msqlrcConnectRetryInterval</a></li>
--   <li><a>msqlrcClientCertificate</a></li>
--   <li><a>msqlrcCaCertificate</a></li>
--   <li><a>msqlrcDumpFilePath</a></li>
--   <li><a>msqlrcPassword</a></li>
--   </ul>
mySQLReplicaConfiguration :: MySQLReplicaConfiguration

-- | Whether or not to check the master's Common Name value in the
--   certificate that it sends during the SSL handshake.
msqlrcVerifyServerCertificate :: Lens' MySQLReplicaConfiguration (Maybe Bool)

-- | This is always sql#mysqlReplicaConfiguration.
msqlrcKind :: Lens' MySQLReplicaConfiguration Text

-- | PEM representation of the slave's private key. The corresponsing
--   public key is encoded in the client's certificate.
msqlrcClientKey :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | The username for the replication connection.
msqlrcUsername :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | A list of permissible ciphers to use for SSL encryption.
msqlrcSSLCipher :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | Interval in milliseconds between replication heartbeats.
msqlrcMasterHeartbeatPeriod :: Lens' MySQLReplicaConfiguration (Maybe Int64)

-- | Seconds to wait between connect retries. MySQL's default is 60
--   seconds.
msqlrcConnectRetryInterval :: Lens' MySQLReplicaConfiguration (Maybe Int32)

-- | PEM representation of the slave's x509 certificate.
msqlrcClientCertificate :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | PEM representation of the trusted CA's x509 certificate.
msqlrcCaCertificate :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | Path to a SQL dump file in Google Cloud Storage from which the slave
--   instance is to be created. The URI is in the form
--   gs://bucketName/fileName. Compressed gzip files (.gz) are also
--   supported. Dumps should have the binlog co-ordinates from which
--   replication should begin. This can be accomplished by setting
--   --master-data to 1 when using mysqldump.
msqlrcDumpFilePath :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | The password for the replication connection.
msqlrcPassword :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | SslCertDetail.
--   
--   <i>See:</i> <a>sslCertDetail</a> smart constructor.
data SSLCertDetail

-- | Creates a value of <a>SSLCertDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scdCertInfo</a></li>
--   <li><a>scdCertPrivateKey</a></li>
--   </ul>
sslCertDetail :: SSLCertDetail

-- | The public information about the cert.
scdCertInfo :: Lens' SSLCertDetail (Maybe SSLCert)

-- | The private key for the client cert, in pem format. Keep private in
--   order to protect your security.
scdCertPrivateKey :: Lens' SSLCertDetail (Maybe Text)

-- | Database instance restore backup request.
--   
--   <i>See:</i> <a>instancesRestoreBackupRequest</a> smart constructor.
data InstancesRestoreBackupRequest

-- | Creates a value of <a>InstancesRestoreBackupRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irbrRestoreBackupContext</a></li>
--   </ul>
instancesRestoreBackupRequest :: InstancesRestoreBackupRequest

-- | Parameters required to perform the restore backup operation.
irbrRestoreBackupContext :: Lens' InstancesRestoreBackupRequest (Maybe RestoreBackupContext)

-- | Backup run list results.
--   
--   <i>See:</i> <a>backupRunsListResponse</a> smart constructor.
data BackupRunsListResponse

-- | Creates a value of <a>BackupRunsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brlrNextPageToken</a></li>
--   <li><a>brlrKind</a></li>
--   <li><a>brlrItems</a></li>
--   </ul>
backupRunsListResponse :: BackupRunsListResponse

-- | The continuation token, used to page through large result sets.
--   Provide this value in a subsequent request to return the next page of
--   results.
brlrNextPageToken :: Lens' BackupRunsListResponse (Maybe Text)

-- | This is always sql#backupRunsList.
brlrKind :: Lens' BackupRunsListResponse Text

-- | A list of backup runs in reverse chronological order of the enqueued
--   time.
brlrItems :: Lens' BackupRunsListResponse [BackupRun]

-- | Database instance operation error.
--   
--   <i>See:</i> <a>operationError</a> smart constructor.
data OperationError

-- | Creates a value of <a>OperationError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>opeKind</a></li>
--   <li><a>opeCode</a></li>
--   <li><a>opeMessage</a></li>
--   </ul>
operationError :: OperationError

-- | This is always sql#operationError.
opeKind :: Lens' OperationError Text

-- | Identifies the specific error that occurred.
opeCode :: Lens' OperationError (Maybe Text)

-- | Additional information about the error encountered.
opeMessage :: Lens' OperationError (Maybe Text)

-- | Database Instance truncate log context.
--   
--   <i>See:</i> <a>truncateLogContext</a> smart constructor.
data TruncateLogContext

-- | Creates a value of <a>TruncateLogContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlcKind</a></li>
--   <li><a>tlcLogType</a></li>
--   </ul>
truncateLogContext :: TruncateLogContext

-- | This is always sql#truncateLogContext.
tlcKind :: Lens' TruncateLogContext Text

-- | The type of log to truncate. Valid values are MYSQL_GENERAL_TABLE and
--   MYSQL_SLOW_TABLE.
tlcLogType :: Lens' TruncateLogContext (Maybe Text)

-- | Database instance clone request.
--   
--   <i>See:</i> <a>instancesCloneRequest</a> smart constructor.
data InstancesCloneRequest

-- | Creates a value of <a>InstancesCloneRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icrCloneContext</a></li>
--   </ul>
instancesCloneRequest :: InstancesCloneRequest

-- | Contains details about the clone operation.
icrCloneContext :: Lens' InstancesCloneRequest (Maybe CloneContext)

-- | Read-replica configuration for connecting to the master.
--   
--   <i>See:</i> <a>replicaConfiguration</a> smart constructor.
data ReplicaConfiguration

-- | Creates a value of <a>ReplicaConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcFailoverTarget</a></li>
--   <li><a>rcKind</a></li>
--   <li><a>rcMysqlReplicaConfiguration</a></li>
--   </ul>
replicaConfiguration :: ReplicaConfiguration

-- | Specifies if the replica is the failover target. If the field is set
--   to true the replica will be designated as a failover replica. In case
--   the master instance fails, the replica instance will be promoted as
--   the new master instance. Only one replica can be specified as failover
--   target, and the replica has to be in different zone with the master
--   instance.
rcFailoverTarget :: Lens' ReplicaConfiguration (Maybe Bool)

-- | This is always sql#replicaConfiguration.
rcKind :: Lens' ReplicaConfiguration Text

-- | MySQL specific configuration when replicating from a MySQL on-premises
--   master. Replication configuration information such as the username,
--   password, certificates, and keys are not stored in the instance
--   metadata. The configuration information is used only to set up the
--   replication connection and is stored by MySQL in a file named
--   master.info in the data directory.
rcMysqlReplicaConfiguration :: Lens' ReplicaConfiguration (Maybe MySQLReplicaConfiguration)

-- | Database instance failover context.
--   
--   <i>See:</i> <a>failoverContext</a> smart constructor.
data FailoverContext

-- | Creates a value of <a>FailoverContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fcSettingsVersion</a></li>
--   <li><a>fcKind</a></li>
--   </ul>
failoverContext :: FailoverContext

-- | The current settings version of this instance. Request will be
--   rejected if this version doesn't match the current settings version.
fcSettingsVersion :: Lens' FailoverContext (Maybe Int64)

-- | This is always sql#failoverContext.
fcKind :: Lens' FailoverContext Text

-- | SslCert insert response.
--   
--   <i>See:</i> <a>sslCertsInsertResponse</a> smart constructor.
data SSLCertsInsertResponse

-- | Creates a value of <a>SSLCertsInsertResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scirServerCaCert</a></li>
--   <li><a>scirOperation</a></li>
--   <li><a>scirKind</a></li>
--   <li><a>scirClientCert</a></li>
--   </ul>
sslCertsInsertResponse :: SSLCertsInsertResponse

-- | The server Certificate Authority's certificate. If this is missing you
--   can force a new one to be generated by calling resetSslConfig method
--   on instances resource.
scirServerCaCert :: Lens' SSLCertsInsertResponse (Maybe SSLCert)

-- | The operation to track the ssl certs insert request.
scirOperation :: Lens' SSLCertsInsertResponse (Maybe Operation)

-- | This is always sql#sslCertsInsert.
scirKind :: Lens' SSLCertsInsertResponse Text

-- | The new client certificate and private key. The new certificate will
--   not work until the instance is restarted for First Generation
--   instances.
scirClientCert :: Lens' SSLCertsInsertResponse (Maybe SSLCertDetail)

-- | Database instances list response.
--   
--   <i>See:</i> <a>instancesListResponse</a> smart constructor.
data InstancesListResponse

-- | Creates a value of <a>InstancesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilrNextPageToken</a></li>
--   <li><a>ilrKind</a></li>
--   <li><a>ilrItems</a></li>
--   </ul>
instancesListResponse :: InstancesListResponse

-- | The continuation token, used to page through large result sets.
--   Provide this value in a subsequent request to return the next page of
--   results.
ilrNextPageToken :: Lens' InstancesListResponse (Maybe Text)

-- | This is always sql#instancesList.
ilrKind :: Lens' InstancesListResponse Text

-- | List of database instance resources.
ilrItems :: Lens' InstancesListResponse [DatabaseInstance]

-- | Database instance backup configuration.
--   
--   <i>See:</i> <a>backupConfiguration</a> smart constructor.
data BackupConfiguration

-- | Creates a value of <a>BackupConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bcEnabled</a></li>
--   <li><a>bcStartTime</a></li>
--   <li><a>bcKind</a></li>
--   <li><a>bcBinaryLogEnabled</a></li>
--   </ul>
backupConfiguration :: BackupConfiguration

-- | Whether this configuration is enabled.
bcEnabled :: Lens' BackupConfiguration (Maybe Bool)

-- | Start time for the daily backup configuration in UTC timezone in the
--   24 hour format - HH:MM.
bcStartTime :: Lens' BackupConfiguration (Maybe Text)

-- | This is always sql#backupConfiguration.
bcKind :: Lens' BackupConfiguration Text

-- | Whether binary log is enabled. If backup configuration is disabled,
--   binary log must be disabled as well.
bcBinaryLogEnabled :: Lens' BackupConfiguration (Maybe Bool)

-- | Database instance import request.
--   
--   <i>See:</i> <a>instancesImportRequest</a> smart constructor.
data InstancesImportRequest

-- | Creates a value of <a>InstancesImportRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iirImportContext</a></li>
--   </ul>
instancesImportRequest :: InstancesImportRequest

-- | Contains details about the import operation.
iirImportContext :: Lens' InstancesImportRequest (Maybe ImportContext)

-- | Preferred location. This specifies where a Cloud SQL instance should
--   preferably be located, either in a specific Compute Engine zone, or
--   co-located with an App Engine application. Note that if the preferred
--   location is not available, the instance will be located as close as
--   possible within the region. Only one location may be specified.
--   
--   <i>See:</i> <a>locationPreference</a> smart constructor.
data LocationPreference

-- | Creates a value of <a>LocationPreference</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpKind</a></li>
--   <li><a>lpFollowGaeApplication</a></li>
--   <li><a>lpZone</a></li>
--   </ul>
locationPreference :: LocationPreference

-- | This is always sql#locationPreference.
lpKind :: Lens' LocationPreference Text

-- | The AppEngine application to follow, it must be in the same region as
--   the Cloud SQL instance.
lpFollowGaeApplication :: Lens' LocationPreference (Maybe Text)

-- | The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b,
--   etc.).
lpZone :: Lens' LocationPreference (Maybe Text)

-- | Flags list response.
--   
--   <i>See:</i> <a>flagsListResponse</a> smart constructor.
data FlagsListResponse

-- | Creates a value of <a>FlagsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>flrKind</a></li>
--   <li><a>flrItems</a></li>
--   </ul>
flagsListResponse :: FlagsListResponse

-- | This is always sql#flagsList.
flrKind :: Lens' FlagsListResponse Text

-- | List of flags.
flrItems :: Lens' FlagsListResponse [Flag]

-- | Instance truncate log request.
--   
--   <i>See:</i> <a>instancesTruncateLogRequest</a> smart constructor.
data InstancesTruncateLogRequest

-- | Creates a value of <a>InstancesTruncateLogRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>itlrTruncateLogContext</a></li>
--   </ul>
instancesTruncateLogRequest :: InstancesTruncateLogRequest

-- | Contains details about the truncate log operation.
itlrTruncateLogContext :: Lens' InstancesTruncateLogRequest (Maybe TruncateLogContext)

-- | Options for exporting data as SQL statements.
--   
--   <i>See:</i> <a>exportContextSQLExportOptions</a> smart constructor.
data ExportContextSQLExportOptions

-- | Creates a value of <a>ExportContextSQLExportOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecsqleoSchemaOnly</a></li>
--   <li><a>ecsqleoTables</a></li>
--   </ul>
exportContextSQLExportOptions :: ExportContextSQLExportOptions

-- | Export only schemas.
ecsqleoSchemaOnly :: Lens' ExportContextSQLExportOptions (Maybe Bool)

-- | Tables to export, or that were exported, from the specified database.
--   If you specify tables, specify one and only one database.
ecsqleoTables :: Lens' ExportContextSQLExportOptions [Text]

-- | Database instance restore from backup context.
--   
--   <i>See:</i> <a>restoreBackupContext</a> smart constructor.
data RestoreBackupContext

-- | Creates a value of <a>RestoreBackupContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rbcInstanceId</a></li>
--   <li><a>rbcBackupRunId</a></li>
--   <li><a>rbcKind</a></li>
--   </ul>
restoreBackupContext :: RestoreBackupContext

-- | The ID of the instance that the backup was taken from.
rbcInstanceId :: Lens' RestoreBackupContext (Maybe Text)

-- | The ID of the backup run to restore from.
rbcBackupRunId :: Lens' RestoreBackupContext (Maybe Int64)

-- | This is always sql#restoreBackupContext.
rbcKind :: Lens' RestoreBackupContext Text


-- | Updates an existing user in a Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.users.update</tt>.
module Network.Google.Resource.SQL.Users.Update

-- | A resource alias for <tt>sql.users.update</tt> method which the
--   <a>UsersUpdate</a> request conforms to.
type UsersUpdateResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("users" :> (QueryParam "host" Text :> (QueryParam "name" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Put '[JSON] Operation))))))))))

-- | Creates a value of <a>UsersUpdate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uuProject</a></li>
--   <li><a>uuPayload</a></li>
--   <li><a>uuName</a></li>
--   <li><a>uuHost</a></li>
--   <li><a>uuInstance</a></li>
--   </ul>
usersUpdate :: Text -> User -> Text -> Text -> Text -> UsersUpdate

-- | Updates an existing user in a Cloud SQL instance.
--   
--   <i>See:</i> <a>usersUpdate</a> smart constructor.
data UsersUpdate

-- | Project ID of the project that contains the instance.
uuProject :: Lens' UsersUpdate Text

-- | Multipart request metadata.
uuPayload :: Lens' UsersUpdate User

-- | Name of the user in the instance.
uuName :: Lens' UsersUpdate Text

-- | Host of the user in the instance.
uuHost :: Lens' UsersUpdate Text

-- | Database instance ID. This does not include the project ID.
uuInstance :: Lens' UsersUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Users.Update.UsersUpdate
instance Data.Data.Data Network.Google.Resource.SQL.Users.Update.UsersUpdate
instance GHC.Show.Show Network.Google.Resource.SQL.Users.Update.UsersUpdate
instance GHC.Classes.Eq Network.Google.Resource.SQL.Users.Update.UsersUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Users.Update.UsersUpdate


-- | Lists users in the specified Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.users.list</tt>.
module Network.Google.Resource.SQL.Users.List

-- | A resource alias for <tt>sql.users.list</tt> method which the
--   <a>UsersList</a> request conforms to.
type UsersListResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("users" :> (QueryParam "alt" AltJSON :> Get '[JSON] UsersListResponse)))))))

-- | Creates a value of <a>UsersList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulProject</a></li>
--   <li><a>ulInstance</a></li>
--   </ul>
usersList :: Text -> Text -> UsersList

-- | Lists users in the specified Cloud SQL instance.
--   
--   <i>See:</i> <a>usersList</a> smart constructor.
data UsersList

-- | Project ID of the project that contains the instance.
ulProject :: Lens' UsersList Text

-- | Database instance ID. This does not include the project ID.
ulInstance :: Lens' UsersList Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Users.List.UsersList
instance Data.Data.Data Network.Google.Resource.SQL.Users.List.UsersList
instance GHC.Show.Show Network.Google.Resource.SQL.Users.List.UsersList
instance GHC.Classes.Eq Network.Google.Resource.SQL.Users.List.UsersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Users.List.UsersList


-- | Creates a new user in a Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.users.insert</tt>.
module Network.Google.Resource.SQL.Users.Insert

-- | A resource alias for <tt>sql.users.insert</tt> method which the
--   <a>UsersInsert</a> request conforms to.
type UsersInsertResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("users" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>UsersInsert</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiProject</a></li>
--   <li><a>uiPayload</a></li>
--   <li><a>uiInstance</a></li>
--   </ul>
usersInsert :: Text -> User -> Text -> UsersInsert

-- | Creates a new user in a Cloud SQL instance.
--   
--   <i>See:</i> <a>usersInsert</a> smart constructor.
data UsersInsert

-- | Project ID of the project that contains the instance.
uiProject :: Lens' UsersInsert Text

-- | Multipart request metadata.
uiPayload :: Lens' UsersInsert User

-- | Database instance ID. This does not include the project ID.
uiInstance :: Lens' UsersInsert Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Users.Insert.UsersInsert
instance Data.Data.Data Network.Google.Resource.SQL.Users.Insert.UsersInsert
instance GHC.Show.Show Network.Google.Resource.SQL.Users.Insert.UsersInsert
instance GHC.Classes.Eq Network.Google.Resource.SQL.Users.Insert.UsersInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Users.Insert.UsersInsert


-- | Deletes a user from a Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.users.delete</tt>.
module Network.Google.Resource.SQL.Users.Delete

-- | A resource alias for <tt>sql.users.delete</tt> method which the
--   <a>UsersDelete</a> request conforms to.
type UsersDeleteResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("users" :> (QueryParam "host" Text :> (QueryParam "name" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation)))))))))

-- | Creates a value of <a>UsersDelete</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udProject</a></li>
--   <li><a>udName</a></li>
--   <li><a>udHost</a></li>
--   <li><a>udInstance</a></li>
--   </ul>
usersDelete :: Text -> Text -> Text -> Text -> UsersDelete

-- | Deletes a user from a Cloud SQL instance.
--   
--   <i>See:</i> <a>usersDelete</a> smart constructor.
data UsersDelete

-- | Project ID of the project that contains the instance.
udProject :: Lens' UsersDelete Text

-- | Name of the user in the instance.
udName :: Lens' UsersDelete Text

-- | Host of the user in the instance.
udHost :: Lens' UsersDelete Text

-- | Database instance ID. This does not include the project ID.
udInstance :: Lens' UsersDelete Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Users.Delete.UsersDelete
instance Data.Data.Data Network.Google.Resource.SQL.Users.Delete.UsersDelete
instance GHC.Show.Show Network.Google.Resource.SQL.Users.Delete.UsersDelete
instance GHC.Classes.Eq Network.Google.Resource.SQL.Users.Delete.UsersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Users.Delete.UsersDelete


-- | Lists all available service tiers for Google Cloud SQL, for example
--   D1, D2. For related information, see Pricing.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.tiers.list</tt>.
module Network.Google.Resource.SQL.Tiers.List

-- | A resource alias for <tt>sql.tiers.list</tt> method which the
--   <a>TiersList</a> request conforms to.
type TiersListResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("tiers" :> (QueryParam "alt" AltJSON :> Get '[JSON] TiersListResponse)))))

-- | Creates a value of <a>TiersList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlProject</a></li>
--   </ul>
tiersList :: Text -> TiersList

-- | Lists all available service tiers for Google Cloud SQL, for example
--   D1, D2. For related information, see Pricing.
--   
--   <i>See:</i> <a>tiersList</a> smart constructor.
data TiersList

-- | Project ID of the project for which to list tiers.
tlProject :: Lens' TiersList Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Tiers.List.TiersList
instance Data.Data.Data Network.Google.Resource.SQL.Tiers.List.TiersList
instance GHC.Show.Show Network.Google.Resource.SQL.Tiers.List.TiersList
instance GHC.Classes.Eq Network.Google.Resource.SQL.Tiers.List.TiersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Tiers.List.TiersList


-- | Lists all of the current SSL certificates for the instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.sslCerts.list</tt>.
module Network.Google.Resource.SQL.SSLCerts.List

-- | A resource alias for <tt>sql.sslCerts.list</tt> method which the
--   <a>SSLCertsList</a> request conforms to.
type SSLCertsListResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("sslCerts" :> (QueryParam "alt" AltJSON :> Get '[JSON] SSLCertsListResponse)))))))

-- | Creates a value of <a>SSLCertsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sclProject</a></li>
--   <li><a>sclInstance</a></li>
--   </ul>
sslCertsList :: Text -> Text -> SSLCertsList

-- | Lists all of the current SSL certificates for the instance.
--   
--   <i>See:</i> <a>sslCertsList</a> smart constructor.
data SSLCertsList

-- | Project ID of the project for which to list Cloud SQL instances.
sclProject :: Lens' SSLCertsList Text

-- | Cloud SQL instance ID. This does not include the project ID.
sclInstance :: Lens' SSLCertsList Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.SSLCerts.List.SSLCertsList
instance Data.Data.Data Network.Google.Resource.SQL.SSLCerts.List.SSLCertsList
instance GHC.Show.Show Network.Google.Resource.SQL.SSLCerts.List.SSLCertsList
instance GHC.Classes.Eq Network.Google.Resource.SQL.SSLCerts.List.SSLCertsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.SSLCerts.List.SSLCertsList


-- | 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.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.sslCerts.insert</tt>.
module Network.Google.Resource.SQL.SSLCerts.Insert

-- | A resource alias for <tt>sql.sslCerts.insert</tt> method which the
--   <a>SSLCertsInsert</a> request conforms to.
type SSLCertsInsertResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("sslCerts" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] SSLCertsInsertRequest :> Post '[JSON] SSLCertsInsertResponse))))))))

-- | Creates a value of <a>SSLCertsInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sciProject</a></li>
--   <li><a>sciPayload</a></li>
--   <li><a>sciInstance</a></li>
--   </ul>
sslCertsInsert :: Text -> SSLCertsInsertRequest -> Text -> SSLCertsInsert

-- | 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.
--   
--   <i>See:</i> <a>sslCertsInsert</a> smart constructor.
data SSLCertsInsert

-- | Project ID of the project to which the newly created Cloud SQL
--   instances should belong.
sciProject :: Lens' SSLCertsInsert Text

-- | Multipart request metadata.
sciPayload :: Lens' SSLCertsInsert SSLCertsInsertRequest

-- | Cloud SQL instance ID. This does not include the project ID.
sciInstance :: Lens' SSLCertsInsert Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.SSLCerts.Insert.SSLCertsInsert
instance Data.Data.Data Network.Google.Resource.SQL.SSLCerts.Insert.SSLCertsInsert
instance GHC.Show.Show Network.Google.Resource.SQL.SSLCerts.Insert.SSLCertsInsert
instance GHC.Classes.Eq Network.Google.Resource.SQL.SSLCerts.Insert.SSLCertsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.SSLCerts.Insert.SSLCertsInsert


-- | 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.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.sslCerts.get</tt>.
module Network.Google.Resource.SQL.SSLCerts.Get

-- | A resource alias for <tt>sql.sslCerts.get</tt> method which the
--   <a>SSLCertsGet</a> request conforms to.
type SSLCertsGetResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("sslCerts" :> (Capture "sha1Fingerprint" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] SSLCert))))))))

-- | Creates a value of <a>SSLCertsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scgProject</a></li>
--   <li><a>scgSha1Fingerprint</a></li>
--   <li><a>scgInstance</a></li>
--   </ul>
sslCertsGet :: Text -> Text -> Text -> SSLCertsGet

-- | 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.
--   
--   <i>See:</i> <a>sslCertsGet</a> smart constructor.
data SSLCertsGet

-- | Project ID of the project that contains the instance.
scgProject :: Lens' SSLCertsGet Text

-- | Sha1 FingerPrint.
scgSha1Fingerprint :: Lens' SSLCertsGet Text

-- | Cloud SQL instance ID. This does not include the project ID.
scgInstance :: Lens' SSLCertsGet Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.SSLCerts.Get.SSLCertsGet
instance Data.Data.Data Network.Google.Resource.SQL.SSLCerts.Get.SSLCertsGet
instance GHC.Show.Show Network.Google.Resource.SQL.SSLCerts.Get.SSLCertsGet
instance GHC.Classes.Eq Network.Google.Resource.SQL.SSLCerts.Get.SSLCertsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.SSLCerts.Get.SSLCertsGet


-- | Deletes the SSL certificate. The change will not take effect until the
--   instance is restarted.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.sslCerts.delete</tt>.
module Network.Google.Resource.SQL.SSLCerts.Delete

-- | A resource alias for <tt>sql.sslCerts.delete</tt> method which the
--   <a>SSLCertsDelete</a> request conforms to.
type SSLCertsDeleteResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("sslCerts" :> (Capture "sha1Fingerprint" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))))

-- | Creates a value of <a>SSLCertsDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scdProject</a></li>
--   <li><a>scdSha1Fingerprint</a></li>
--   <li><a>scdInstance</a></li>
--   </ul>
sslCertsDelete :: Text -> Text -> Text -> SSLCertsDelete

-- | Deletes the SSL certificate. The change will not take effect until the
--   instance is restarted.
--   
--   <i>See:</i> <a>sslCertsDelete</a> smart constructor.
data SSLCertsDelete

-- | Project ID of the project that contains the instance to be deleted.
scdProject :: Lens' SSLCertsDelete Text

-- | Sha1 FingerPrint.
scdSha1Fingerprint :: Lens' SSLCertsDelete Text

-- | Cloud SQL instance ID. This does not include the project ID.
scdInstance :: Lens' SSLCertsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.SSLCerts.Delete.SSLCertsDelete
instance Data.Data.Data Network.Google.Resource.SQL.SSLCerts.Delete.SSLCertsDelete
instance GHC.Show.Show Network.Google.Resource.SQL.SSLCerts.Delete.SSLCertsDelete
instance GHC.Classes.Eq Network.Google.Resource.SQL.SSLCerts.Delete.SSLCertsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.SSLCerts.Delete.SSLCertsDelete


-- | 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.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.sslCerts.createEphemeral</tt>.
module Network.Google.Resource.SQL.SSLCerts.CreateEphemeral

-- | A resource alias for <tt>sql.sslCerts.createEphemeral</tt> method
--   which the <a>SSLCertsCreateEphemeral</a> request conforms to.
type SSLCertsCreateEphemeralResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("createEphemeral" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] SSLCertsCreateEphemeralRequest :> Post '[JSON] SSLCert))))))))

-- | Creates a value of <a>SSLCertsCreateEphemeral</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scceProject</a></li>
--   <li><a>sccePayload</a></li>
--   <li><a>scceInstance</a></li>
--   </ul>
sslCertsCreateEphemeral :: Text -> SSLCertsCreateEphemeralRequest -> Text -> SSLCertsCreateEphemeral

-- | 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.
--   
--   <i>See:</i> <a>sslCertsCreateEphemeral</a> smart constructor.
data SSLCertsCreateEphemeral

-- | Project ID of the Cloud SQL project.
scceProject :: Lens' SSLCertsCreateEphemeral Text

-- | Multipart request metadata.
sccePayload :: Lens' SSLCertsCreateEphemeral SSLCertsCreateEphemeralRequest

-- | Cloud SQL instance ID. This does not include the project ID.
scceInstance :: Lens' SSLCertsCreateEphemeral Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.SSLCerts.CreateEphemeral.SSLCertsCreateEphemeral
instance Data.Data.Data Network.Google.Resource.SQL.SSLCerts.CreateEphemeral.SSLCertsCreateEphemeral
instance GHC.Show.Show Network.Google.Resource.SQL.SSLCerts.CreateEphemeral.SSLCertsCreateEphemeral
instance GHC.Classes.Eq Network.Google.Resource.SQL.SSLCerts.CreateEphemeral.SSLCertsCreateEphemeral
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.SSLCerts.CreateEphemeral.SSLCertsCreateEphemeral


-- | Lists all instance operations that have been performed on the given
--   Cloud SQL instance in the reverse chronological order of the start
--   time.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.operations.list</tt>.
module Network.Google.Resource.SQL.Operations.List

-- | A resource alias for <tt>sql.operations.list</tt> method which the
--   <a>OperationsList</a> request conforms to.
type OperationsListResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("operations" :> (QueryParam "instance" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] OperationsListResponse))))))))

-- | Creates a value of <a>OperationsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>olProject</a></li>
--   <li><a>olPageToken</a></li>
--   <li><a>olMaxResults</a></li>
--   <li><a>olInstance</a></li>
--   </ul>
operationsList :: Text -> Text -> OperationsList

-- | Lists all instance operations that have been performed on the given
--   Cloud SQL instance in the reverse chronological order of the start
--   time.
--   
--   <i>See:</i> <a>operationsList</a> smart constructor.
data OperationsList

-- | Project ID of the project that contains the instance.
olProject :: Lens' OperationsList Text

-- | A previously-returned page token representing part of the larger set
--   of results to view.
olPageToken :: Lens' OperationsList (Maybe Text)

-- | Maximum number of operations per response.
olMaxResults :: Lens' OperationsList (Maybe Word32)

-- | Cloud SQL instance ID. This does not include the project ID.
olInstance :: Lens' OperationsList Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Operations.List.OperationsList
instance Data.Data.Data Network.Google.Resource.SQL.Operations.List.OperationsList
instance GHC.Show.Show Network.Google.Resource.SQL.Operations.List.OperationsList
instance GHC.Classes.Eq Network.Google.Resource.SQL.Operations.List.OperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Operations.List.OperationsList


-- | Retrieves an instance operation that has been performed on an
--   instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.operations.get</tt>.
module Network.Google.Resource.SQL.Operations.Get

-- | A resource alias for <tt>sql.operations.get</tt> method which the
--   <a>OperationsGet</a> request conforms to.
type OperationsGetResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("operations" :> (Capture "operation" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Operation))))))

-- | Creates a value of <a>OperationsGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ogProject</a></li>
--   <li><a>ogOperation</a></li>
--   </ul>
operationsGet :: Text -> Text -> OperationsGet

-- | Retrieves an instance operation that has been performed on an
--   instance.
--   
--   <i>See:</i> <a>operationsGet</a> smart constructor.
data OperationsGet

-- | Project ID of the project that contains the instance.
ogProject :: Lens' OperationsGet Text

-- | Instance operation ID.
ogOperation :: Lens' OperationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Operations.Get.OperationsGet
instance Data.Data.Data Network.Google.Resource.SQL.Operations.Get.OperationsGet
instance GHC.Show.Show Network.Google.Resource.SQL.Operations.Get.OperationsGet
instance GHC.Classes.Eq Network.Google.Resource.SQL.Operations.Get.OperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Operations.Get.OperationsGet


-- | Updates settings of a Cloud SQL instance. Caution: This is not a
--   partial update, so you must include values for all the settings that
--   you want to retain. For partial updates, use patch.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.update</tt>.
module Network.Google.Resource.SQL.Instances.Update

-- | A resource alias for <tt>sql.instances.update</tt> method which the
--   <a>InstancesUpdate</a> request conforms to.
type InstancesUpdateResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DatabaseInstance :> Put '[JSON] Operation)))))))

-- | Creates a value of <a>InstancesUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iuProject</a></li>
--   <li><a>iuPayload</a></li>
--   <li><a>iuInstance</a></li>
--   </ul>
instancesUpdate :: Text -> DatabaseInstance -> Text -> InstancesUpdate

-- | Updates settings of a Cloud SQL instance. Caution: This is not a
--   partial update, so you must include values for all the settings that
--   you want to retain. For partial updates, use patch.
--   
--   <i>See:</i> <a>instancesUpdate</a> smart constructor.
data InstancesUpdate

-- | Project ID of the project that contains the instance.
iuProject :: Lens' InstancesUpdate Text

-- | Multipart request metadata.
iuPayload :: Lens' InstancesUpdate DatabaseInstance

-- | Cloud SQL instance ID. This does not include the project ID.
iuInstance :: Lens' InstancesUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Update.InstancesUpdate
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Update.InstancesUpdate
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Update.InstancesUpdate
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Update.InstancesUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Update.InstancesUpdate


-- | Truncate MySQL general and slow query log tables
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.truncateLog</tt>.
module Network.Google.Resource.SQL.Instances.TruncateLog

-- | A resource alias for <tt>sql.instances.truncateLog</tt> method which
--   the <a>InstancesTruncateLog</a> request conforms to.
type InstancesTruncateLogResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("truncateLog" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstancesTruncateLogRequest :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>InstancesTruncateLog</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>itlProject</a></li>
--   <li><a>itlPayload</a></li>
--   <li><a>itlInstance</a></li>
--   </ul>
instancesTruncateLog :: Text -> InstancesTruncateLogRequest -> Text -> InstancesTruncateLog

-- | Truncate MySQL general and slow query log tables
--   
--   <i>See:</i> <a>instancesTruncateLog</a> smart constructor.
data InstancesTruncateLog

-- | Project ID of the Cloud SQL project.
itlProject :: Lens' InstancesTruncateLog Text

-- | Multipart request metadata.
itlPayload :: Lens' InstancesTruncateLog InstancesTruncateLogRequest

-- | Cloud SQL instance ID. This does not include the project ID.
itlInstance :: Lens' InstancesTruncateLog Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.TruncateLog.InstancesTruncateLog
instance Data.Data.Data Network.Google.Resource.SQL.Instances.TruncateLog.InstancesTruncateLog
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.TruncateLog.InstancesTruncateLog
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.TruncateLog.InstancesTruncateLog
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.TruncateLog.InstancesTruncateLog


-- | Stops the replication in the read replica instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.stopReplica</tt>.
module Network.Google.Resource.SQL.Instances.StopReplica

-- | A resource alias for <tt>sql.instances.stopReplica</tt> method which
--   the <a>InstancesStopReplica</a> request conforms to.
type InstancesStopReplicaResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("stopReplica" :> (QueryParam "alt" AltJSON :> Post '[JSON] Operation)))))))

-- | Creates a value of <a>InstancesStopReplica</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isrProject</a></li>
--   <li><a>isrInstance</a></li>
--   </ul>
instancesStopReplica :: Text -> Text -> InstancesStopReplica

-- | Stops the replication in the read replica instance.
--   
--   <i>See:</i> <a>instancesStopReplica</a> smart constructor.
data InstancesStopReplica

-- | ID of the project that contains the read replica.
isrProject :: Lens' InstancesStopReplica Text

-- | Cloud SQL read replica instance name.
isrInstance :: Lens' InstancesStopReplica Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.StopReplica.InstancesStopReplica
instance Data.Data.Data Network.Google.Resource.SQL.Instances.StopReplica.InstancesStopReplica
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.StopReplica.InstancesStopReplica
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.StopReplica.InstancesStopReplica
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.StopReplica.InstancesStopReplica


-- | Starts the replication in the read replica instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.startReplica</tt>.
module Network.Google.Resource.SQL.Instances.StartReplica

-- | A resource alias for <tt>sql.instances.startReplica</tt> method which
--   the <a>InstancesStartReplica</a> request conforms to.
type InstancesStartReplicaResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("startReplica" :> (QueryParam "alt" AltJSON :> Post '[JSON] Operation)))))))

-- | Creates a value of <a>InstancesStartReplica</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iProject</a></li>
--   <li><a>iInstance</a></li>
--   </ul>
instancesStartReplica :: Text -> Text -> InstancesStartReplica

-- | Starts the replication in the read replica instance.
--   
--   <i>See:</i> <a>instancesStartReplica</a> smart constructor.
data InstancesStartReplica

-- | ID of the project that contains the read replica.
iProject :: Lens' InstancesStartReplica Text

-- | Cloud SQL read replica instance name.
iInstance :: Lens' InstancesStartReplica Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.StartReplica.InstancesStartReplica
instance Data.Data.Data Network.Google.Resource.SQL.Instances.StartReplica.InstancesStartReplica
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.StartReplica.InstancesStartReplica
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.StartReplica.InstancesStartReplica
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.StartReplica.InstancesStartReplica


-- | Restores a backup of a Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.restoreBackup</tt>.
module Network.Google.Resource.SQL.Instances.RestoreBackup

-- | A resource alias for <tt>sql.instances.restoreBackup</tt> method which
--   the <a>InstancesRestoreBackup</a> request conforms to.
type InstancesRestoreBackupResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("restoreBackup" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstancesRestoreBackupRequest :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>InstancesRestoreBackup</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irbProject</a></li>
--   <li><a>irbPayload</a></li>
--   <li><a>irbInstance</a></li>
--   </ul>
instancesRestoreBackup :: Text -> InstancesRestoreBackupRequest -> Text -> InstancesRestoreBackup

-- | Restores a backup of a Cloud SQL instance.
--   
--   <i>See:</i> <a>instancesRestoreBackup</a> smart constructor.
data InstancesRestoreBackup

-- | Project ID of the project that contains the instance.
irbProject :: Lens' InstancesRestoreBackup Text

-- | Multipart request metadata.
irbPayload :: Lens' InstancesRestoreBackup InstancesRestoreBackupRequest

-- | Cloud SQL instance ID. This does not include the project ID.
irbInstance :: Lens' InstancesRestoreBackup Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.RestoreBackup.InstancesRestoreBackup
instance Data.Data.Data Network.Google.Resource.SQL.Instances.RestoreBackup.InstancesRestoreBackup
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.RestoreBackup.InstancesRestoreBackup
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.RestoreBackup.InstancesRestoreBackup
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.RestoreBackup.InstancesRestoreBackup


-- | Restarts a Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.restart</tt>.
module Network.Google.Resource.SQL.Instances.Restart

-- | A resource alias for <tt>sql.instances.restart</tt> method which the
--   <a>InstancesRestart</a> request conforms to.
type InstancesRestartResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("restart" :> (QueryParam "alt" AltJSON :> Post '[JSON] Operation)))))))

-- | Creates a value of <a>InstancesRestart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irProject</a></li>
--   <li><a>irInstance</a></li>
--   </ul>
instancesRestart :: Text -> Text -> InstancesRestart

-- | Restarts a Cloud SQL instance.
--   
--   <i>See:</i> <a>instancesRestart</a> smart constructor.
data InstancesRestart

-- | Project ID of the project that contains the instance to be restarted.
irProject :: Lens' InstancesRestart Text

-- | Cloud SQL instance ID. This does not include the project ID.
irInstance :: Lens' InstancesRestart Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Restart.InstancesRestart
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Restart.InstancesRestart
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Restart.InstancesRestart
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Restart.InstancesRestart
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Restart.InstancesRestart


-- | Deletes all client certificates and generates a new server SSL
--   certificate for the instance. The changes will not take effect until
--   the instance is restarted. Existing instances without a server
--   certificate will need to call this once to set a server certificate.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.resetSslConfig</tt>.
module Network.Google.Resource.SQL.Instances.ResetSSLConfig

-- | A resource alias for <tt>sql.instances.resetSslConfig</tt> method
--   which the <a>InstancesResetSSLConfig</a> request conforms to.
type InstancesResetSSLConfigResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("resetSslConfig" :> (QueryParam "alt" AltJSON :> Post '[JSON] Operation)))))))

-- | Creates a value of <a>InstancesResetSSLConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irscProject</a></li>
--   <li><a>irscInstance</a></li>
--   </ul>
instancesResetSSLConfig :: Text -> Text -> InstancesResetSSLConfig

-- | Deletes all client certificates and generates a new server SSL
--   certificate for the instance. The changes will not take effect until
--   the instance is restarted. Existing instances without a server
--   certificate will need to call this once to set a server certificate.
--   
--   <i>See:</i> <a>instancesResetSSLConfig</a> smart constructor.
data InstancesResetSSLConfig

-- | Project ID of the project that contains the instance.
irscProject :: Lens' InstancesResetSSLConfig Text

-- | Cloud SQL instance ID. This does not include the project ID.
irscInstance :: Lens' InstancesResetSSLConfig Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.ResetSSLConfig.InstancesResetSSLConfig
instance Data.Data.Data Network.Google.Resource.SQL.Instances.ResetSSLConfig.InstancesResetSSLConfig
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.ResetSSLConfig.InstancesResetSSLConfig
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.ResetSSLConfig.InstancesResetSSLConfig
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.ResetSSLConfig.InstancesResetSSLConfig


-- | Promotes the read replica instance to be a stand-alone Cloud SQL
--   instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.promoteReplica</tt>.
module Network.Google.Resource.SQL.Instances.PromoteReplica

-- | A resource alias for <tt>sql.instances.promoteReplica</tt> method
--   which the <a>InstancesPromoteReplica</a> request conforms to.
type InstancesPromoteReplicaResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("promoteReplica" :> (QueryParam "alt" AltJSON :> Post '[JSON] Operation)))))))

-- | Creates a value of <a>InstancesPromoteReplica</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iprProject</a></li>
--   <li><a>iprInstance</a></li>
--   </ul>
instancesPromoteReplica :: Text -> Text -> InstancesPromoteReplica

-- | Promotes the read replica instance to be a stand-alone Cloud SQL
--   instance.
--   
--   <i>See:</i> <a>instancesPromoteReplica</a> smart constructor.
data InstancesPromoteReplica

-- | ID of the project that contains the read replica.
iprProject :: Lens' InstancesPromoteReplica Text

-- | Cloud SQL read replica instance name.
iprInstance :: Lens' InstancesPromoteReplica Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.PromoteReplica.InstancesPromoteReplica
instance Data.Data.Data Network.Google.Resource.SQL.Instances.PromoteReplica.InstancesPromoteReplica
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.PromoteReplica.InstancesPromoteReplica
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.PromoteReplica.InstancesPromoteReplica
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.PromoteReplica.InstancesPromoteReplica


-- | Updates settings of a Cloud SQL instance. Caution: This is not a
--   partial update, so you must include values for all the settings that
--   you want to retain. For partial updates, use patch.. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.patch</tt>.
module Network.Google.Resource.SQL.Instances.Patch

-- | A resource alias for <tt>sql.instances.patch</tt> method which the
--   <a>InstancesPatch</a> request conforms to.
type InstancesPatchResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DatabaseInstance :> Patch '[JSON] Operation)))))))

-- | Creates a value of <a>InstancesPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipProject</a></li>
--   <li><a>ipPayload</a></li>
--   <li><a>ipInstance</a></li>
--   </ul>
instancesPatch :: Text -> DatabaseInstance -> Text -> InstancesPatch

-- | Updates settings of a Cloud SQL instance. Caution: This is not a
--   partial update, so you must include values for all the settings that
--   you want to retain. For partial updates, use patch.. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>instancesPatch</a> smart constructor.
data InstancesPatch

-- | Project ID of the project that contains the instance.
ipProject :: Lens' InstancesPatch Text

-- | Multipart request metadata.
ipPayload :: Lens' InstancesPatch DatabaseInstance

-- | Cloud SQL instance ID. This does not include the project ID.
ipInstance :: Lens' InstancesPatch Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Patch.InstancesPatch
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Patch.InstancesPatch
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Patch.InstancesPatch
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Patch.InstancesPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Patch.InstancesPatch


-- | Lists instances under a given project in the alphabetical order of the
--   instance name.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.list</tt>.
module Network.Google.Resource.SQL.Instances.List

-- | A resource alias for <tt>sql.instances.list</tt> method which the
--   <a>InstancesList</a> request conforms to.
type InstancesListResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] InstancesListResponse)))))))

-- | Creates a value of <a>InstancesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilProject</a></li>
--   <li><a>ilPageToken</a></li>
--   <li><a>ilMaxResults</a></li>
--   </ul>
instancesList :: Text -> InstancesList

-- | Lists instances under a given project in the alphabetical order of the
--   instance name.
--   
--   <i>See:</i> <a>instancesList</a> smart constructor.
data InstancesList

-- | Project ID of the project for which to list Cloud SQL instances.
ilProject :: Lens' InstancesList Text

-- | A previously-returned page token representing part of the larger set
--   of results to view.
ilPageToken :: Lens' InstancesList (Maybe Text)

-- | The maximum number of results to return per response.
ilMaxResults :: Lens' InstancesList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.List.InstancesList
instance Data.Data.Data Network.Google.Resource.SQL.Instances.List.InstancesList
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.List.InstancesList
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.List.InstancesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.List.InstancesList


-- | Creates a new Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.insert</tt>.
module Network.Google.Resource.SQL.Instances.Insert

-- | A resource alias for <tt>sql.instances.insert</tt> method which the
--   <a>InstancesInsert</a> request conforms to.
type InstancesInsertResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DatabaseInstance :> Post '[JSON] Operation))))))

-- | Creates a value of <a>InstancesInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>insProject</a></li>
--   <li><a>insPayload</a></li>
--   </ul>
instancesInsert :: Text -> DatabaseInstance -> InstancesInsert

-- | Creates a new Cloud SQL instance.
--   
--   <i>See:</i> <a>instancesInsert</a> smart constructor.
data InstancesInsert

-- | Project ID of the project to which the newly created Cloud SQL
--   instances should belong.
insProject :: Lens' InstancesInsert Text

-- | Multipart request metadata.
insPayload :: Lens' InstancesInsert DatabaseInstance
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Insert.InstancesInsert
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Insert.InstancesInsert
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Insert.InstancesInsert
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Insert.InstancesInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Insert.InstancesInsert


-- | Imports data into a Cloud SQL instance from a MySQL dump file in
--   Google Cloud Storage.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.import</tt>.
module Network.Google.Resource.SQL.Instances.Import

-- | A resource alias for <tt>sql.instances.import</tt> method which the
--   <a>InstancesImport</a> request conforms to.
type InstancesImportResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("import" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstancesImportRequest :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>InstancesImport</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iiProject</a></li>
--   <li><a>iiPayload</a></li>
--   <li><a>iiInstance</a></li>
--   </ul>
instancesImport :: Text -> InstancesImportRequest -> Text -> InstancesImport

-- | Imports data into a Cloud SQL instance from a MySQL dump file in
--   Google Cloud Storage.
--   
--   <i>See:</i> <a>instancesImport</a> smart constructor.
data InstancesImport

-- | Project ID of the project that contains the instance.
iiProject :: Lens' InstancesImport Text

-- | Multipart request metadata.
iiPayload :: Lens' InstancesImport InstancesImportRequest

-- | Cloud SQL instance ID. This does not include the project ID.
iiInstance :: Lens' InstancesImport Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Import.InstancesImport
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Import.InstancesImport
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Import.InstancesImport
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Import.InstancesImport
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Import.InstancesImport


-- | Retrieves a resource containing information about a Cloud SQL
--   instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.get</tt>.
module Network.Google.Resource.SQL.Instances.Get

-- | A resource alias for <tt>sql.instances.get</tt> method which the
--   <a>InstancesGet</a> request conforms to.
type InstancesGetResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] DatabaseInstance))))))

-- | Creates a value of <a>InstancesGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>igProject</a></li>
--   <li><a>igInstance</a></li>
--   </ul>
instancesGet :: Text -> Text -> InstancesGet

-- | Retrieves a resource containing information about a Cloud SQL
--   instance.
--   
--   <i>See:</i> <a>instancesGet</a> smart constructor.
data InstancesGet

-- | Project ID of the project that contains the instance.
igProject :: Lens' InstancesGet Text

-- | Database instance ID. This does not include the project ID.
igInstance :: Lens' InstancesGet Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Get.InstancesGet
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Get.InstancesGet
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Get.InstancesGet
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Get.InstancesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Get.InstancesGet


-- | Failover the instance to its failover replica instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.failover</tt>.
module Network.Google.Resource.SQL.Instances.Failover

-- | A resource alias for <tt>sql.instances.failover</tt> method which the
--   <a>InstancesFailover</a> request conforms to.
type InstancesFailoverResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("failover" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstancesFailoverRequest :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>InstancesFailover</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifProject</a></li>
--   <li><a>ifPayload</a></li>
--   <li><a>ifInstance</a></li>
--   </ul>
instancesFailover :: Text -> InstancesFailoverRequest -> Text -> InstancesFailover

-- | Failover the instance to its failover replica instance.
--   
--   <i>See:</i> <a>instancesFailover</a> smart constructor.
data InstancesFailover

-- | ID of the project that contains the read replica.
ifProject :: Lens' InstancesFailover Text

-- | Multipart request metadata.
ifPayload :: Lens' InstancesFailover InstancesFailoverRequest

-- | Cloud SQL instance ID. This does not include the project ID.
ifInstance :: Lens' InstancesFailover Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Failover.InstancesFailover
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Failover.InstancesFailover
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Failover.InstancesFailover
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Failover.InstancesFailover
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Failover.InstancesFailover


-- | Exports data from a Cloud SQL instance to a Google Cloud Storage
--   bucket as a MySQL dump file.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.export</tt>.
module Network.Google.Resource.SQL.Instances.Export

-- | A resource alias for <tt>sql.instances.export</tt> method which the
--   <a>InstancesExport</a> request conforms to.
type InstancesExportResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("export" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstancesExportRequest :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>InstancesExport</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ieProject</a></li>
--   <li><a>iePayload</a></li>
--   <li><a>ieInstance</a></li>
--   </ul>
instancesExport :: Text -> InstancesExportRequest -> Text -> InstancesExport

-- | Exports data from a Cloud SQL instance to a Google Cloud Storage
--   bucket as a MySQL dump file.
--   
--   <i>See:</i> <a>instancesExport</a> smart constructor.
data InstancesExport

-- | Project ID of the project that contains the instance to be exported.
ieProject :: Lens' InstancesExport Text

-- | Multipart request metadata.
iePayload :: Lens' InstancesExport InstancesExportRequest

-- | Cloud SQL instance ID. This does not include the project ID.
ieInstance :: Lens' InstancesExport Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Export.InstancesExport
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Export.InstancesExport
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Export.InstancesExport
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Export.InstancesExport
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Export.InstancesExport


-- | Deletes a Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.delete</tt>.
module Network.Google.Resource.SQL.Instances.Delete

-- | A resource alias for <tt>sql.instances.delete</tt> method which the
--   <a>InstancesDelete</a> request conforms to.
type InstancesDeleteResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))

-- | Creates a value of <a>InstancesDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idProject</a></li>
--   <li><a>idInstance</a></li>
--   </ul>
instancesDelete :: Text -> Text -> InstancesDelete

-- | Deletes a Cloud SQL instance.
--   
--   <i>See:</i> <a>instancesDelete</a> smart constructor.
data InstancesDelete

-- | Project ID of the project that contains the instance to be deleted.
idProject :: Lens' InstancesDelete Text

-- | Cloud SQL instance ID. This does not include the project ID.
idInstance :: Lens' InstancesDelete Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Delete.InstancesDelete
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Delete.InstancesDelete
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Delete.InstancesDelete
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Delete.InstancesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Delete.InstancesDelete


-- | Creates a Cloud SQL instance as a clone of the source instance. The
--   API is not ready for Second Generation instances yet.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.instances.clone</tt>.
module Network.Google.Resource.SQL.Instances.Clone

-- | A resource alias for <tt>sql.instances.clone</tt> method which the
--   <a>InstancesClone</a> request conforms to.
type InstancesCloneResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("clone" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstancesCloneRequest :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>InstancesClone</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icProject</a></li>
--   <li><a>icPayload</a></li>
--   <li><a>icInstance</a></li>
--   </ul>
instancesClone :: Text -> InstancesCloneRequest -> Text -> InstancesClone

-- | Creates a Cloud SQL instance as a clone of the source instance. The
--   API is not ready for Second Generation instances yet.
--   
--   <i>See:</i> <a>instancesClone</a> smart constructor.
data InstancesClone

-- | Project ID of the source as well as the clone Cloud SQL instance.
icProject :: Lens' InstancesClone Text

-- | Multipart request metadata.
icPayload :: Lens' InstancesClone InstancesCloneRequest

-- | The ID of the Cloud SQL instance to be cloned (source). This does not
--   include the project ID.
icInstance :: Lens' InstancesClone Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Instances.Clone.InstancesClone
instance Data.Data.Data Network.Google.Resource.SQL.Instances.Clone.InstancesClone
instance GHC.Show.Show Network.Google.Resource.SQL.Instances.Clone.InstancesClone
instance GHC.Classes.Eq Network.Google.Resource.SQL.Instances.Clone.InstancesClone
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Instances.Clone.InstancesClone


-- | List all available database flags for Google Cloud SQL instances.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.flags.list</tt>.
module Network.Google.Resource.SQL.Flags.List

-- | A resource alias for <tt>sql.flags.list</tt> method which the
--   <a>FlagsList</a> request conforms to.
type FlagsListResource = "sql" :> ("v1beta4" :> ("flags" :> (QueryParam "alt" AltJSON :> Get '[JSON] FlagsListResponse)))

-- | Creates a value of <a>FlagsList</a> with the minimum fields required
--   to make a request.
flagsList :: FlagsList

-- | List all available database flags for Google Cloud SQL instances.
--   
--   <i>See:</i> <a>flagsList</a> smart constructor.
data FlagsList
instance GHC.Generics.Generic Network.Google.Resource.SQL.Flags.List.FlagsList
instance Data.Data.Data Network.Google.Resource.SQL.Flags.List.FlagsList
instance GHC.Show.Show Network.Google.Resource.SQL.Flags.List.FlagsList
instance GHC.Classes.Eq Network.Google.Resource.SQL.Flags.List.FlagsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Flags.List.FlagsList


-- | Updates a resource containing information about a database inside a
--   Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.databases.update</tt>.
module Network.Google.Resource.SQL.Databases.Update

-- | A resource alias for <tt>sql.databases.update</tt> method which the
--   <a>DatabasesUpdate</a> request conforms to.
type DatabasesUpdateResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("databases" :> (Capture "database" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Database :> Put '[JSON] Operation)))))))))

-- | Creates a value of <a>DatabasesUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>duProject</a></li>
--   <li><a>duDatabase</a></li>
--   <li><a>duPayload</a></li>
--   <li><a>duInstance</a></li>
--   </ul>
databasesUpdate :: Text -> Text -> Database -> Text -> DatabasesUpdate

-- | Updates a resource containing information about a database inside a
--   Cloud SQL instance.
--   
--   <i>See:</i> <a>databasesUpdate</a> smart constructor.
data DatabasesUpdate

-- | Project ID of the project that contains the instance.
duProject :: Lens' DatabasesUpdate Text

-- | Name of the database to be updated in the instance.
duDatabase :: Lens' DatabasesUpdate Text

-- | Multipart request metadata.
duPayload :: Lens' DatabasesUpdate Database

-- | Database instance ID. This does not include the project ID.
duInstance :: Lens' DatabasesUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Databases.Update.DatabasesUpdate
instance Data.Data.Data Network.Google.Resource.SQL.Databases.Update.DatabasesUpdate
instance GHC.Show.Show Network.Google.Resource.SQL.Databases.Update.DatabasesUpdate
instance GHC.Classes.Eq Network.Google.Resource.SQL.Databases.Update.DatabasesUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Databases.Update.DatabasesUpdate


-- | Updates a resource containing information about a database inside a
--   Cloud SQL instance. This method supports patch semantics.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.databases.patch</tt>.
module Network.Google.Resource.SQL.Databases.Patch

-- | A resource alias for <tt>sql.databases.patch</tt> method which the
--   <a>DatabasesPatch</a> request conforms to.
type DatabasesPatchResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("databases" :> (Capture "database" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Database :> Patch '[JSON] Operation)))))))))

-- | Creates a value of <a>DatabasesPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpProject</a></li>
--   <li><a>dpDatabase</a></li>
--   <li><a>dpPayload</a></li>
--   <li><a>dpInstance</a></li>
--   </ul>
databasesPatch :: Text -> Text -> Database -> Text -> DatabasesPatch

-- | Updates a resource containing information about a database inside a
--   Cloud SQL instance. This method supports patch semantics.
--   
--   <i>See:</i> <a>databasesPatch</a> smart constructor.
data DatabasesPatch

-- | Project ID of the project that contains the instance.
dpProject :: Lens' DatabasesPatch Text

-- | Name of the database to be updated in the instance.
dpDatabase :: Lens' DatabasesPatch Text

-- | Multipart request metadata.
dpPayload :: Lens' DatabasesPatch Database

-- | Database instance ID. This does not include the project ID.
dpInstance :: Lens' DatabasesPatch Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Databases.Patch.DatabasesPatch
instance Data.Data.Data Network.Google.Resource.SQL.Databases.Patch.DatabasesPatch
instance GHC.Show.Show Network.Google.Resource.SQL.Databases.Patch.DatabasesPatch
instance GHC.Classes.Eq Network.Google.Resource.SQL.Databases.Patch.DatabasesPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Databases.Patch.DatabasesPatch


-- | Lists databases in the specified Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.databases.list</tt>.
module Network.Google.Resource.SQL.Databases.List

-- | A resource alias for <tt>sql.databases.list</tt> method which the
--   <a>DatabasesList</a> request conforms to.
type DatabasesListResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("databases" :> (QueryParam "alt" AltJSON :> Get '[JSON] DatabasesListResponse)))))))

-- | Creates a value of <a>DatabasesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlProject</a></li>
--   <li><a>dlInstance</a></li>
--   </ul>
databasesList :: Text -> Text -> DatabasesList

-- | Lists databases in the specified Cloud SQL instance.
--   
--   <i>See:</i> <a>databasesList</a> smart constructor.
data DatabasesList

-- | Project ID of the project for which to list Cloud SQL instances.
dlProject :: Lens' DatabasesList Text

-- | Cloud SQL instance ID. This does not include the project ID.
dlInstance :: Lens' DatabasesList Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Databases.List.DatabasesList
instance Data.Data.Data Network.Google.Resource.SQL.Databases.List.DatabasesList
instance GHC.Show.Show Network.Google.Resource.SQL.Databases.List.DatabasesList
instance GHC.Classes.Eq Network.Google.Resource.SQL.Databases.List.DatabasesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Databases.List.DatabasesList


-- | Inserts a resource containing information about a database inside a
--   Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.databases.insert</tt>.
module Network.Google.Resource.SQL.Databases.Insert

-- | A resource alias for <tt>sql.databases.insert</tt> method which the
--   <a>DatabasesInsert</a> request conforms to.
type DatabasesInsertResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("databases" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Database :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>DatabasesInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diProject</a></li>
--   <li><a>diPayload</a></li>
--   <li><a>diInstance</a></li>
--   </ul>
databasesInsert :: Text -> Database -> Text -> DatabasesInsert

-- | Inserts a resource containing information about a database inside a
--   Cloud SQL instance.
--   
--   <i>See:</i> <a>databasesInsert</a> smart constructor.
data DatabasesInsert

-- | Project ID of the project that contains the instance.
diProject :: Lens' DatabasesInsert Text

-- | Multipart request metadata.
diPayload :: Lens' DatabasesInsert Database

-- | Database instance ID. This does not include the project ID.
diInstance :: Lens' DatabasesInsert Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Databases.Insert.DatabasesInsert
instance Data.Data.Data Network.Google.Resource.SQL.Databases.Insert.DatabasesInsert
instance GHC.Show.Show Network.Google.Resource.SQL.Databases.Insert.DatabasesInsert
instance GHC.Classes.Eq Network.Google.Resource.SQL.Databases.Insert.DatabasesInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Databases.Insert.DatabasesInsert


-- | Retrieves a resource containing information about a database inside a
--   Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.databases.get</tt>.
module Network.Google.Resource.SQL.Databases.Get

-- | A resource alias for <tt>sql.databases.get</tt> method which the
--   <a>DatabasesGet</a> request conforms to.
type DatabasesGetResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("databases" :> (Capture "database" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Database))))))))

-- | Creates a value of <a>DatabasesGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgProject</a></li>
--   <li><a>dgDatabase</a></li>
--   <li><a>dgInstance</a></li>
--   </ul>
databasesGet :: Text -> Text -> Text -> DatabasesGet

-- | Retrieves a resource containing information about a database inside a
--   Cloud SQL instance.
--   
--   <i>See:</i> <a>databasesGet</a> smart constructor.
data DatabasesGet

-- | Project ID of the project that contains the instance.
dgProject :: Lens' DatabasesGet Text

-- | Name of the database in the instance.
dgDatabase :: Lens' DatabasesGet Text

-- | Database instance ID. This does not include the project ID.
dgInstance :: Lens' DatabasesGet Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Databases.Get.DatabasesGet
instance Data.Data.Data Network.Google.Resource.SQL.Databases.Get.DatabasesGet
instance GHC.Show.Show Network.Google.Resource.SQL.Databases.Get.DatabasesGet
instance GHC.Classes.Eq Network.Google.Resource.SQL.Databases.Get.DatabasesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Databases.Get.DatabasesGet


-- | Deletes a database from a Cloud SQL instance.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.databases.delete</tt>.
module Network.Google.Resource.SQL.Databases.Delete

-- | A resource alias for <tt>sql.databases.delete</tt> method which the
--   <a>DatabasesDelete</a> request conforms to.
type DatabasesDeleteResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("databases" :> (Capture "database" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))))

-- | Creates a value of <a>DatabasesDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddProject</a></li>
--   <li><a>ddDatabase</a></li>
--   <li><a>ddInstance</a></li>
--   </ul>
databasesDelete :: Text -> Text -> Text -> DatabasesDelete

-- | Deletes a database from a Cloud SQL instance.
--   
--   <i>See:</i> <a>databasesDelete</a> smart constructor.
data DatabasesDelete

-- | Project ID of the project that contains the instance.
ddProject :: Lens' DatabasesDelete Text

-- | Name of the database to be deleted in the instance.
ddDatabase :: Lens' DatabasesDelete Text

-- | Database instance ID. This does not include the project ID.
ddInstance :: Lens' DatabasesDelete Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.Databases.Delete.DatabasesDelete
instance Data.Data.Data Network.Google.Resource.SQL.Databases.Delete.DatabasesDelete
instance GHC.Show.Show Network.Google.Resource.SQL.Databases.Delete.DatabasesDelete
instance GHC.Classes.Eq Network.Google.Resource.SQL.Databases.Delete.DatabasesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.Databases.Delete.DatabasesDelete


-- | Lists all backup runs associated with a given instance and
--   configuration in the reverse chronological order of the enqueued time.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.backupRuns.list</tt>.
module Network.Google.Resource.SQL.BackupRuns.List

-- | A resource alias for <tt>sql.backupRuns.list</tt> method which the
--   <a>BackupRunsList</a> request conforms to.
type BackupRunsListResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("backupRuns" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] BackupRunsListResponse)))))))))

-- | Creates a value of <a>BackupRunsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brlProject</a></li>
--   <li><a>brlPageToken</a></li>
--   <li><a>brlMaxResults</a></li>
--   <li><a>brlInstance</a></li>
--   </ul>
backupRunsList :: Text -> Text -> BackupRunsList

-- | Lists all backup runs associated with a given instance and
--   configuration in the reverse chronological order of the enqueued time.
--   
--   <i>See:</i> <a>backupRunsList</a> smart constructor.
data BackupRunsList

-- | Project ID of the project that contains the instance.
brlProject :: Lens' BackupRunsList Text

-- | A previously-returned page token representing part of the larger set
--   of results to view.
brlPageToken :: Lens' BackupRunsList (Maybe Text)

-- | Maximum number of backup runs per response.
brlMaxResults :: Lens' BackupRunsList (Maybe Int32)

-- | Cloud SQL instance ID. This does not include the project ID.
brlInstance :: Lens' BackupRunsList Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.BackupRuns.List.BackupRunsList
instance Data.Data.Data Network.Google.Resource.SQL.BackupRuns.List.BackupRunsList
instance GHC.Show.Show Network.Google.Resource.SQL.BackupRuns.List.BackupRunsList
instance GHC.Classes.Eq Network.Google.Resource.SQL.BackupRuns.List.BackupRunsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.BackupRuns.List.BackupRunsList


-- | Creates a new backup run on demand. This method is applicable only to
--   Second Generation instances.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.backupRuns.insert</tt>.
module Network.Google.Resource.SQL.BackupRuns.Insert

-- | A resource alias for <tt>sql.backupRuns.insert</tt> method which the
--   <a>BackupRunsInsert</a> request conforms to.
type BackupRunsInsertResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("backupRuns" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] BackupRun :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>BackupRunsInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>briProject</a></li>
--   <li><a>briPayload</a></li>
--   <li><a>briInstance</a></li>
--   </ul>
backupRunsInsert :: Text -> BackupRun -> Text -> BackupRunsInsert

-- | Creates a new backup run on demand. This method is applicable only to
--   Second Generation instances.
--   
--   <i>See:</i> <a>backupRunsInsert</a> smart constructor.
data BackupRunsInsert

-- | Project ID of the project that contains the instance.
briProject :: Lens' BackupRunsInsert Text

-- | Multipart request metadata.
briPayload :: Lens' BackupRunsInsert BackupRun

-- | Cloud SQL instance ID. This does not include the project ID.
briInstance :: Lens' BackupRunsInsert Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.BackupRuns.Insert.BackupRunsInsert
instance Data.Data.Data Network.Google.Resource.SQL.BackupRuns.Insert.BackupRunsInsert
instance GHC.Show.Show Network.Google.Resource.SQL.BackupRuns.Insert.BackupRunsInsert
instance GHC.Classes.Eq Network.Google.Resource.SQL.BackupRuns.Insert.BackupRunsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.BackupRuns.Insert.BackupRunsInsert


-- | Retrieves a resource containing information about a backup run.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.backupRuns.get</tt>.
module Network.Google.Resource.SQL.BackupRuns.Get

-- | A resource alias for <tt>sql.backupRuns.get</tt> method which the
--   <a>BackupRunsGet</a> request conforms to.
type BackupRunsGetResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("backupRuns" :> (Capture "id" (Textual Int64) :> (QueryParam "alt" AltJSON :> Get '[JSON] BackupRun))))))))

-- | Creates a value of <a>BackupRunsGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brgProject</a></li>
--   <li><a>brgId</a></li>
--   <li><a>brgInstance</a></li>
--   </ul>
backupRunsGet :: Text -> Int64 -> Text -> BackupRunsGet

-- | Retrieves a resource containing information about a backup run.
--   
--   <i>See:</i> <a>backupRunsGet</a> smart constructor.
data BackupRunsGet

-- | Project ID of the project that contains the instance.
brgProject :: Lens' BackupRunsGet Text

-- | The ID of this Backup Run.
brgId :: Lens' BackupRunsGet Int64

-- | Cloud SQL instance ID. This does not include the project ID.
brgInstance :: Lens' BackupRunsGet Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.BackupRuns.Get.BackupRunsGet
instance Data.Data.Data Network.Google.Resource.SQL.BackupRuns.Get.BackupRunsGet
instance GHC.Show.Show Network.Google.Resource.SQL.BackupRuns.Get.BackupRunsGet
instance GHC.Classes.Eq Network.Google.Resource.SQL.BackupRuns.Get.BackupRunsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.BackupRuns.Get.BackupRunsGet


-- | Deletes the backup taken by a backup run.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a> for
--   <tt>sql.backupRuns.delete</tt>.
module Network.Google.Resource.SQL.BackupRuns.Delete

-- | A resource alias for <tt>sql.backupRuns.delete</tt> method which the
--   <a>BackupRunsDelete</a> request conforms to.
type BackupRunsDeleteResource = "sql" :> ("v1beta4" :> ("projects" :> (Capture "project" Text :> ("instances" :> (Capture "instance" Text :> ("backupRuns" :> (Capture "id" (Textual Int64) :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))))

-- | Creates a value of <a>BackupRunsDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brdProject</a></li>
--   <li><a>brdId</a></li>
--   <li><a>brdInstance</a></li>
--   </ul>
backupRunsDelete :: Text -> Int64 -> Text -> BackupRunsDelete

-- | Deletes the backup taken by a backup run.
--   
--   <i>See:</i> <a>backupRunsDelete</a> smart constructor.
data BackupRunsDelete

-- | Project ID of the project that contains the instance.
brdProject :: Lens' BackupRunsDelete Text

-- | The ID of the Backup Run to delete. To find a Backup Run ID, use the
--   list method.
brdId :: Lens' BackupRunsDelete Int64

-- | Cloud SQL instance ID. This does not include the project ID.
brdInstance :: Lens' BackupRunsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.SQL.BackupRuns.Delete.BackupRunsDelete
instance Data.Data.Data Network.Google.Resource.SQL.BackupRuns.Delete.BackupRunsDelete
instance GHC.Show.Show Network.Google.Resource.SQL.BackupRuns.Delete.BackupRunsDelete
instance GHC.Classes.Eq Network.Google.Resource.SQL.BackupRuns.Delete.BackupRunsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.SQL.BackupRuns.Delete.BackupRunsDelete


-- | Creates and configures Cloud SQL instances, which provide
--   fully-managed MySQL databases.
--   
--   <i>See:</i> <a>Cloud SQL Administration API Reference</a>
module Network.Google.SQLAdmin

-- | Default request referring to version <tt>v1beta4</tt> of the Cloud SQL
--   Administration API. This contains the host and root path used as a
--   starting point for constructing service requests.
sQLAdminService :: ServiceConfig

-- | Manage your Google SQL Service instances
sqlServiceAdminScope :: Proxy '["https://www.googleapis.com/auth/sqlservice.admin"]

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | Represents the entirety of the methods and resources available for the
--   Cloud SQL Administration API service.
type SQLAdminAPI = FlagsListResource :<|> (UsersInsertResource :<|> (UsersListResource :<|> (UsersDeleteResource :<|> (UsersUpdateResource :<|> (TiersListResource :<|> (BackupRunsInsertResource :<|> (BackupRunsListResource :<|> (BackupRunsGetResource :<|> (BackupRunsDeleteResource :<|> (SSLCertsInsertResource :<|> (SSLCertsListResource :<|> (SSLCertsGetResource :<|> (SSLCertsCreateEphemeralResource :<|> (SSLCertsDeleteResource :<|> (InstancesExportResource :<|> (InstancesInsertResource :<|> (InstancesListResource :<|> (InstancesStartReplicaResource :<|> (InstancesCloneResource :<|> (InstancesPatchResource :<|> (InstancesGetResource :<|> (InstancesRestoreBackupResource :<|> (InstancesFailoverResource :<|> (InstancesRestartResource :<|> (InstancesTruncateLogResource :<|> (InstancesImportResource :<|> (InstancesStopReplicaResource :<|> (InstancesResetSSLConfigResource :<|> (InstancesPromoteReplicaResource :<|> (InstancesDeleteResource :<|> (InstancesUpdateResource :<|> (OperationsListResource :<|> (OperationsGetResource :<|> (DatabasesInsertResource :<|> (DatabasesListResource :<|> (DatabasesPatchResource :<|> (DatabasesGetResource :<|> (DatabasesDeleteResource :<|> DatabasesUpdateResource))))))))))))))))))))))))))))))))))))))

-- | SslCerts Resource
--   
--   <i>See:</i> <a>sslCert</a> smart constructor.
data SSLCert

-- | Creates a value of <a>SSLCert</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scCommonName</a></li>
--   <li><a>scKind</a></li>
--   <li><a>scCertSerialNumber</a></li>
--   <li><a>scSelfLink</a></li>
--   <li><a>scCert</a></li>
--   <li><a>scSha1Fingerprint</a></li>
--   <li><a>scExpirationTime</a></li>
--   <li><a>scCreateTime</a></li>
--   <li><a>scInstance</a></li>
--   </ul>
sslCert :: SSLCert

-- | User supplied name. Constrained to [a-zA-Z.-_ ]+.
scCommonName :: Lens' SSLCert (Maybe Text)

-- | This is always sql#sslCert.
scKind :: Lens' SSLCert Text

-- | Serial number, as extracted from the certificate.
scCertSerialNumber :: Lens' SSLCert (Maybe Text)

-- | The URI of this resource.
scSelfLink :: Lens' SSLCert (Maybe Text)

-- | PEM representation.
scCert :: Lens' SSLCert (Maybe Text)

-- | Sha1 Fingerprint.
scSha1Fingerprint :: Lens' SSLCert (Maybe Text)

-- | The time when the certificate expires in RFC 3339 format, for example
--   2012-11-15T16:19:00.094Z.
scExpirationTime :: Lens' SSLCert (Maybe UTCTime)

-- | The time when the certificate was created in RFC 3339 format, for
--   example 2012-11-15T16:19:00.094Z
scCreateTime :: Lens' SSLCert (Maybe UTCTime)

-- | Name of the database instance.
scInstance :: Lens' SSLCert (Maybe Text)

-- | Database list response.
--   
--   <i>See:</i> <a>databasesListResponse</a> smart constructor.
data DatabasesListResponse

-- | Creates a value of <a>DatabasesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlrKind</a></li>
--   <li><a>dlrItems</a></li>
--   </ul>
databasesListResponse :: DatabasesListResponse

-- | This is always sql#databasesList.
dlrKind :: Lens' DatabasesListResponse Text

-- | List of database resources in the instance.
dlrItems :: Lens' DatabasesListResponse [Database]

-- | Database instance export request.
--   
--   <i>See:</i> <a>instancesExportRequest</a> smart constructor.
data InstancesExportRequest

-- | Creates a value of <a>InstancesExportRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ierExportContext</a></li>
--   </ul>
instancesExportRequest :: InstancesExportRequest

-- | Contains details about the export operation.
ierExportContext :: Lens' InstancesExportRequest (Maybe ExportContext)

-- | On-premises instance configuration.
--   
--   <i>See:</i> <a>onPremisesConfiguration</a> smart constructor.
data OnPremisesConfiguration

-- | Creates a value of <a>OnPremisesConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>opcKind</a></li>
--   <li><a>opcHostPort</a></li>
--   </ul>
onPremisesConfiguration :: OnPremisesConfiguration

-- | This is always sql#onPremisesConfiguration.
opcKind :: Lens' OnPremisesConfiguration Text

-- | The host and port of the on-premises instance in host:port format
opcHostPort :: Lens' OnPremisesConfiguration (Maybe Text)

-- | Database instance list operations response.
--   
--   <i>See:</i> <a>operationsListResponse</a> smart constructor.
data OperationsListResponse

-- | Creates a value of <a>OperationsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>olrNextPageToken</a></li>
--   <li><a>olrKind</a></li>
--   <li><a>olrItems</a></li>
--   </ul>
operationsListResponse :: OperationsListResponse

-- | The continuation token, used to page through large result sets.
--   Provide this value in a subsequent request to return the next page of
--   results.
olrNextPageToken :: Lens' OperationsListResponse (Maybe Text)

-- | This is always sql#operationsList.
olrKind :: Lens' OperationsListResponse Text

-- | List of operation resources.
olrItems :: Lens' OperationsListResponse [Operation]

-- | Database instance import context.
--   
--   <i>See:</i> <a>importContext</a> smart constructor.
data ImportContext

-- | Creates a value of <a>ImportContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icDatabase</a></li>
--   <li><a>icKind</a></li>
--   <li><a>icCSVImportOptions</a></li>
--   <li><a>icURI</a></li>
--   <li><a>icFileType</a></li>
--   </ul>
importContext :: ImportContext

-- | The database (for example, guestbook) to which the import is made. If
--   fileType is SQL and no database is specified, it is assumed that the
--   database is specified in the file to be imported. If fileType is CSV,
--   it must be specified.
icDatabase :: Lens' ImportContext (Maybe Text)

-- | This is always sql#importContext.
icKind :: Lens' ImportContext Text

-- | Options for importing data as CSV.
icCSVImportOptions :: Lens' ImportContext (Maybe ImportContextCSVImportOptions)

-- | A path to the file in Google Cloud Storage from which the import is
--   made. The URI is in the form gs://bucketName/fileName. Compressed gzip
--   files (.gz) are supported when fileType is SQL.
icURI :: Lens' ImportContext (Maybe Text)

-- | The file type for the specified uri. SQL: The file contains SQL
--   statements. CSV: The file contains CSV data.
icFileType :: Lens' ImportContext (Maybe Text)

-- | An Operations resource contains information about database instance
--   operations such as create, delete, and restart. Operations resources
--   are created in response to operations that were initiated; you never
--   create them directly.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oTargetId</a></li>
--   <li><a>oTargetProject</a></li>
--   <li><a>oStatus</a></li>
--   <li><a>oInsertTime</a></li>
--   <li><a>oImportContext</a></li>
--   <li><a>oStartTime</a></li>
--   <li><a>oKind</a></li>
--   <li><a>oError</a></li>
--   <li><a>oExportContext</a></li>
--   <li><a>oUser</a></li>
--   <li><a>oSelfLink</a></li>
--   <li><a>oName</a></li>
--   <li><a>oEndTime</a></li>
--   <li><a>oOperationType</a></li>
--   <li><a>oTargetLink</a></li>
--   </ul>
operation :: Operation

-- | Name of the database instance related to this operation.
oTargetId :: Lens' Operation (Maybe Text)

-- | The project ID of the target instance related to this operation.
oTargetProject :: Lens' Operation (Maybe Text)

-- | The status of an operation. Valid values are PENDING, RUNNING, DONE,
--   UNKNOWN.
oStatus :: Lens' Operation (Maybe Text)

-- | The time this operation was enqueued in UTC timezone in RFC 3339
--   format, for example 2012-11-15T16:19:00.094Z.
oInsertTime :: Lens' Operation (Maybe UTCTime)

-- | The context for import operation, if applicable.
oImportContext :: Lens' Operation (Maybe ImportContext)

-- | The time this operation actually started in UTC timezone in RFC 3339
--   format, for example 2012-11-15T16:19:00.094Z.
oStartTime :: Lens' Operation (Maybe UTCTime)

-- | This is always sql#operation.
oKind :: Lens' Operation Text

-- | If errors occurred during processing of this operation, this field
--   will be populated.
oError :: Lens' Operation (Maybe OperationErrors)

-- | The context for export operation, if applicable.
oExportContext :: Lens' Operation (Maybe ExportContext)

-- | The email address of the user who initiated this operation.
oUser :: Lens' Operation (Maybe Text)

-- | The URI of this resource.
oSelfLink :: Lens' Operation (Maybe Text)

-- | An identifier that uniquely identifies the operation. You can use this
--   identifier to retrieve the Operations resource that has information
--   about the operation.
oName :: Lens' Operation (Maybe Text)

-- | The time this operation finished in UTC timezone in RFC 3339 format,
--   for example 2012-11-15T16:19:00.094Z.
oEndTime :: Lens' Operation (Maybe UTCTime)

-- | The type of the operation. Valid values are CREATE, DELETE, UPDATE,
--   RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER,
--   DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
oOperationType :: Lens' Operation (Maybe Text)

-- | The URI of the instance related to the operation.
oTargetLink :: Lens' Operation (Maybe Text)

-- | Database instance settings.
--   
--   <i>See:</i> <a>settings</a> smart constructor.
data Settings

-- | Creates a value of <a>Settings</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStorageAutoResize</a></li>
--   <li><a>sReplicationType</a></li>
--   <li><a>sActivationPolicy</a></li>
--   <li><a>sSettingsVersion</a></li>
--   <li><a>sDataDiskSizeGb</a></li>
--   <li><a>sAuthorizedGaeApplications</a></li>
--   <li><a>sKind</a></li>
--   <li><a>sPricingPlan</a></li>
--   <li><a>sIPConfiguration</a></li>
--   <li><a>sMaintenanceWindow</a></li>
--   <li><a>sDatabaseReplicationEnabled</a></li>
--   <li><a>sTier</a></li>
--   <li><a>sDatabaseFlags</a></li>
--   <li><a>sDataDiskType</a></li>
--   <li><a>sCrashSafeReplicationEnabled</a></li>
--   <li><a>sLocationPreference</a></li>
--   <li><a>sBackupConfiguration</a></li>
--   </ul>
settings :: Settings

-- | Configuration to increase storage size automatically. The default
--   value is false. Applies only to Second Generation instances.
sStorageAutoResize :: Lens' Settings (Maybe Bool)

-- | The type of replication this instance uses. This can be either
--   ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First
--   Generation instances.
sReplicationType :: Lens' Settings (Maybe Text)

-- | The activation policy specifies when the instance is activated; it is
--   applicable only when the instance state is RUNNABLE. The activation
--   policy cannot be updated together with other settings for Second
--   Generation instances. Valid values: ALWAYS: The instance is on; it is
--   not deactivated by inactivity. NEVER: The instance is off; it is not
--   activated, even if a connection request arrives. ON_DEMAND: The
--   instance responds to incoming requests, and turns itself off when not
--   in use. Instances with PER_USE pricing turn off after 15 minutes of
--   inactivity. Instances with PER_PACKAGE pricing turn off after 12 hours
--   of inactivity.
sActivationPolicy :: Lens' Settings (Maybe Text)

-- | The version of instance settings. This is a required field for update
--   method to make sure concurrent updates are handled properly. During
--   update, use the most recent settingsVersion value for this instance
--   and do not try to update this value.
sSettingsVersion :: Lens' Settings (Maybe Int64)

-- | The size of data disk, in GB. The data disk size minimum is 10GB.
--   Applies only to Second Generation instances.
sDataDiskSizeGb :: Lens' Settings (Maybe Int64)

-- | The App Engine app IDs that can access this instance. This property is
--   only applicable to First Generation instances.
sAuthorizedGaeApplications :: Lens' Settings [Text]

-- | This is always sql#settings.
sKind :: Lens' Settings Text

-- | The pricing plan for this instance. This can be either PER_USE or
--   PACKAGE. Only PER_USE is supported for Second Generation instances.
sPricingPlan :: Lens' Settings (Maybe Text)

-- | The settings for IP Management. This allows to enable or disable the
--   instance IP and manage which external networks can connect to the
--   instance. The IPv4 address cannot be disabled for Second Generation
--   instances.
sIPConfiguration :: Lens' Settings (Maybe IPConfiguration)

-- | The maintenance window for this instance. This specifies when the
--   instance may be restarted for maintenance purposes. Applies only to
--   Second Generation instances.
sMaintenanceWindow :: Lens' Settings (Maybe MaintenanceWindow)

-- | Configuration specific to read replica instances. Indicates whether
--   replication is enabled or not.
sDatabaseReplicationEnabled :: Lens' Settings (Maybe Bool)

-- | The tier of service for this instance, for example D1, D2. For more
--   information, see pricing.
sTier :: Lens' Settings (Maybe Text)

-- | The database flags passed to the instance at startup.
sDatabaseFlags :: Lens' Settings [DatabaseFlags]

-- | The type of data disk. Only supported for Second Generation instances.
--   The default type is PD_SSD. Applies only to Second Generation
--   instances.
sDataDiskType :: Lens' Settings (Maybe Text)

-- | Configuration specific to read replica instances. Indicates whether
--   database flags for crash-safe replication are enabled. This property
--   is only applicable to First Generation instances.
sCrashSafeReplicationEnabled :: Lens' Settings (Maybe Bool)

-- | The location preference settings. This allows the instance to be
--   located as near as possible to either an App Engine app or GCE zone
--   for better performance. App Engine co-location is only applicable to
--   First Generation instances.
sLocationPreference :: Lens' Settings (Maybe LocationPreference)

-- | The daily backup configuration for the instance.
sBackupConfiguration :: Lens' Settings (Maybe BackupConfiguration)

-- | Database instance IP Mapping.
--   
--   <i>See:</i> <a>ipMApping</a> smart constructor.
data IPMApping

-- | Creates a value of <a>IPMApping</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>imaIPAddress</a></li>
--   <li><a>imaTimeToRetire</a></li>
--   <li><a>imaType</a></li>
--   </ul>
ipMApping :: IPMApping

-- | The IP address assigned.
imaIPAddress :: Lens' IPMApping (Maybe Text)

-- | The due time for this IP to be retired in RFC 3339 format, for example
--   2012-11-15T16:19:00.094Z. This field is only available when the IP is
--   scheduled to be retired.
imaTimeToRetire :: Lens' IPMApping (Maybe UTCTime)

-- | The type of this IP address. A PRIMARY address is an address that can
--   accept incoming connections. An OUTGOING address is the source address
--   of connections originating from the instance, if supported.
imaType :: Lens' IPMApping (Maybe Text)

-- | A database resource inside a Cloud SQL instance.
--   
--   <i>See:</i> <a>database</a> smart constructor.
data Database

-- | Creates a value of <a>Database</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dEtag</a></li>
--   <li><a>dProject</a></li>
--   <li><a>dKind</a></li>
--   <li><a>dCollation</a></li>
--   <li><a>dSelfLink</a></li>
--   <li><a>dName</a></li>
--   <li><a>dCharSet</a></li>
--   <li><a>dInstance</a></li>
--   </ul>
database :: Database

-- | HTTP 1.1 Entity tag for the resource.
dEtag :: Lens' Database (Maybe Text)

-- | The project ID of the project containing the Cloud SQL database. The
--   Google apps domain is prefixed if applicable.
dProject :: Lens' Database (Maybe Text)

-- | This is always sql#database.
dKind :: Lens' Database Text

-- | The MySQL collation value.
dCollation :: Lens' Database (Maybe Text)

-- | The URI of this resource.
dSelfLink :: Lens' Database (Maybe Text)

-- | The name of the database in the Cloud SQL instance. This does not
--   include the project ID or instance name.
dName :: Lens' Database (Maybe Text)

-- | The MySQL charset value.
dCharSet :: Lens' Database (Maybe Text)

-- | The name of the Cloud SQL instance. This does not include the project
--   ID.
dInstance :: Lens' Database (Maybe Text)

-- | SslCerts create ephemeral certificate request.
--   
--   <i>See:</i> <a>sslCertsCreateEphemeralRequest</a> smart constructor.
data SSLCertsCreateEphemeralRequest

-- | Creates a value of <a>SSLCertsCreateEphemeralRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sccerPublicKey</a></li>
--   </ul>
sslCertsCreateEphemeralRequest :: SSLCertsCreateEphemeralRequest

-- | PEM encoded public key to include in the signed certificate.
sccerPublicKey :: Lens' SSLCertsCreateEphemeralRequest (Maybe Text)

-- | Binary log coordinates.
--   
--   <i>See:</i> <a>binLogCoordinates</a> smart constructor.
data BinLogCoordinates

-- | Creates a value of <a>BinLogCoordinates</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>blcBinLogPosition</a></li>
--   <li><a>blcKind</a></li>
--   <li><a>blcBinLogFileName</a></li>
--   </ul>
binLogCoordinates :: BinLogCoordinates

-- | Position (offset) within the binary log file.
blcBinLogPosition :: Lens' BinLogCoordinates (Maybe Int64)

-- | This is always sql#binLogCoordinates.
blcKind :: Lens' BinLogCoordinates Text

-- | Name of the binary log file for a Cloud SQL instance.
blcBinLogFileName :: Lens' BinLogCoordinates (Maybe Text)

-- | The name and status of the failover replica. This property is
--   applicable only to Second Generation instances.
--   
--   <i>See:</i> <a>databaseInstanceFailoverReplica</a> smart constructor.
data DatabaseInstanceFailoverReplica

-- | Creates a value of <a>DatabaseInstanceFailoverReplica</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>difrName</a></li>
--   <li><a>difrAvailable</a></li>
--   </ul>
databaseInstanceFailoverReplica :: DatabaseInstanceFailoverReplica

-- | The name of the failover replica. If specified at instance creation, a
--   failover replica is created for the instance. The name doesn't include
--   the project ID. This property is applicable only to Second Generation
--   instances.
difrName :: Lens' DatabaseInstanceFailoverReplica (Maybe Text)

-- | The availability status of the failover replica. A false status
--   indicates that the failover replica is out of sync. The master can
--   only failover to the falover replica when the status is true.
difrAvailable :: Lens' DatabaseInstanceFailoverReplica (Maybe Bool)

-- | Tiers list response.
--   
--   <i>See:</i> <a>tiersListResponse</a> smart constructor.
data TiersListResponse

-- | Creates a value of <a>TiersListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlrKind</a></li>
--   <li><a>tlrItems</a></li>
--   </ul>
tiersListResponse :: TiersListResponse

-- | This is always sql#tiersList.
tlrKind :: Lens' TiersListResponse Text

-- | List of tiers.
tlrItems :: Lens' TiersListResponse [Tier]

-- | User list response.
--   
--   <i>See:</i> <a>usersListResponse</a> smart constructor.
data UsersListResponse

-- | Creates a value of <a>UsersListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulrNextPageToken</a></li>
--   <li><a>ulrKind</a></li>
--   <li><a>ulrItems</a></li>
--   </ul>
usersListResponse :: UsersListResponse

-- | An identifier that uniquely identifies the operation. You can use this
--   identifier to retrieve the Operations resource that has information
--   about the operation.
ulrNextPageToken :: Lens' UsersListResponse (Maybe Text)

-- | This is always sql#usersList.
ulrKind :: Lens' UsersListResponse Text

-- | List of user resources in the instance.
ulrItems :: Lens' UsersListResponse [User]

-- | Database instance export context.
--   
--   <i>See:</i> <a>exportContext</a> smart constructor.
data ExportContext

-- | Creates a value of <a>ExportContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecCSVExportOptions</a></li>
--   <li><a>ecKind</a></li>
--   <li><a>ecURI</a></li>
--   <li><a>ecFileType</a></li>
--   <li><a>ecSQLExportOptions</a></li>
--   <li><a>ecDatabases</a></li>
--   </ul>
exportContext :: ExportContext

-- | Options for exporting data as CSV.
ecCSVExportOptions :: Lens' ExportContext (Maybe ExportContextCSVExportOptions)

-- | This is always sql#exportContext.
ecKind :: Lens' ExportContext Text

-- | The path to the file in Google Cloud Storage where the export will be
--   stored. The URI is in the form gs://bucketName/fileName. If the file
--   already exists, the operation fails. If fileType is SQL and the
--   filename ends with .gz, the contents are compressed.
ecURI :: Lens' ExportContext (Maybe Text)

-- | The file type for the specified uri. SQL: The file contains SQL
--   statements. CSV: The file contains CSV data.
ecFileType :: Lens' ExportContext (Maybe Text)

-- | Options for exporting data as SQL statements.
ecSQLExportOptions :: Lens' ExportContext (Maybe ExportContextSQLExportOptions)

-- | Databases (for example, guestbook) from which the export is made. If
--   fileType is SQL and no database is specified, all databases are
--   exported. If fileType is CSV, you can optionally specify at most one
--   database to export. If csvExportOptions.selectQuery also specifies the
--   database, this field will be ignored.
ecDatabases :: Lens' ExportContext [Text]

-- | Database instance operation errors list wrapper.
--   
--   <i>See:</i> <a>operationErrors</a> smart constructor.
data OperationErrors

-- | Creates a value of <a>OperationErrors</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oeKind</a></li>
--   <li><a>oeErrors</a></li>
--   </ul>
operationErrors :: OperationErrors

-- | This is always sql#operationErrors.
oeKind :: Lens' OperationErrors Text

-- | The list of errors encountered while processing this operation.
oeErrors :: Lens' OperationErrors [OperationError]

-- | SslCerts list response.
--   
--   <i>See:</i> <a>sslCertsListResponse</a> smart constructor.
data SSLCertsListResponse

-- | Creates a value of <a>SSLCertsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sclrKind</a></li>
--   <li><a>sclrItems</a></li>
--   </ul>
sslCertsListResponse :: SSLCertsListResponse

-- | This is always sql#sslCertsList.
sclrKind :: Lens' SSLCertsListResponse Text

-- | List of client certificates for the instance.
sclrItems :: Lens' SSLCertsListResponse [SSLCert]

-- | SslCerts insert request.
--   
--   <i>See:</i> <a>sslCertsInsertRequest</a> smart constructor.
data SSLCertsInsertRequest

-- | Creates a value of <a>SSLCertsInsertRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scirCommonName</a></li>
--   </ul>
sslCertsInsertRequest :: SSLCertsInsertRequest

-- | User supplied name. Must be a distinct name from the other
--   certificates for this instance. New certificates will not be usable
--   until the instance is restarted.
scirCommonName :: Lens' SSLCertsInsertRequest (Maybe Text)

-- | IP Management configuration.
--   
--   <i>See:</i> <a>ipConfiguration</a> smart constructor.
data IPConfiguration

-- | Creates a value of <a>IPConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icAuthorizedNetworks</a></li>
--   <li><a>icRequireSSL</a></li>
--   <li><a>icIPv4Enabled</a></li>
--   </ul>
ipConfiguration :: IPConfiguration

-- | The list of external networks that are allowed to connect to the
--   instance using the IP. In CIDR notation, also known as 'slash'
--   notation (e.g. 192.168.100.0/24).
icAuthorizedNetworks :: Lens' IPConfiguration [ACLEntry]

-- | Whether the mysqld should default to 'REQUIRE X509' for users
--   connecting over IP.
icRequireSSL :: Lens' IPConfiguration (Maybe Bool)

-- | Whether the instance should be assigned an IP address or not.
icIPv4Enabled :: Lens' IPConfiguration (Maybe Bool)

-- | Maintenance window. This specifies when a v2 Cloud SQL instance should
--   preferably be restarted for system maintenance puruposes.
--   
--   <i>See:</i> <a>maintenanceWindow</a> smart constructor.
data MaintenanceWindow

-- | Creates a value of <a>MaintenanceWindow</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mwKind</a></li>
--   <li><a>mwDay</a></li>
--   <li><a>mwHour</a></li>
--   <li><a>mwUpdateTrack</a></li>
--   </ul>
maintenanceWindow :: MaintenanceWindow

-- | This is always sql#maintenanceWindow.
mwKind :: Lens' MaintenanceWindow Text

-- | day of week (1-7), starting on Monday.
mwDay :: Lens' MaintenanceWindow (Maybe Int32)

-- | hour of day - 0 to 23.
mwHour :: Lens' MaintenanceWindow (Maybe Int32)
mwUpdateTrack :: Lens' MaintenanceWindow (Maybe Text)

-- | Options for importing data as CSV.
--   
--   <i>See:</i> <a>importContextCSVImportOptions</a> smart constructor.
data ImportContextCSVImportOptions

-- | Creates a value of <a>ImportContextCSVImportOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iccioColumns</a></li>
--   <li><a>iccioTable</a></li>
--   </ul>
importContextCSVImportOptions :: ImportContextCSVImportOptions

-- | The columns to which CSV data is imported. If not specified, all
--   columns of the database table are loaded with CSV data.
iccioColumns :: Lens' ImportContextCSVImportOptions [Text]

-- | The table to which CSV data is imported.
iccioTable :: Lens' ImportContextCSVImportOptions (Maybe Text)

-- | Options for exporting data as CSV.
--   
--   <i>See:</i> <a>exportContextCSVExportOptions</a> smart constructor.
data ExportContextCSVExportOptions

-- | Creates a value of <a>ExportContextCSVExportOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecceoSelectQuery</a></li>
--   </ul>
exportContextCSVExportOptions :: ExportContextCSVExportOptions

-- | The select query used to extract the data.
ecceoSelectQuery :: Lens' ExportContextCSVExportOptions (Maybe Text)

-- | A Cloud SQL user resource.
--   
--   <i>See:</i> <a>user</a> smart constructor.
data User

-- | Creates a value of <a>User</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uEtag</a></li>
--   <li><a>uProject</a></li>
--   <li><a>uKind</a></li>
--   <li><a>uName</a></li>
--   <li><a>uPassword</a></li>
--   <li><a>uHost</a></li>
--   <li><a>uInstance</a></li>
--   </ul>
user :: User

-- | HTTP 1.1 Entity tag for the resource.
uEtag :: Lens' User (Maybe Text)

-- | The project ID of the project containing the Cloud SQL database. The
--   Google apps domain is prefixed if applicable. Can be omitted for
--   update since it is already specified on the URL.
uProject :: Lens' User (Maybe Text)

-- | This is always sql#user.
uKind :: Lens' User Text

-- | The name of the user in the Cloud SQL instance. Can be omitted for
--   update since it is already specified on the URL.
uName :: Lens' User (Maybe Text)

-- | The password for the user.
uPassword :: Lens' User (Maybe Text)

-- | The host name from which the user can connect. For insert operations,
--   host defaults to an empty string. For update operations, host is
--   specified as part of the request URL. The host name cannot be updated
--   after insertion.
uHost :: Lens' User (Maybe Text)

-- | The name of the Cloud SQL instance. This does not include the project
--   ID. Can be omitted for update since it is already specified on the
--   URL.
uInstance :: Lens' User (Maybe Text)

-- | A Cloud SQL instance resource.
--   
--   <i>See:</i> <a>databaseInstance</a> smart constructor.
data DatabaseInstance

-- | Creates a value of <a>DatabaseInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>datBackendType</a></li>
--   <li><a>datMaxDiskSize</a></li>
--   <li><a>datOnPremisesConfiguration</a></li>
--   <li><a>datEtag</a></li>
--   <li><a>datState</a></li>
--   <li><a>datIPv6Address</a></li>
--   <li><a>datServerCaCert</a></li>
--   <li><a>datDatabaseVersion</a></li>
--   <li><a>datProject</a></li>
--   <li><a>datSettings</a></li>
--   <li><a>datKind</a></li>
--   <li><a>datConnectionName</a></li>
--   <li><a>datCurrentDiskSize</a></li>
--   <li><a>datInstanceType</a></li>
--   <li><a>datReplicaNames</a></li>
--   <li><a>datSelfLink</a></li>
--   <li><a>datFailoverReplica</a></li>
--   <li><a>datName</a></li>
--   <li><a>datMasterInstanceName</a></li>
--   <li><a>datReplicaConfiguration</a></li>
--   <li><a>datRegion</a></li>
--   <li><a>datServiceAccountEmailAddress</a></li>
--   <li><a>datIPAddresses</a></li>
--   <li><a>datSuspensionReason</a></li>
--   </ul>
databaseInstance :: DatabaseInstance

-- | FIRST_GEN: Basic Cloud SQL instance that runs in a Google-managed
--   container. SECOND_GEN: A newer Cloud SQL backend that runs in a
--   Compute Engine VM. EXTERNAL: A MySQL server that is not managed by
--   Google.
datBackendType :: Lens' DatabaseInstance (Maybe Text)

-- | The maximum disk size of the instance in bytes.
datMaxDiskSize :: Lens' DatabaseInstance (Maybe Int64)

-- | Configuration specific to on-premises instances.
datOnPremisesConfiguration :: Lens' DatabaseInstance (Maybe OnPremisesConfiguration)

-- | HTTP 1.1 Entity tag for the resource.
datEtag :: Lens' DatabaseInstance (Maybe Text)

-- | The current serving state of the Cloud SQL instance. This can be one
--   of the following. RUNNABLE: The instance is running, or is ready to
--   run when accessed. SUSPENDED: The instance is not available, for
--   example due to problems with billing. PENDING_CREATE: The instance is
--   being created. MAINTENANCE: The instance is down for maintenance.
--   FAILED: The instance creation failed. UNKNOWN_STATE: The state of the
--   instance is unknown.
datState :: Lens' DatabaseInstance (Maybe Text)

-- | The IPv6 address assigned to the instance. This property is applicable
--   only to First Generation instances.
datIPv6Address :: Lens' DatabaseInstance (Maybe Text)

-- | SSL configuration.
datServerCaCert :: Lens' DatabaseInstance (Maybe SSLCert)

-- | The database engine type and version. The databaseVersion can not be
--   changed after instance creation. Can be MYSQL_5_5, MYSQL_5_6 or
--   MYSQL_5_7. Defaults to MYSQL_5_6. MYSQL_5_7 is applicable only to
--   Second Generation instances.
datDatabaseVersion :: Lens' DatabaseInstance (Maybe Text)

-- | The project ID of the project containing the Cloud SQL instance. The
--   Google apps domain is prefixed if applicable.
datProject :: Lens' DatabaseInstance (Maybe Text)

-- | The user settings.
datSettings :: Lens' DatabaseInstance (Maybe Settings)

-- | This is always sql#instance.
datKind :: Lens' DatabaseInstance Text

-- | Connection name of the Cloud SQL instance used in connection strings.
datConnectionName :: Lens' DatabaseInstance (Maybe Text)

-- | The current disk usage of the instance in bytes. This property has
--   been deprecated. Users should use the
--   "cloudsql.googleapis.com/database/disk/bytes_used" metric in Cloud
--   Monitoring API instead. Please see
--   https://groups.google.com/d/msg/google-cloud-sql-announce/I_7-F9EBhT0/BtvFtdFeAgAJ
--   for details.
datCurrentDiskSize :: Lens' DatabaseInstance (Maybe Int64)

-- | The instance type. This can be one of the following.
--   CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from
--   a master. ON_PREMISES_INSTANCE: An instance running on the customer's
--   premises. READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a
--   read-replica.
datInstanceType :: Lens' DatabaseInstance (Maybe Text)

-- | The replicas of the instance.
datReplicaNames :: Lens' DatabaseInstance [Text]

-- | The URI of this resource.
datSelfLink :: Lens' DatabaseInstance (Maybe Text)

-- | The name and status of the failover replica. This property is
--   applicable only to Second Generation instances.
datFailoverReplica :: Lens' DatabaseInstance (Maybe DatabaseInstanceFailoverReplica)

-- | Name of the Cloud SQL instance. This does not include the project ID.
datName :: Lens' DatabaseInstance (Maybe Text)

-- | The name of the instance which will act as master in the replication
--   setup.
datMasterInstanceName :: Lens' DatabaseInstance (Maybe Text)

-- | Configuration specific to read-replicas replicating from on-premises
--   masters.
datReplicaConfiguration :: Lens' DatabaseInstance (Maybe ReplicaConfiguration)

-- | The geographical region. Can be us-central (FIRST_GEN instances only),
--   us-central1 (SECOND_GEN instances only), asia-east1 or europe-west1.
--   Defaults to us-central or us-central1 depending on the instance type
--   (First Generation or Second Generation). The region can not be changed
--   after instance creation.
datRegion :: Lens' DatabaseInstance (Maybe Text)

-- | The service account email address assigned to the instance. This
--   property is applicable only to Second Generation instances.
datServiceAccountEmailAddress :: Lens' DatabaseInstance (Maybe Text)

-- | The assigned IP addresses for the instance.
datIPAddresses :: Lens' DatabaseInstance [IPMApping]

-- | If the instance state is SUSPENDED, the reason for the suspension.
datSuspensionReason :: Lens' DatabaseInstance [Text]

-- | Database instance clone context.
--   
--   <i>See:</i> <a>cloneContext</a> smart constructor.
data CloneContext

-- | Creates a value of <a>CloneContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccDestinationInstanceName</a></li>
--   <li><a>ccBinLogCoordinates</a></li>
--   <li><a>ccKind</a></li>
--   </ul>
cloneContext :: CloneContext

-- | Name of the Cloud SQL instance to be created as a clone.
ccDestinationInstanceName :: Lens' CloneContext (Maybe Text)

-- | Binary log coordinates, if specified, indentify the the position up to
--   which the source instance should be cloned. If not specified, the
--   source instance is cloned up to the most recent binary log coordintes.
ccBinLogCoordinates :: Lens' CloneContext (Maybe BinLogCoordinates)

-- | This is always sql#cloneContext.
ccKind :: Lens' CloneContext Text

-- | A Google Cloud SQL service flag resource.
--   
--   <i>See:</i> <a>flag</a> smart constructor.
data Flag

-- | Creates a value of <a>Flag</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fMaxValue</a></li>
--   <li><a>fKind</a></li>
--   <li><a>fAppliesTo</a></li>
--   <li><a>fName</a></li>
--   <li><a>fAllowedStringValues</a></li>
--   <li><a>fType</a></li>
--   <li><a>fMinValue</a></li>
--   <li><a>fRequiresRestart</a></li>
--   </ul>
flag :: Flag

-- | For INTEGER flags, the maximum allowed value.
fMaxValue :: Lens' Flag (Maybe Int64)

-- | This is always sql#flag.
fKind :: Lens' Flag Text

-- | The database version this flag applies to. Can be MYSQL_5_5,
--   MYSQL_5_6, or MYSQL_5_7. MYSQL_5_7 is applicable only to Second
--   Generation instances.
fAppliesTo :: Lens' Flag [Text]

-- | This is the name of the flag. Flag names always use underscores, not
--   hyphens, e.g. max_allowed_packet
fName :: Lens' Flag (Maybe Text)

-- | For STRING flags, a list of strings that the value can be set to.
fAllowedStringValues :: Lens' Flag [Text]

-- | The type of the flag. Flags are typed to being BOOLEAN, STRING,
--   INTEGER or NONE. NONE is used for flags which do not take a value,
--   such as skip_grant_tables.
fType :: Lens' Flag (Maybe Text)

-- | For INTEGER flags, the minimum allowed value.
fMinValue :: Lens' Flag (Maybe Int64)

-- | Indicates whether changing this flag will trigger a database restart.
--   Only applicable to Second Generation instances.
fRequiresRestart :: Lens' Flag (Maybe Bool)

-- | Instance failover request.
--   
--   <i>See:</i> <a>instancesFailoverRequest</a> smart constructor.
data InstancesFailoverRequest

-- | Creates a value of <a>InstancesFailoverRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ifrFailoverContext</a></li>
--   </ul>
instancesFailoverRequest :: InstancesFailoverRequest

-- | Failover Context.
ifrFailoverContext :: Lens' InstancesFailoverRequest (Maybe FailoverContext)

-- | A database instance backup run resource.
--   
--   <i>See:</i> <a>backupRun</a> smart constructor.
data BackupRun

-- | Creates a value of <a>BackupRun</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brStatus</a></li>
--   <li><a>brStartTime</a></li>
--   <li><a>brKind</a></li>
--   <li><a>brError</a></li>
--   <li><a>brWindowStartTime</a></li>
--   <li><a>brSelfLink</a></li>
--   <li><a>brEndTime</a></li>
--   <li><a>brId</a></li>
--   <li><a>brType</a></li>
--   <li><a>brEnQueuedTime</a></li>
--   <li><a>brDescription</a></li>
--   <li><a>brInstance</a></li>
--   </ul>
backupRun :: BackupRun

-- | The status of this run.
brStatus :: Lens' BackupRun (Maybe Text)

-- | The time the backup operation actually started in UTC timezone in RFC
--   3339 format, for example 2012-11-15T16:19:00.094Z.
brStartTime :: Lens' BackupRun (Maybe UTCTime)

-- | This is always sql#backupRun.
brKind :: Lens' BackupRun Text

-- | Information about why the backup operation failed. This is only
--   present if the run has the FAILED status.
brError :: Lens' BackupRun (Maybe OperationError)

-- | The start time of the backup window during which this the backup was
--   attempted in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
brWindowStartTime :: Lens' BackupRun (Maybe UTCTime)

-- | The URI of this resource.
brSelfLink :: Lens' BackupRun (Maybe Text)

-- | The time the backup operation completed in UTC timezone in RFC 3339
--   format, for example 2012-11-15T16:19:00.094Z.
brEndTime :: Lens' BackupRun (Maybe UTCTime)

-- | A unique identifier for this backup run. Note that this is unique only
--   within the scope of a particular Cloud SQL instance.
brId :: Lens' BackupRun (Maybe Int64)

-- | The type of this run; can be either "AUTOMATED" or "ON_DEMAND".
brType :: Lens' BackupRun (Maybe Text)

-- | The time the run was enqueued in UTC timezone in RFC 3339 format, for
--   example 2012-11-15T16:19:00.094Z.
brEnQueuedTime :: Lens' BackupRun (Maybe UTCTime)

-- | The description of this run, only applicable to on-demand backups.
brDescription :: Lens' BackupRun (Maybe Text)

-- | Name of the database instance.
brInstance :: Lens' BackupRun (Maybe Text)

-- | An entry for an Access Control list.
--   
--   <i>See:</i> <a>aclEntry</a> smart constructor.
data ACLEntry

-- | Creates a value of <a>ACLEntry</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aeKind</a></li>
--   <li><a>aeValue</a></li>
--   <li><a>aeName</a></li>
--   <li><a>aeExpirationTime</a></li>
--   </ul>
aclEntry :: ACLEntry

-- | This is always sql#aclEntry.
aeKind :: Lens' ACLEntry Text

-- | The whitelisted value for the access control list.
aeValue :: Lens' ACLEntry (Maybe Text)

-- | An optional label to identify this entry.
aeName :: Lens' ACLEntry (Maybe Text)

-- | The time when this access control entry expires in RFC 3339 format,
--   for example 2012-11-15T16:19:00.094Z.
aeExpirationTime :: Lens' ACLEntry (Maybe UTCTime)

-- | MySQL flags for Cloud SQL instances.
--   
--   <i>See:</i> <a>databaseFlags</a> smart constructor.
data DatabaseFlags

-- | Creates a value of <a>DatabaseFlags</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfValue</a></li>
--   <li><a>dfName</a></li>
--   </ul>
databaseFlags :: DatabaseFlags

-- | The value of the flag. Booleans should be set to on for true and off
--   for false. This field must be omitted if the flag doesn't take a
--   value.
dfValue :: Lens' DatabaseFlags (Maybe Text)

-- | The name of the flag. These flags are passed at instance startup, so
--   include both MySQL server options and MySQL system variables. Flags
--   should be specified with underscores, not hyphens. For more
--   information, see Configuring MySQL Flags in the Google Cloud SQL
--   documentation, as well as the official MySQL documentation for server
--   options and system variables.
dfName :: Lens' DatabaseFlags (Maybe Text)

-- | A Google Cloud SQL service tier resource.
--   
--   <i>See:</i> <a>tier</a> smart constructor.
data Tier

-- | Creates a value of <a>Tier</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tKind</a></li>
--   <li><a>tTier</a></li>
--   <li><a>tRegion</a></li>
--   <li><a>tDiskQuota</a></li>
--   <li><a>tRAM</a></li>
--   </ul>
tier :: Tier

-- | This is always sql#tier.
tKind :: Lens' Tier Text

-- | An identifier for the service tier, for example D1, D2 etc. For
--   related information, see Pricing.
tTier :: Lens' Tier (Maybe Text)

-- | The applicable regions for this tier.
tRegion :: Lens' Tier [Text]

-- | The maximum disk size of this tier in bytes.
tDiskQuota :: Lens' Tier (Maybe Int64)

-- | The maximum RAM usage of this tier in bytes.
tRAM :: Lens' Tier (Maybe Int64)

-- | Read-replica configuration specific to MySQL databases.
--   
--   <i>See:</i> <a>mySQLReplicaConfiguration</a> smart constructor.
data MySQLReplicaConfiguration

-- | Creates a value of <a>MySQLReplicaConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msqlrcVerifyServerCertificate</a></li>
--   <li><a>msqlrcKind</a></li>
--   <li><a>msqlrcClientKey</a></li>
--   <li><a>msqlrcUsername</a></li>
--   <li><a>msqlrcSSLCipher</a></li>
--   <li><a>msqlrcMasterHeartbeatPeriod</a></li>
--   <li><a>msqlrcConnectRetryInterval</a></li>
--   <li><a>msqlrcClientCertificate</a></li>
--   <li><a>msqlrcCaCertificate</a></li>
--   <li><a>msqlrcDumpFilePath</a></li>
--   <li><a>msqlrcPassword</a></li>
--   </ul>
mySQLReplicaConfiguration :: MySQLReplicaConfiguration

-- | Whether or not to check the master's Common Name value in the
--   certificate that it sends during the SSL handshake.
msqlrcVerifyServerCertificate :: Lens' MySQLReplicaConfiguration (Maybe Bool)

-- | This is always sql#mysqlReplicaConfiguration.
msqlrcKind :: Lens' MySQLReplicaConfiguration Text

-- | PEM representation of the slave's private key. The corresponsing
--   public key is encoded in the client's certificate.
msqlrcClientKey :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | The username for the replication connection.
msqlrcUsername :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | A list of permissible ciphers to use for SSL encryption.
msqlrcSSLCipher :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | Interval in milliseconds between replication heartbeats.
msqlrcMasterHeartbeatPeriod :: Lens' MySQLReplicaConfiguration (Maybe Int64)

-- | Seconds to wait between connect retries. MySQL's default is 60
--   seconds.
msqlrcConnectRetryInterval :: Lens' MySQLReplicaConfiguration (Maybe Int32)

-- | PEM representation of the slave's x509 certificate.
msqlrcClientCertificate :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | PEM representation of the trusted CA's x509 certificate.
msqlrcCaCertificate :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | Path to a SQL dump file in Google Cloud Storage from which the slave
--   instance is to be created. The URI is in the form
--   gs://bucketName/fileName. Compressed gzip files (.gz) are also
--   supported. Dumps should have the binlog co-ordinates from which
--   replication should begin. This can be accomplished by setting
--   --master-data to 1 when using mysqldump.
msqlrcDumpFilePath :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | The password for the replication connection.
msqlrcPassword :: Lens' MySQLReplicaConfiguration (Maybe Text)

-- | SslCertDetail.
--   
--   <i>See:</i> <a>sslCertDetail</a> smart constructor.
data SSLCertDetail

-- | Creates a value of <a>SSLCertDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scdCertInfo</a></li>
--   <li><a>scdCertPrivateKey</a></li>
--   </ul>
sslCertDetail :: SSLCertDetail

-- | The public information about the cert.
scdCertInfo :: Lens' SSLCertDetail (Maybe SSLCert)

-- | The private key for the client cert, in pem format. Keep private in
--   order to protect your security.
scdCertPrivateKey :: Lens' SSLCertDetail (Maybe Text)

-- | Database instance restore backup request.
--   
--   <i>See:</i> <a>instancesRestoreBackupRequest</a> smart constructor.
data InstancesRestoreBackupRequest

-- | Creates a value of <a>InstancesRestoreBackupRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>irbrRestoreBackupContext</a></li>
--   </ul>
instancesRestoreBackupRequest :: InstancesRestoreBackupRequest

-- | Parameters required to perform the restore backup operation.
irbrRestoreBackupContext :: Lens' InstancesRestoreBackupRequest (Maybe RestoreBackupContext)

-- | Backup run list results.
--   
--   <i>See:</i> <a>backupRunsListResponse</a> smart constructor.
data BackupRunsListResponse

-- | Creates a value of <a>BackupRunsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brlrNextPageToken</a></li>
--   <li><a>brlrKind</a></li>
--   <li><a>brlrItems</a></li>
--   </ul>
backupRunsListResponse :: BackupRunsListResponse

-- | The continuation token, used to page through large result sets.
--   Provide this value in a subsequent request to return the next page of
--   results.
brlrNextPageToken :: Lens' BackupRunsListResponse (Maybe Text)

-- | This is always sql#backupRunsList.
brlrKind :: Lens' BackupRunsListResponse Text

-- | A list of backup runs in reverse chronological order of the enqueued
--   time.
brlrItems :: Lens' BackupRunsListResponse [BackupRun]

-- | Database instance operation error.
--   
--   <i>See:</i> <a>operationError</a> smart constructor.
data OperationError

-- | Creates a value of <a>OperationError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>opeKind</a></li>
--   <li><a>opeCode</a></li>
--   <li><a>opeMessage</a></li>
--   </ul>
operationError :: OperationError

-- | This is always sql#operationError.
opeKind :: Lens' OperationError Text

-- | Identifies the specific error that occurred.
opeCode :: Lens' OperationError (Maybe Text)

-- | Additional information about the error encountered.
opeMessage :: Lens' OperationError (Maybe Text)

-- | Database Instance truncate log context.
--   
--   <i>See:</i> <a>truncateLogContext</a> smart constructor.
data TruncateLogContext

-- | Creates a value of <a>TruncateLogContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlcKind</a></li>
--   <li><a>tlcLogType</a></li>
--   </ul>
truncateLogContext :: TruncateLogContext

-- | This is always sql#truncateLogContext.
tlcKind :: Lens' TruncateLogContext Text

-- | The type of log to truncate. Valid values are MYSQL_GENERAL_TABLE and
--   MYSQL_SLOW_TABLE.
tlcLogType :: Lens' TruncateLogContext (Maybe Text)

-- | Database instance clone request.
--   
--   <i>See:</i> <a>instancesCloneRequest</a> smart constructor.
data InstancesCloneRequest

-- | Creates a value of <a>InstancesCloneRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icrCloneContext</a></li>
--   </ul>
instancesCloneRequest :: InstancesCloneRequest

-- | Contains details about the clone operation.
icrCloneContext :: Lens' InstancesCloneRequest (Maybe CloneContext)

-- | Read-replica configuration for connecting to the master.
--   
--   <i>See:</i> <a>replicaConfiguration</a> smart constructor.
data ReplicaConfiguration

-- | Creates a value of <a>ReplicaConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcFailoverTarget</a></li>
--   <li><a>rcKind</a></li>
--   <li><a>rcMysqlReplicaConfiguration</a></li>
--   </ul>
replicaConfiguration :: ReplicaConfiguration

-- | Specifies if the replica is the failover target. If the field is set
--   to true the replica will be designated as a failover replica. In case
--   the master instance fails, the replica instance will be promoted as
--   the new master instance. Only one replica can be specified as failover
--   target, and the replica has to be in different zone with the master
--   instance.
rcFailoverTarget :: Lens' ReplicaConfiguration (Maybe Bool)

-- | This is always sql#replicaConfiguration.
rcKind :: Lens' ReplicaConfiguration Text

-- | MySQL specific configuration when replicating from a MySQL on-premises
--   master. Replication configuration information such as the username,
--   password, certificates, and keys are not stored in the instance
--   metadata. The configuration information is used only to set up the
--   replication connection and is stored by MySQL in a file named
--   master.info in the data directory.
rcMysqlReplicaConfiguration :: Lens' ReplicaConfiguration (Maybe MySQLReplicaConfiguration)

-- | Database instance failover context.
--   
--   <i>See:</i> <a>failoverContext</a> smart constructor.
data FailoverContext

-- | Creates a value of <a>FailoverContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fcSettingsVersion</a></li>
--   <li><a>fcKind</a></li>
--   </ul>
failoverContext :: FailoverContext

-- | The current settings version of this instance. Request will be
--   rejected if this version doesn't match the current settings version.
fcSettingsVersion :: Lens' FailoverContext (Maybe Int64)

-- | This is always sql#failoverContext.
fcKind :: Lens' FailoverContext Text

-- | SslCert insert response.
--   
--   <i>See:</i> <a>sslCertsInsertResponse</a> smart constructor.
data SSLCertsInsertResponse

-- | Creates a value of <a>SSLCertsInsertResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scirServerCaCert</a></li>
--   <li><a>scirOperation</a></li>
--   <li><a>scirKind</a></li>
--   <li><a>scirClientCert</a></li>
--   </ul>
sslCertsInsertResponse :: SSLCertsInsertResponse

-- | The server Certificate Authority's certificate. If this is missing you
--   can force a new one to be generated by calling resetSslConfig method
--   on instances resource.
scirServerCaCert :: Lens' SSLCertsInsertResponse (Maybe SSLCert)

-- | The operation to track the ssl certs insert request.
scirOperation :: Lens' SSLCertsInsertResponse (Maybe Operation)

-- | This is always sql#sslCertsInsert.
scirKind :: Lens' SSLCertsInsertResponse Text

-- | The new client certificate and private key. The new certificate will
--   not work until the instance is restarted for First Generation
--   instances.
scirClientCert :: Lens' SSLCertsInsertResponse (Maybe SSLCertDetail)

-- | Database instances list response.
--   
--   <i>See:</i> <a>instancesListResponse</a> smart constructor.
data InstancesListResponse

-- | Creates a value of <a>InstancesListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilrNextPageToken</a></li>
--   <li><a>ilrKind</a></li>
--   <li><a>ilrItems</a></li>
--   </ul>
instancesListResponse :: InstancesListResponse

-- | The continuation token, used to page through large result sets.
--   Provide this value in a subsequent request to return the next page of
--   results.
ilrNextPageToken :: Lens' InstancesListResponse (Maybe Text)

-- | This is always sql#instancesList.
ilrKind :: Lens' InstancesListResponse Text

-- | List of database instance resources.
ilrItems :: Lens' InstancesListResponse [DatabaseInstance]

-- | Database instance backup configuration.
--   
--   <i>See:</i> <a>backupConfiguration</a> smart constructor.
data BackupConfiguration

-- | Creates a value of <a>BackupConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bcEnabled</a></li>
--   <li><a>bcStartTime</a></li>
--   <li><a>bcKind</a></li>
--   <li><a>bcBinaryLogEnabled</a></li>
--   </ul>
backupConfiguration :: BackupConfiguration

-- | Whether this configuration is enabled.
bcEnabled :: Lens' BackupConfiguration (Maybe Bool)

-- | Start time for the daily backup configuration in UTC timezone in the
--   24 hour format - HH:MM.
bcStartTime :: Lens' BackupConfiguration (Maybe Text)

-- | This is always sql#backupConfiguration.
bcKind :: Lens' BackupConfiguration Text

-- | Whether binary log is enabled. If backup configuration is disabled,
--   binary log must be disabled as well.
bcBinaryLogEnabled :: Lens' BackupConfiguration (Maybe Bool)

-- | Database instance import request.
--   
--   <i>See:</i> <a>instancesImportRequest</a> smart constructor.
data InstancesImportRequest

-- | Creates a value of <a>InstancesImportRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iirImportContext</a></li>
--   </ul>
instancesImportRequest :: InstancesImportRequest

-- | Contains details about the import operation.
iirImportContext :: Lens' InstancesImportRequest (Maybe ImportContext)

-- | Preferred location. This specifies where a Cloud SQL instance should
--   preferably be located, either in a specific Compute Engine zone, or
--   co-located with an App Engine application. Note that if the preferred
--   location is not available, the instance will be located as close as
--   possible within the region. Only one location may be specified.
--   
--   <i>See:</i> <a>locationPreference</a> smart constructor.
data LocationPreference

-- | Creates a value of <a>LocationPreference</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpKind</a></li>
--   <li><a>lpFollowGaeApplication</a></li>
--   <li><a>lpZone</a></li>
--   </ul>
locationPreference :: LocationPreference

-- | This is always sql#locationPreference.
lpKind :: Lens' LocationPreference Text

-- | The AppEngine application to follow, it must be in the same region as
--   the Cloud SQL instance.
lpFollowGaeApplication :: Lens' LocationPreference (Maybe Text)

-- | The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b,
--   etc.).
lpZone :: Lens' LocationPreference (Maybe Text)

-- | Flags list response.
--   
--   <i>See:</i> <a>flagsListResponse</a> smart constructor.
data FlagsListResponse

-- | Creates a value of <a>FlagsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>flrKind</a></li>
--   <li><a>flrItems</a></li>
--   </ul>
flagsListResponse :: FlagsListResponse

-- | This is always sql#flagsList.
flrKind :: Lens' FlagsListResponse Text

-- | List of flags.
flrItems :: Lens' FlagsListResponse [Flag]

-- | Instance truncate log request.
--   
--   <i>See:</i> <a>instancesTruncateLogRequest</a> smart constructor.
data InstancesTruncateLogRequest

-- | Creates a value of <a>InstancesTruncateLogRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>itlrTruncateLogContext</a></li>
--   </ul>
instancesTruncateLogRequest :: InstancesTruncateLogRequest

-- | Contains details about the truncate log operation.
itlrTruncateLogContext :: Lens' InstancesTruncateLogRequest (Maybe TruncateLogContext)

-- | Options for exporting data as SQL statements.
--   
--   <i>See:</i> <a>exportContextSQLExportOptions</a> smart constructor.
data ExportContextSQLExportOptions

-- | Creates a value of <a>ExportContextSQLExportOptions</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecsqleoSchemaOnly</a></li>
--   <li><a>ecsqleoTables</a></li>
--   </ul>
exportContextSQLExportOptions :: ExportContextSQLExportOptions

-- | Export only schemas.
ecsqleoSchemaOnly :: Lens' ExportContextSQLExportOptions (Maybe Bool)

-- | Tables to export, or that were exported, from the specified database.
--   If you specify tables, specify one and only one database.
ecsqleoTables :: Lens' ExportContextSQLExportOptions [Text]

-- | Database instance restore from backup context.
--   
--   <i>See:</i> <a>restoreBackupContext</a> smart constructor.
data RestoreBackupContext

-- | Creates a value of <a>RestoreBackupContext</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rbcInstanceId</a></li>
--   <li><a>rbcBackupRunId</a></li>
--   <li><a>rbcKind</a></li>
--   </ul>
restoreBackupContext :: RestoreBackupContext

-- | The ID of the instance that the backup was taken from.
rbcInstanceId :: Lens' RestoreBackupContext (Maybe Text)

-- | The ID of the backup run to restore from.
rbcBackupRunId :: Lens' RestoreBackupContext (Maybe Int64)

-- | This is always sql#restoreBackupContext.
rbcKind :: Lens' RestoreBackupContext Text
