# MySQL

## Example Usage

***

{% tabs %}
{% tab title="Terraform" %}
{% code title="mysql-integration.tf" %}

```tf
resource "apono_integration" "mysql-integration" {
  name                     = "MySQL"
  type                     = "mysql"
  connector_id             = "apono-connector-id"
  connected_resource_types = ["mysql-instance"]
  metadata = {
    hostname = "<Hostname>"
    port = "<Port>"
    credentials_rotation_period_in_days = "<Credentials rotation period (in days)>"
    credentials_cleanup_period_in_days = "<User cleanup after access is revoked (in days)>"
    custom_permissions_json = "<Custom Permissions (JSON array that maps custom permissions to actions)>"
    hostname_user_override = "<Hostname User Override>"
    username_transform_override = "<Username Transform>"
  }
  kubernetes_secret = {
    name      = "name_template_value"
    namespace = "namespace_template_value"
  }
}
```

{% endcode %}
{% endtab %}

{% tab title="Terraform V2" %}
{% code title="mysql-integration.tf" %}

```tf
resource "apono_resource_integration" "mysql-integration" {
  name                     = "MySQL"
  type                     = "mysql"
  connector_id             = "apono-connector-id"
  connected_resource_types = ["mysql-instance"]
  integration_config = {
    hostname = "<Hostname>"
    port = "<Port>"
    credentials_rotation_period_in_days = "<Credentials rotation period (in days)>"
    credentials_cleanup_period_in_days = "<User cleanup after access is revoked (in days)>"
    custom_permissions_json = "<Custom Permissions (JSON array that maps custom permissions to actions)>"
    hostname_user_override = "<Hostname User Override>"
    username_transform_override = "<Username Transform>"
  }
  secret_store_config = {
    kubernetes = {
      name      = "name_template_value"
      namespace = "namespace_template_value"
    }
}
```

{% endcode %}
{% endtab %}

{% tab title="Public API" %}
{% code title="mysql-integration.json" %}

```json
{
    "mysql-integration": {
        "name": "MySQL",
        "type": "mysql",
        "connector_id": "apono-connector-id",
        "connected_resource_types": [
            "mysql-instance"
        ],
        "integration_config": {
            "hostname": "<Hostname>",
            "port": "<Port>",
            "credentials_rotation_period_in_days": "<Credentials rotation period (in days)>",
            "credentials_cleanup_period_in_days": "<User cleanup after access is revoked (in days)>",
            "custom_permissions_json": "<Custom Permissions (JSON array that maps custom permissions to actions)>",
            "hostname_user_override": "<Hostname User Override>",
            "username_transform_override": "<Username Transform>",
        },
	"secret_store_config": {
    	    "name": "name_template_value",
    	    "namespace": "namespace_template_value"
  	    }
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Schema

***

* `type` mysql
* `connected_resource_types` List of resource types to sync.

<details>

<summary>Available resource types you can use</summary>

* mysql-instance
* mysql-database
* mysql-table
* mysql-role

</details>

### Integration Config

***

* `hostname` (Required | String) Hostname
* `port` (Required | String) Port
  * Default value: `3306`
* `credentials_rotation_period_in_days` (Optional | String) Credentials rotation period (in days)
* `credentials_cleanup_period_in_days` (Optional | String) User cleanup after access is revoked (in days)
* `custom_permissions_json` (Optional | String) Custom Permissions (JSON array that maps custom permissions to actions)
* `hostname_user_override` (Optional | String) Hostname User Override
* `username_transform_override` (Optional | String) Username Transform
