create-geographic-access-custom-region
dci create-geographic-access-custom-region
Creates a custom region owned by the authenticated tenant. The tenant must be a customer-hierarchy root. Requires the UsersManager permission.
Request
Content-Type: application/json
Schema
{
"type": "object",
"additionalProperties": false,
"required": [
"name",
"countryCodes"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"countryCodes": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
}
}
}
}
Output
Created
By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.
| Field | Type | Description |
|---|---|---|
id | string | Stable service-generated custom-region ID. |
customerId | string | Authenticated tenant that owns the custom region. |
name | string | Customer-visible custom-region name. |
countryCodes | array of string | Canonical ISO 3166-1 alpha-2 country codes in the region. |
createdBy | string | User or service-account identifier that created the region. |
timeCreated | string (date-time) | Time the region was created. |
timeModified | string (date-time) | Time the region was last modified. |
Example response (--output json)
{
"id": "cr_01J6M8Q9H3Y7T2K5V4N1P0X8ZA",
"customerId": "Kp2mN8qL4vR0sT1wX3yZ",
"name": "Europe",
"countryCodes": [
"DE",
"FR"
],
"createdBy": "service-account-1",
"timeCreated": "2026-08-30T10:00:00Z",
"timeModified": "2026-08-30T10:00:00Z"
}
Raw JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"id",
"customerId",
"name",
"countryCodes",
"createdBy",
"timeCreated",
"timeModified"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stable service-generated custom-region ID."
},
"customerId": {
"type": "string",
"description": "Authenticated tenant that owns the custom region."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Customer-visible custom-region name."
},
"countryCodes": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"description": "Canonical ISO 3166-1 alpha-2 country codes in the region.",
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
}
},
"createdBy": {
"type": "string",
"description": "User or service-account identifier that created the region."
},
"timeCreated": {
"type": "string",
"format": "date-time",
"description": "Time the region was created."
},
"timeModified": {
"type": "string",
"format": "date-time",
"description": "Time the region was last modified."
}
}
}
Errors
On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.
| HTTP status | Exit code | Error code | Meaning |
|---|---|---|---|
| 400 | 30 | VALIDATION_ERROR | The arguments or request body were rejected. Review the command's flags and payload. |
| 401 | 10 | AUTHENTICATION_FAILED | Not signed in, or the API token is invalid. Run dci login or check DCI_API_KEY. |
| 403 | 11 | PERMISSION_DENIED | The DoiT user or the active customer context does not have access. |
| 404 | 20 | RESOURCE_NOT_FOUND | The requested resource does not exist. Check the identifier argument. |
| 409 | 21 | RESOURCE_CONFLICT | The operation conflicts with the resource's current state. |
| 429 | 50 | RATE_LIMITED | Too many requests. Retryable — the CLI reports the server-provided delay. |
| 500, 503 | 40 | API_SERVER_ERROR | The API failed to process the request. Retryable; contact DoiT support if it persists. |
Aliases: creategeographicaccesscustomregion