# Cloud SQL Administration API . sslCerts

## Instance Methods

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.

Deletes the SSL certificate. The change will not take effect until the instance is restarted.

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.

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.

Lists all of the current SSL certificates for the instance.

### Method Details

`createEphemeral(project, instance, body)`

    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.

    Args:
      project: string, Project ID of the Cloud SQL project. (required)
      instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # SslCerts create ephemeral certificate request.
        "public_key": "A String", # PEM encoded public key to include in the signed certificate.
      }

    Returns:
      An object of the form:

        { # SslCerts Resource
        "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
        "kind": "sql#sslCert", # This is always sql#sslCert.
        "sha1Fingerprint": "A String", # Sha1 Fingerprint.
        "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
        "instance": "A String", # Name of the database instance.
        "cert": "A String", # PEM representation.
        "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
        "selfLink": "A String", # The URI of this resource.
      }

`delete(project, instance, sha1Fingerprint)`

    Deletes the SSL certificate. The change will not take effect until the instance is restarted.

    Args:
      project: string, Project ID of the project that contains the instance to be deleted. (required)
      instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
      sha1Fingerprint: string, Sha1 FingerPrint. (required)

    Returns:
      An object of the form:

        { # 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.
        "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
        "importContext": { # Database instance import context. # The context for import operation, if applicable.
          "fileType": "A String", # The file type for the specified uri.
              # SQL: The file contains SQL statements.
              # CSV: The file contains CSV data.
          "database": "A String", # 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.
          "kind": "sql#importContext", # This is always sql#importContext.
          "uri": "A String", # 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.
          "csvImportOptions": { # Options for importing data as CSV.
            "table": "A String", # The table to which CSV data is imported.
            "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
              "A String",
            ],
          },
        },
        "kind": "sql#operation", # This is always sql#operation.
        "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
        "exportContext": { # Database instance export context. # The context for export operation, if applicable.
          "kind": "sql#exportContext", # This is always sql#exportContext.
          "fileType": "A String", # The file type for the specified uri.
              # SQL: The file contains SQL statements.
              # CSV: The file contains CSV data.
          "uri": "A String", # 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.
          "csvExportOptions": { # Options for exporting data as CSV.
            "selectQuery": "A String", # The select query used to extract the data.
          },
          "databases": [ # 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.
            "A String",
          ],
          "sqlExportOptions": { # Options for exporting data as SQL statements.
            "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
              "A String",
            ],
            "schemaOnly": True or False, # Export only schemas.
          },
        },
        "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "targetProject": "A String", # The project ID of the target instance related to this operation.
        "targetId": "A String", # Name of the database instance related to this operation.
        "operationType": "A String", # 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 .
        "targetLink": "A String", # The URI of the instance related to the operation.
        "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
          "kind": "sql#operationErrors", # This is always sql#operationErrors.
          "errors": [ # The list of errors encountered while processing this operation.
            { # Database instance operation error.
              "kind": "sql#operationError", # This is always sql#operationError.
              "code": "A String", # Identifies the specific error that occurred.
              "message": "A String", # Additional information about the error encountered.
            },
          ],
        },
        "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "selfLink": "A String", # The URI of this resource.
        "user": "A String", # The email address of the user who initiated this operation.
      }

`get(project, instance, sha1Fingerprint)`

    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.

    Args:
      project: string, Project ID of the project that contains the instance. (required)
      instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
      sha1Fingerprint: string, Sha1 FingerPrint. (required)

    Returns:
      An object of the form:

        { # SslCerts Resource
        "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
        "kind": "sql#sslCert", # This is always sql#sslCert.
        "sha1Fingerprint": "A String", # Sha1 Fingerprint.
        "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
        "instance": "A String", # Name of the database instance.
        "cert": "A String", # PEM representation.
        "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
        "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
        "selfLink": "A String", # The URI of this resource.
      }

