openapi: 3.1.0 info: title: Managed Database for PostgreSQL and MySQL Access Control List Domains API description: "Managed Database for PostgreSQL and MySQL provides fully-managed relational Database Instances, with MySQL or PostgreSQL as database engines. The resource allows you to focus on development rather than administration or configuration. It comes with a high-availability mode, data replication, and automatic backups.\n\nCompared to traditional database management, which requires customers to provide their infrastructure and resources to manage their databases, Managed Database for PostgreSQL and MySQL Instance offers the user access to Database Instances without setting up the hardware or configuring the software. Scaleway handles the provisioning, manages the configuration, and provides useful features as high availability, automated backup, user management, and more.\n\n\n\n\n## Concepts\n\nRefer to our [dedicated concepts page](https://www.scaleway.com/en/docs/managed-databases-for-postgresql-and-mysql/concepts/) to find definitions of the different terms referring to Managed Database for PostgreSQL and MySQL.\n\n\n\n\n## Quickstart\n\n1. Configure your environment variables.\n \n This is an optional step that seeks to simplify your usage of the APIs.\n \n\n ```bash\n export SCW_ACCESS_KEY=\"\"\n export SCW_SECRET_KEY=\"\"\n export SCW_REGION=\"\"\n ```\n2. Edit the POST request payload you will use to create your Database Instance. Replace the parameters in the following example:\n ```json\n '{\n \"project_id\": \"d8e65f2b-cce9-40b7-80fc-6a2902db6826\",\n \"name\": \"myDB\",\n \"engine\": \"PostgreSQL-15\",\n \"tags\": [\"donnerstag\"],\n \"is_ha_cluster\": true,\n \"node_type\": \"db-pro2-xxs\",\n \"disable_backup\": false,\n \"user_name\": \"my_initial_user\",\n \"password\": \"thiZ_is_v0ry_s3cret\",\n \"volume_type\": \"sbs_5k\",\n \"volume_size\": \"30000000000\"\n }'\n ```\n\n | Parameter | Description |\n | :--------------- |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n | `project_id` | The ID of the Project you want to create your Database Instance in. To find your Project ID you can **[list the projects](/api/account/project-api/#path-projects-list-all-projects-of-an-organization)** or consult the **[Scaleway console](https://console.scaleway.com/project/settings)**. |\n | `engine` | **REQUIRED** Version ID of the database engine. To check the list of available engines you can use the following endpoint: `https://api.scaleway.com/rdb/v1/regions/$SCW_REGION/database-engines` |\n | `name` | Name of the Database Instance |\n | `node_type` | **REQUIRED** The node type. To check the list of available node types you can use the following endpoint: `https://api.scaleway.com/rdb/v1/regions/$SCW_REGION/node-types` |\n | `is_ha_cluster` | **BOOLEAN** Defines whether High Availability is enabled for the Database Instance |\n | `disable_backup` | **BOOLEAN** Defines whether automated backups are disabled for the Database Instance |\n | `tags` | The list of tags `[\"tag1\", \"tag2\", ...]` that will be associated with the Database Instance. Tags can be appended to the query of the [List Database Instances](#path-database-instances-list-database-instances) call to show results for only the Database Instances using a specific tag. You can also combine tags to list Database Instances that possess all the appended tags. |\n | `user_name` | **REQUIRED** Identifier of the default user, which is created concurrently with the Database Instance |\n | `password` | **REQUIRED** Password for the default user |\n | `volume_type` | Type of volume where data is stored. You can specify either local volume (`lssd`) or block volume (`bssd`, `sbs_5k` or `sbs_15k`). The default value is `lssd` |\n | `volume_size` | Volume size when volume_type is `bssd`, `sbs_5k` or `sbs_15k`. The value should be expressed in bytes. For example 30GB is expressed as 30000000000 |\n3. Create a Database Instance by running the following command. Make sure you include the payload you edited in the previous step.\n ```bash\n curl -X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"Content-Type: application/json\" \\\n https://api.scaleway.com/rdb/v1/regions/$SCW_REGION/instances \\\n -d '{\n \"project_id\": \"d8e65f2b-cce9-40b7-80fc-6a2902db6826\",\n \"name\": \"myDB\",\n \"engine\": \"PostgreSQL-15\",\n \"tags\": [\"donnerstag\"],\n \"is_ha_cluster\": true,\n \"node_type\": \"db-pro2-xxs\",\n \"disable_backup\": false,\n \"user_name\": \"my_initial_user\",\n \"password\": \"thiZ_is_v0ry_s3cret\",\n \"volume_type\": \"sbs_5k\",\n \"volume_size\": \"30000000000\"\n }'\n ```\n4. List your Database Instances.\n ```bash\n curl -X GET \\\n -H \"Content-Type: application/json\" \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" https://api.scaleway.com/rdb/v1/regions/$SCW_REGION/instances\n ```\n\n You should get a response like the following:\n\n \n This is a response example, the UUIDs and IP address displayed are not real.\n \n\n ```json\n {\n \"id\": \"f5122f66-fb50-4cef-aa02-487ef4fc1af0\",\n \"name\": \"myDB\",\n \"organization_id\": \"895693aa-3915-4896-8761-c2923b008be7\",\n \"project_id\": \"d8e65f2b-cce9-40b7-80fc-6a2902db6826\",\n \"status\": \"ready\",\n \"engine\": \"PostgreSQL-15\",\n \"endpoint\": {\n \"ip\": \"198.51.100.0\",\n \"port\": 22245,\n \"name\": null\n },\n \"tags\": [\n \"donnerstag\"\n ],\n \"settings\": [],\n \"backup_schedule\": {\n \"frequency\": 24,\n \"retention\": 7,\n \"disabled\": true\n },\n \"is_ha_cluster\": true,\n \"read_replicas\": [],\n \"node_type\": \"db-pro2-xxs\",\n \"volume\": {\n \"type\": \"sbs_5k\",\n \"size\": 30000000000\n }\n \"created_at\": \"2019-04-19T16:24:52.591417Z\",\n \"region\": \"fr-par\"\n }\n ```\n5. Retrieve your Database Instance IP and port from the response.\n \n In the example above, the IP and port are `198.51.100.0` and `22245`, respectively.\n \n6. Connect to your Database Instance with the database client of the engine you selected.\n For MySQL, run the following command:\n ```bash\n mysql -h --port -p -u \n ```\n\n For PostgreSQL, run:\n ```bash\n psql -h -p -U -d rdb\n ```\n\n For the recurring example, the command would look like:\n\n ```bash\n psql -h 198.51.100.0 -p 22245 -U my_initial_user -d rdb\n ```\n7. Enter the database password that you defined upon creation.\n\nYou are now connected to your Managed Database.\n\n\n\nTo perform the following steps, you must first ensure that:\n - you have an account and are logged into the [Scaleway console](https://console.scaleway.com/organization)\n - you have created an [API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page.\n - you have [installed `curl`](https://curl.se/download.html)\n\n\n\n## Technical Information\n\n### Regions\n\nScaleway's infrastructure is spread across different [regions and Availability Zones](https://www.scaleway.com/en/docs/account/reference-content/products-availability/).\n\nManaged Database for PostgreSQL and MySQL is available in the Paris, Amsterdam and Warsaw regions, which are represented by the following path parameters:\n\n- `fr-par`\n- `nl-ams`\n- `pl-waw`\n\n### PostgreSQL specifications\n\n#### Versions\n\nScaleway Database for PostgreSQL supports PostgreSQL versions 11, 12, 13, 14 and 15.\n\n#### System\n\nDifferent modules are available for installation, including TimescaleDB and PostGIS. Refer to the [Managed Database for PostgreSQL and MySQL FAQ page](https://www.scaleway.com/en/docs/managed-databases-for-postgresql-and-mysql/faq/#which-postgresql-extensions-are-available) for an extensive list of PostgreSQL extensions.\n\n#### Database Management\n\nYou can create logical databases through the Scaleway console, the Scaleway APIs or SQL.\n\n- databases created using the Scaleway console or the API are owned by an internal system user. These are called \"managed databases\".\n- databases created using SQL will be owned by the creator. These are called \"unmanaged databases\".\n\n### MySQL specifications\n\n#### Versions\n\nScaleway Database for MySQL supports MySQL 8.\n\n#### System\n\n- only the [InnoDB engine](https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html) is supported\n- the [Global Transaction Identifier (GTID)](https://dev.mysql.com/doc/refman/8.0/en/replication-gtids-concepts.html) is enabled.\n- [`mysql_native_password`](https://dev.mysql.com/doc/refman/8.0/en/native-pluggable-authentication.html) (default) and [`caching_sha2_password`](https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html) authentication are supported.\n\n#### User Management\n\n- users with an `admin` role have access to all logical databases and can create new ones.\n- users created via the API are authenticated using the default authentication plugin, which can be changed in the settings.\n\n## Technical Limitations\n\n### PostgreSQL\n\n#### User Management\n\n- users with an `admin` role have `CREATEROLE` and `CREATEDB` privileges.\n- users do NOT have `SUPERUSER` nor `REPLICATION` privileges.\n- permission management through the Scaleway console or API is only possible for the \"managed databases\".\n\n#### Backup and restoration\n\nDatabases that have been backed up and then restored retain the user permission settings in use at the time of backup. If you delete users after backup and then restore your backup in the same database, or if you restore a backup to a different database with different or no users, the permissions configured for them continue to exist, but with no associated owner. This error will put a stop to the restoration process.\n\nTo avoid this issue, we recommend you re-create the users you deleted. In the occasion you restore the backup to a new database, you must create new users with the same names.\n\n## Going Further\n\nFor more information about Managed Database for PostgreSQL and MySQL, you can check out the following pages:\n\n* [Managed Database for PostgreSQL and MySQL Documentation](https://www.scaleway.com/en/docs/managed-databases/postgresql-and-mysql/)\n* [Managed Database for PostgreSQL and MySQL FAQ](https://www.scaleway.com/en/docs/managed-databases-for-postgresql-and-mysql/faq/)\n* [Scaleway Slack Community](https://scaleway-community.slack.com/) join the #database channel\n* [Contact our support team](https://console.scaleway.com/support/tickets)\n\n### How to migrate a database\n\nIf you wish to migrate existing databases to a Managed Database for PostgreSQL or MySQL, you can refer to the [Migrating existing databases to a Database Instance](https://www.scaleway.com/en/docs/tutorials/migrate-databases-instance/) tutorial page.\n\n### Troubleshoooting\n\n#### Disk full status\n\nIf your Database Instance uses local storage, your local volume might eventually approach full capacity and shift to `disk_full` mode. This mode grants you enough space to either [upgrade your node type](https://www.scaleway.com/en/docs/managed-databases-for-postgresql-and-mysql/how-to/upgrade-version/#how-to-change-the-node-type) or [clear out space in your volume](https://www.scaleway.com/en/docs/managed-databases-for-postgresql-and-mysql/troubleshooting/disk-full/)." version: v1 servers: - url: https://api.scaleway.com tags: - name: Domains description: "A container is provided with an automatically generated domain through which it is accessible.\n \nAlternatively, custom domains can be assigned to containers in order to facilitate their use.\n" paths: /containers/v1/regions/{region}/domains: get: tags: - Domains operationId: ListDomains summary: List all custom domains the caller can access (read permission). description: "By default, the custom domains listed are ordered by creation date in ascending order. This can be modified via the `order_by` field.\n \nAdditional parameters can be set in the query to filter the output, such as `organization_id`, `project_id`, `namespace_id`, or `container_id`." parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: query name: page schema: type: integer format: int32 - in: query name: page_size schema: type: integer format: uint32 - in: query name: order_by schema: $ref: '#/components/schemas/scaleway.containers.v1.ListDomainsRequest.OrderBy' - in: query name: organization_id schema: type: string - in: query name: project_id schema: type: string - in: query name: namespace_id schema: type: string - in: query name: container_id schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.containers.v1.ListDomainsResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X GET \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/containers/v1/regions/{region}/domains\"" - lang: HTTPie source: "http GET \"https://api.scaleway.com/containers/v1/regions/{region}/domains\" \\\n X-Auth-Token:$SCW_SECRET_KEY" post: tags: - Domains operationId: CreateDomain summary: Create a new custom domain for the container with the specified ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.containers.v1.Domain' requestBody: required: true content: application/json: schema: type: object properties: container_id: type: string description: Unique ID of the container the domain will be assigned to. hostname: type: string description: Domain assigned to the container. tags: type: array description: A list of arbitrary tags associated with the domain. items: type: string required: - container_id - hostname x-properties-order: - container_id - hostname - tags security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"container_id\":\"string\",\"hostname\":\"string\"}' \\\n \"https://api.scaleway.com/containers/v1/regions/{region}/domains\"" - lang: HTTPie source: "http POST \"https://api.scaleway.com/containers/v1/regions/{region}/domains\" \\\n X-Auth-Token:$SCW_SECRET_KEY \\\n container_id=\"string\" \\\n hostname=\"string\"" /containers/v1/regions/{region}/domains/{domain_id}: get: tags: - Domains operationId: GetDomain summary: Get the custom domain associated with the specified ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: domain_id required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.containers.v1.Domain' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X GET \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/containers/v1/regions/{region}/domains/{domain_id}\"" - lang: HTTPie source: "http GET \"https://api.scaleway.com/containers/v1/regions/{region}/domains/{domain_id}\" \\\n X-Auth-Token:$SCW_SECRET_KEY" patch: tags: - Domains operationId: UpdateDomain summary: Update the domain associated with the specified ID. description: Only fields present in the request are updated; others are left untouched. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: domain_id description: UUID of the domain to update. required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.containers.v1.Domain' requestBody: required: true content: application/json: schema: type: object properties: tags: type: array description: A list of arbitrary tags associated with the domain. nullable: true items: type: string x-properties-order: - tags security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X PATCH \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{}' \\\n \"https://api.scaleway.com/containers/v1/regions/{region}/domains/{domain_id}\"" - lang: HTTPie source: "http PATCH \"https://api.scaleway.com/containers/v1/regions/{region}/domains/{domain_id}\" \\\n X-Auth-Token:$SCW_SECRET_KEY" delete: tags: - Domains operationId: DeleteDomain summary: Delete the custom domain associated with the specified ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: domain_id description: UUID of the domain to delete. required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.containers.v1.Domain' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X DELETE \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/containers/v1/regions/{region}/domains/{domain_id}\"" - lang: HTTPie source: "http DELETE \"https://api.scaleway.com/containers/v1/regions/{region}/domains/{domain_id}\" \\\n X-Auth-Token:$SCW_SECRET_KEY" /functions/v1beta1/regions/{region}/domains: get: tags: - Domains operationId: ListDomains summary: List all domain name bindings description: List all domain name bindings in a specified region. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: query name: page description: Page number. schema: type: integer format: int32 - in: query name: page_size description: Number of domains per page. schema: type: integer format: uint32 - in: query name: order_by description: Order of the domains. schema: type: string enum: - created_at_asc - created_at_desc - hostname_asc - hostname_desc default: created_at_asc - in: query name: function_id description: UUID of the function the domain is associated with. required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.functions.v1beta1.ListDomainsResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X GET \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/functions/v1beta1/regions/{region}/domains?function_id=string\"" - lang: HTTPie source: "http GET \"https://api.scaleway.com/functions/v1beta1/regions/{region}/domains\" \\\n X-Auth-Token:$SCW_SECRET_KEY \\\n function_id==string" post: tags: - Domains operationId: CreateDomain summary: Create a domain name binding description: Create a domain name binding for the function with the specified ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.functions.v1beta1.Domain' requestBody: required: true content: application/json: schema: type: object properties: hostname: type: string description: Hostname to create. function_id: type: string description: UUID of the function to associate the domain with. x-properties-order: - hostname - function_id security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"function_id\":\"string\",\"hostname\":\"string\"}' \\\n \"https://api.scaleway.com/functions/v1beta1/regions/{region}/domains\"" - lang: HTTPie source: "http POST \"https://api.scaleway.com/functions/v1beta1/regions/{region}/domains\" \\\n X-Auth-Token:$SCW_SECRET_KEY \\\n function_id=\"string\" \\\n hostname=\"string\"" /functions/v1beta1/regions/{region}/domains/{domain_id}: get: tags: - Domains operationId: GetDomain summary: Get a domain name binding description: Get a domain name binding for the function with the specified ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: domain_id description: UUID of the domain to get. required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.functions.v1beta1.Domain' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X GET \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/functions/v1beta1/regions/{region}/domains/{domain_id}\"" - lang: HTTPie source: "http GET \"https://api.scaleway.com/functions/v1beta1/regions/{region}/domains/{domain_id}\" \\\n X-Auth-Token:$SCW_SECRET_KEY" delete: tags: - Domains operationId: DeleteDomain summary: Delete a domain name binding description: Delete a domain name binding for the function with the specified ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: domain_id description: UUID of the domain to delete. required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.functions.v1beta1.Domain' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X DELETE \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/functions/v1beta1/regions/{region}/domains/{domain_id}\"" - lang: HTTPie source: "http DELETE \"https://api.scaleway.com/functions/v1beta1/regions/{region}/domains/{domain_id}\" \\\n X-Auth-Token:$SCW_SECRET_KEY" /transactional-email/v1alpha1/regions/{region}/domains: get: tags: - Domains operationId: ListDomains summary: List domains description: Retrieve domains in a specific Project or in a specific Organization using the `region` parameter. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - in: query name: page description: Requested page number. Value must be greater or equal to 1. schema: type: integer format: int32 - in: query name: page_size description: Requested page size. Value must be between 1 and 1000. schema: type: integer format: uint32 - in: query name: project_id description: (Optional) ID of the Project in which to list the domains. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: status description: (Optional) List domains under specific statuses. schema: type: array items: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Status' - in: query name: organization_id description: (Optional) ID of the Organization in which to list the domains. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: name description: (Optional) Names of the domains to list. schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListDomainsResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X GET \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains\"" - lang: HTTPie source: "http GET \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains\" \\\n X-Auth-Token:$SCW_SECRET_KEY" post: tags: - Domains operationId: CreateDomain summary: Register a domain in a project description: You must specify the `region`, `project_id` and `domain_name` to register a domain in a specific Project. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain' requestBody: required: true content: application/json: schema: type: object properties: project_id: type: string description: ID of the project to which the domain belongs. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d domain_name: type: string description: Fully qualified domain dame. accept_tos: type: boolean description: Deprecated. Accept Scaleway's Terms of Service. deprecated: true autoconfig: type: boolean description: Activate auto-configuration of the domain's DNS zone. x-properties-order: - project_id - domain_name - accept_tos - autoconfig security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"accept_tos\": false,\n \"autoconfig\": false,\n \"domain_name\": \"string\",\n \"project_id\": \"6170692e-7363-616c-6577-61792e636f6d\"\n }' \\\n \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains\"" - lang: HTTPie source: "http POST \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains\" \\\n X-Auth-Token:$SCW_SECRET_KEY \\\n accept_tos:=false \\\n autoconfig:=false \\\n domain_name=\"string\" \\\n project_id=\"6170692e-7363-616c-6577-61792e636f6d\"" /transactional-email/v1alpha1/regions/{region}/domains/{domain_id}: get: tags: - Domains operationId: GetDomain summary: Get information about a domain description: Retrieve information about a specific domain using the `region` and `domain_id` parameters. Monitor your domain's reputation and improve **average** and **bad** reputation statuses, using your domain's **Email activity** tab on the [Scaleway console](https://console.scaleway.com/transactional-email/domains) to get a more detailed report. Check out our [dedicated documentation](https://www.scaleway.com/en/docs/managed-services/transactional-email/reference-content/understanding-tem-reputation-score/) to improve your domain's reputation. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - in: path name: domain_id description: ID of the domain. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X GET \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}\"" - lang: HTTPie source: "http GET \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}\" \\\n X-Auth-Token:$SCW_SECRET_KEY" patch: tags: - Domains operationId: UpdateDomain summary: Update a domain description: Update a domain auto-configuration. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - in: path name: domain_id description: ID of the domain to update. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain' requestBody: required: true content: application/json: schema: type: object properties: autoconfig: type: boolean description: (Optional) If set to true, activate auto-configuration of the domain's DNS zone. nullable: true x-properties-order: - autoconfig security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X PATCH \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{}' \\\n \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}\"" - lang: HTTPie source: "http PATCH \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}\" \\\n X-Auth-Token:$SCW_SECRET_KEY" /transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/check: post: tags: - Domains operationId: CheckDomain summary: Domain DNS check description: Perform an immediate DNS check of a domain using the `region` and `domain_id` parameters. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - in: path name: domain_id description: ID of the domain to check. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain' requestBody: required: true content: application/json: schema: type: object security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{}' \\\n \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/check\"" - lang: HTTPie source: "http POST \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/check\" \\\n X-Auth-Token:$SCW_SECRET_KEY" /transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/revoke: post: tags: - Domains operationId: RevokeDomain summary: Delete a domain description: You must specify the domain you want to delete by the `region` and `domain_id`. Deleting a domain is permanent and cannot be undone. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - in: path name: domain_id description: ID of the domain to delete. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain' requestBody: required: true content: application/json: schema: type: object security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{}' \\\n \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/revoke\"" - lang: HTTPie source: "http POST \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/revoke\" \\\n X-Auth-Token:$SCW_SECRET_KEY" /transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/verification: get: tags: - Domains operationId: GetDomainLastStatus summary: Display SPF, DKIM, DMARC and MX records status and potential errors description: Display SPF, DKIM, DMARC and MX records status and potential errors, including the found records to make debugging easier. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - in: path name: domain_id description: ID of the domain to get records status. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus' security: - scaleway: [] x-codeSamples: - lang: cURL source: "curl -X GET \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/verification\"" - lang: HTTPie source: "http GET \"https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/verification\" \\\n X-Auth-Token:$SCW_SECRET_KEY" components: schemas: scaleway.transactional_email.v1alpha1.Domain: type: object properties: id: type: string description: ID of the domain. organization_id: type: string description: ID of the domain's Organization. project_id: type: string description: ID of the domain's Project. name: type: string description: Domain name (example.com). status: type: string description: Status of the domain. enum: - unknown - checked - unchecked - invalid - locked - revoked - pending - autoconfiguring x-enum-descriptions: values: unknown: If unspecified, the status of the domain is unknown by default checked: The domain is checked unchecked: The domain is unchecked invalid: The domain is invalid locked: The domain is locked revoked: The domain is revoked pending: The domain is pending, waiting to be checked autoconfiguring: The domain is in process of auto-configuration of the domain's DNS zone default: unknown created_at: type: string description: Date and time of domain creation. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true next_check_at: type: string description: Date and time of the next scheduled check. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true last_valid_at: type: string description: Date and time the domain was last valid. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true revoked_at: type: string description: Date and time of the domain's deletion. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true last_error: type: string description: Deprecated. Error message returned if the last check failed. deprecated: true nullable: true spf_config: type: string description: Snippet of the SPF record to register in the DNS zone. dkim_config: type: string description: DKIM public key to record in the DNS zone. statistics: type: object description: Domain's statistics. properties: total_count: type: integer format: uint32 sent_count: type: integer format: uint32 failed_count: type: integer format: uint32 canceled_count: type: integer format: uint32 x-properties-order: - total_count - sent_count - failed_count - canceled_count reputation: type: object description: The domain's reputation is available when your domain is checked and has sent enough emails. properties: status: type: string description: Status of your domain's reputation. enum: - unknown_status - excellent - good - average - bad x-enum-descriptions: values: unknown_status: If unspecified, the status of the domain's reputation is unknown by default excellent: The domain has an excellent reputation good: The domain has a good reputation average: The domain has an average reputation. bad: The domain has a bad reputation. default: unknown_status score: type: integer description: A range from 0 to 100 that determines your domain's reputation score. A score of `0` means a bad domain reputation and a score of `100` means an excellent domain reputation. format: uint32 scored_at: type: string description: Time and date the score was calculated. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true previous_score: type: integer description: The previously-calculated domain's reputation score. format: uint32 nullable: true previous_scored_at: type: string description: Time and date the previous reputation score was calculated. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true x-properties-order: - status - score - scored_at - previous_score - previous_scored_at records: type: object description: List of records to configure to validate a domain. properties: dmarc: type: object description: DMARC TXT record specification. properties: name: type: string description: Name of the DMARC TXT record. value: type: string description: Value of the DMARC TXT record. x-properties-order: - name - value dkim: type: object description: DKIM TXT record specification. properties: name: type: string description: Name of the DKIM TXT record. value: type: string description: Value of the DKIM TXT record. x-properties-order: - name - value spf: type: object description: SPF TXT record specification. properties: name: type: string description: Name of the SPF TXT record. value: type: string description: Value of the SPF TXT record. x-properties-order: - name - value mx: type: object description: MX record specification. properties: name: type: string description: Name of the MX record. value: type: string description: Value of the MX record. x-properties-order: - name - value x-properties-order: - dmarc - dkim - spf - mx autoconfig: type: boolean description: Status of auto-configuration for the domain's DNS zone. region: type: string description: The region you want to target x-properties-order: - id - organization_id - project_id - name - status - created_at - next_check_at - last_valid_at - revoked_at - last_error - spf_config - dkim_config - statistics - reputation - records - autoconfig - region scaleway.containers.v1.ListDomainsResponse: type: object properties: domains: type: array items: $ref: '#/components/schemas/scaleway.containers.v1.Domain' total_count: type: integer format: uint64 x-properties-order: - domains - total_count scaleway.functions.v1beta1.ListDomainsResponse: type: object properties: domains: type: array description: Array of domains. items: $ref: '#/components/schemas/scaleway.functions.v1beta1.Domain' total_count: type: integer description: Total number of domains. format: uint32 x-properties-order: - domains - total_count scaleway.transactional_email.v1alpha1.ListDomainsResponse: type: object properties: total_count: type: integer description: Number of domains that match the request (without pagination). format: uint32 domains: type: array description: Single page of domains matching the requested criteria. items: $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain' x-properties-order: - total_count - domains scaleway.functions.v1beta1.Domain: type: object properties: id: type: string description: UUID of the domain. hostname: type: string description: Hostname associated with the function. function_id: type: string description: UUID of the function the domain is associated with. url: type: string description: URL of the function. status: type: string description: State of the domain. enum: - unknown - ready - deleting - error - creating - pending default: unknown error_message: type: string description: Error message if the domain is in "error" state. nullable: true x-properties-order: - id - hostname - function_id - url - status - error_message scaleway.transactional_email.v1alpha1.DomainLastStatus: type: object properties: domain_id: type: string description: The ID of the domain. domain_name: type: string description: The domain name (example.com). spf_record: type: object description: The SPF record verification data. properties: status: type: string description: Status of the SPF record's configuration. enum: - unknown_record_status - valid - invalid - not_found x-enum-descriptions: values: unknown_record_status: If unspecified, the status of the domain's record is unknown by default valid: The record is valid invalid: The record is invalid not_found: The record was not found default: unknown_record_status last_valid_at: type: string description: Time and date the SPF record was last valid. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true error: type: string description: An error text displays in case the record is not valid. nullable: true x-properties-order: - status - last_valid_at - error dkim_record: type: object description: The DKIM record verification data. properties: status: type: string description: Status of the DKIM record's configuration. enum: - unknown_record_status - valid - invalid - not_found x-enum-descriptions: values: unknown_record_status: If unspecified, the status of the domain's record is unknown by default valid: The record is valid invalid: The record is invalid not_found: The record was not found default: unknown_record_status last_valid_at: type: string description: Time and date the DKIM record was last valid. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true error: type: string description: An error text displays in case the record is not valid. nullable: true x-properties-order: - status - last_valid_at - error dmarc_record: type: object description: The DMARC record verification data. properties: status: type: string description: Status of the DMARC record's configuration. enum: - unknown_record_status - valid - invalid - not_found x-enum-descriptions: values: unknown_record_status: If unspecified, the status of the domain's record is unknown by default valid: The record is valid invalid: The record is invalid not_found: The record was not found default: unknown_record_status last_valid_at: type: string description: Time and date the DMARC record was last valid. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true error: type: string description: An error text displays in case the record is not valid. nullable: true x-properties-order: - status - last_valid_at - error mx_record: type: object description: The MX record verification data. properties: status: type: string description: 'Status of the MX record''s configuration. Status of the MX record''s configuration. This record is optional to validate a domain, but highly recommended.' enum: - unknown_record_status - valid - invalid - not_found x-enum-descriptions: values: unknown_record_status: If unspecified, the status of the domain's record is unknown by default valid: The record is valid invalid: The record is invalid not_found: The record was not found default: unknown_record_status last_valid_at: type: string description: Time and date the MX record was last valid. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true error: type: string description: An error text displays in case the record is not valid. nullable: true x-properties-order: - status - last_valid_at - error autoconfig_state: type: object description: The verification state of domain auto-configuration. properties: enabled: type: boolean description: Enable or disable the auto-configuration of domain DNS records. autoconfigurable: type: boolean description: Whether the domain can be auto-configured or not. reason: type: string description: The reason that the domain cannot be auto-configurable. enum: - unknown_reason - permission_denied - domain_not_found x-enum-descriptions: values: unknown_reason: If not specified, the auto-configuration state is unknown by default permission_denied: The token doesn't have the necessary permissions to manage the domain's DNS records domain_not_found: The domain does not exist or isn't manageable by the token default: unknown_reason x-properties-order: - enabled - autoconfigurable - reason x-properties-order: - domain_id - domain_name - spf_record - dkim_record - dmarc_record - mx_record - autoconfig_state scaleway.containers.v1.ListDomainsRequest.OrderBy: type: string enum: - created_at_asc - created_at_desc - hostname_asc - hostname_desc default: created_at_asc scaleway.containers.v1.Domain: type: object properties: id: type: string description: Domain unique ID. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d container_id: type: string description: Unique ID of the container the domain is assigned to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d hostname: type: string description: Domain assigned to the container. status: type: string description: Domain status. enum: - unknown_status - creating - updating - deleting - ready - error - locked - locking - upgrading x-enum-descriptions: values: unknown_status: Unknown status creating: Creating status. Resource is being created updating: Updating status. Resource is being redeployed to match the desired configuration deleting: Deleting status ready: Ready status error: Error status locked: Locked status. Resource cannot be modified locking: Locking status upgrading: Upgrading status. Resource is being upgraded as part of a planned maintenance. No downtime is expected default: unknown_status error_message: type: string description: Domain last error message. created_at: type: string description: Domain creation date. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true updated_at: type: string description: Domain last update date. (RFC 3339 format) format: date-time example: '2022-03-22T12:34:56.123456Z' nullable: true tags: type: array description: A list of arbitrary tags associated with the domain. items: type: string x-properties-order: - id - container_id - hostname - status - error_message - created_at - updated_at - tags scaleway.transactional_email.v1alpha1.Domain.Status: type: string enum: - unknown - checked - unchecked - invalid - locked - revoked - pending - autoconfiguring x-enum-descriptions: values: unknown: If unspecified, the status of the domain is unknown by default checked: The domain is checked unchecked: The domain is unchecked invalid: The domain is invalid locked: The domain is locked revoked: The domain is revoked pending: The domain is pending, waiting to be checked autoconfiguring: The domain is in process of auto-configuration of the domain's DNS zone default: unknown securitySchemes: scaleway: in: header name: X-Auth-Token type: apiKey