`insert(project, instance, body)`

    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.

    Args:
      project: string, Project ID of the project to which the newly created Cloud SQL instances should belong. (required)
      instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # SslCerts insert request.
        "commonName": "A String", # 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.
      }

    Returns:
      An object of the form:

        { # SslCert insert response.
        "kind": "sql#sslCertsInsert", # This is always sql#sslCertsInsert.
        "clientCert": { # SslCertDetail. # The new client certificate and private key. The new certificate will not work until the instance is restarted for First Generation instances.
          "certPrivateKey": "A String", # The private key for the client cert, in pem format. Keep private in order to protect your security.
          "certInfo": { # SslCerts Resource # The public information about the cert.
            "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
            "kind": "sql#sslCert", # This is always sql#sslCert.
            "sha1Fingerprint": "A String", # Sha1 Fingerprint.
            "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
            "instance": "A String", # Name of the database instance.
            "cert": "A String", # PEM representation.
            "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
            "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
            "selfLink": "A String", # The URI of this resource.
          },
        },
        "operation": { # 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. # The operation to track the ssl certs insert request.
          "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
          "importContext": { # Database instance import context. # The context for import operation, if applicable.
            "fileType": "A String", # The file type for the specified uri.
                # SQL: The file contains SQL statements.
                # CSV: The file contains CSV data.
            "database": "A String", # 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.
            "kind": "sql#importContext", # This is always sql#importContext.
            "uri": "A String", # 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.
            "csvImportOptions": { # Options for importing data as CSV.
              "table": "A String", # The table to which CSV data is imported.
              "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
                "A String",
              ],
            },
          },
          "kind": "sql#operation", # This is always sql#operation.
          "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
          "exportContext": { # Database instance export context. # The context for export operation, if applicable.
            "kind": "sql#exportContext", # This is always sql#exportContext.
            "fileType": "A String", # The file type for the specified uri.
                # SQL: The file contains SQL statements.
                # CSV: The file contains CSV data.
            "uri": "A String", # 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.
            "csvExportOptions": { # Options for exporting data as CSV.
              "selectQuery": "A String", # The select query used to extract the data.
            },
            "databases": [ # 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.
              "A String",
            ],
            "sqlExportOptions": { # Options for exporting data as SQL statements.
              "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
                "A String",
              ],
              "schemaOnly": True or False, # Export only schemas.
            },
          },
          "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
          "targetProject": "A String", # The project ID of the target instance related to this operation.
          "targetId": "A String", # Name of the database instance related to this operation.
          "operationType": "A String", # 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 .
          "targetLink": "A String", # The URI of the instance related to the operation.
          "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
          "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
            "kind": "sql#operationErrors", # This is always sql#operationErrors.
            "errors": [ # The list of errors encountered while processing this operation.
              { # Database instance operation error.
                "kind": "sql#operationError", # This is always sql#operationError.
                "code": "A String", # Identifies the specific error that occurred.
                "message": "A String", # Additional information about the error encountered.
              },
            ],
          },
          "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
          "selfLink": "A String", # The URI of this resource.
          "user": "A String", # The email address of the user who initiated this operation.
        },
        "serverCaCert": { # SslCerts Resource # 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.
          "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
          "kind": "sql#sslCert", # This is always sql#sslCert.
          "sha1Fingerprint": "A String", # Sha1 Fingerprint.
          "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
          "instance": "A String", # Name of the database instance.
          "cert": "A String", # PEM representation.
          "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
          "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
          "selfLink": "A String", # The URI of this resource.
        },
      }

`list(project, instance)`

    Lists all of the current SSL certificates for the instance.

    Args:
      project: string, Project ID of the project for which to list Cloud SQL instances. (required)
      instance: string, Cloud SQL instance ID. This does not include the project ID. (required)

    Returns:
      An object of the form:

        { # SslCerts list response.
        "items": [ # List of client certificates for the instance.
          { # SslCerts Resource
            "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
            "kind": "sql#sslCert", # This is always sql#sslCert.
            "sha1Fingerprint": "A String", # Sha1 Fingerprint.
            "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
            "instance": "A String", # Name of the database instance.
            "cert": "A String", # PEM representation.
            "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
            "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
            "selfLink": "A String", # The URI of this resource.
          },
        ],
        "kind": "sql#sslCertsList", # This is always sql#sslCertsList.
      }