Region

Represents a region, which is a geographical location with one or more zones.

CompanyCloudCloud InfrastructureSovereigntyEuropeOpen StandardsMulti-CloudInteroperabilityOpenAPI

Properties

Name Type Description
metadata object
spec object
View JSON Schema on GitHub

JSON Schema

eu-sovereign-cloud-api-region-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/eu-sovereign-cloud-api/main/json-schema/eu-sovereign-cloud-api-region-schema.json",
  "title": "Region",
  "description": "Represents a region, which is a geographical location\nwith one or more zones.\n",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/eu-sovereign-cloud-api-foundation-region-v1-openapi.yml#/components/schemas/Region",
  "type": "object",
  "required": [
    "spec"
  ],
  "properties": {
    "metadata": {
      "$ref": "#/$defs/GlobalResourceMetadata"
    },
    "spec": {
      "$ref": "#/$defs/RegionSpec"
    }
  },
  "$defs": {
    "GlobalResourceMetadata": {
      "description": "Metadata for global resources with name, permission, modification and type information.\n",
      "allOf": [
        {
          "$ref": "#/$defs/NameMetadata"
        },
        {
          "$ref": "#/$defs/PermissionMetadata"
        },
        {
          "$ref": "#/$defs/ModificationMetadata"
        },
        {
          "$ref": "#/$defs/TypeMetadata"
        }
      ]
    },
    "ModificationMetadata": {
      "type": "object",
      "readOnly": true,
      "description": "Base metadata for all resources with optional region references",
      "required": [
        "createdAt",
        "lastModifiedAt",
        "resourceVersion"
      ],
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Indicates the time when the resource was created. The field is set by the provider and should not be modified by the user."
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time",
          "description": "If set, indicates the time when the resource was marked for deletion. Resources with this field set are considered pending deletion."
        },
        "lastModifiedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Indicates the time when the resource was created or last modified. Field is used for \"If-Unmodified-Since\" logic for concurrency control. The provider guarantees that a modification on a single resource can happen only once every millisecond."
        },
        "resourceVersion": {
          "type": "integer",
          "description": "Incremented on every modification of the resource. Used for optimistic concurrency control.",
          "minimum": 1,
          "format": "int64"
        }
      }
    },
    "NameMetadata": {
      "type": "object",
      "readOnly": true,
      "required": [
        "name"
      ],
      "description": "Metadata for resource names",
      "properties": {
        "name": {
          "type": "string",
          "description": "Resource identifier in dash-case (kebab-case) format. Must start and end with an alphanumeric character.\nCan contain lowercase letters, numbers, and hyphens. Multiple segments can be joined with dots.\nEach segment follows the same rules.\n",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$"
        }
      }
    },
    "PermissionMetadata": {
      "type": "object",
      "readOnly": true,
      "description": "Metadata for permission management",
      "required": [
        "provider",
        "resource",
        "verb"
      ],
      "properties": {
        "provider": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        "resource": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "verb": {
          "type": "string",
          "minLength": 1,
          "maxLength": 7
        }
      }
    },
    "Provider": {
      "type": "object",
      "description": "A provider of cloud services\n",
      "required": [
        "name",
        "version",
        "url"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64,
          "x-oapi-codegen-extra-tags": {
            "x-kubebuilder-validation-min-length": "1",
            "x-kubebuilder-validation-max-length": "64"
          }
        },
        "version": {
          "type": "string",
          "minLength": 1,
          "maxLength": 16,
          "x-oapi-codegen-extra-tags": {
            "x-kubebuilder-validation-min-length": "1",
            "x-kubebuilder-validation-max-length": "16"
          }
        },
        "url": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4000,
          "x-oapi-codegen-extra-tags": {
            "x-kubebuilder-validation-min-length": "1",
            "x-kubebuilder-validation-max-length": "4000"
          }
        }
      }
    },
    "ReferenceURN": {
      "type": "string",
      "minLength": 1,
      "description": "A unique resource name (URN) used to identify and reference this resource.\n\nThe URN is NOT a URL — it does not contain a protocol scheme (http/https), a host,\nor any endpoint-specific prefix. It is a portable, transport-agnostic identifier.\nA configured SDK client — which knows the provider's base URL and endpoint mapping —\ncan derive a URL from a URN, but the URN alone cannot be turned into a URL without\nthat SDK configuration context. This separation keeps the URN portable across\nenvironments and CSP deployments.\n\nThe full URN format is:\n  `{provider}/{version}/tenants/{tenant}/workspaces/{workspace}/{type}/{name}`\n\nFor hierarchical (nested) resources, additional parent path segments are included:\n  `seca.network/v1/tenants/tn-1/workspaces/ws-1/networks/my-net/route-tables/my-rt`\n\n### Automatic Prefix Inference\n\nIn most cases, the prefix of the URN can be automatically derived in the given context.\nTo simplify usage, only the resource type and name might be specified as a reference\nusing the `<type>/<name>` notation. The suffix can be made more specific by adding\nadditional segments separated by slashes.\n\nThe prefix is automatically inferred from the context. For example, if the resource is a\nblock storage in the same workspace the reference can be specified as\n`block-storages/my-block-storage`. If the resource is a block storage in a different workspace, the\nreference can be specified as `workspaces/ws-1/block-storages/my-block-storage`.\n\nFor automatic prefix inference, the following rules apply:\n- the version is inferred from the current resource version\n- the workspace is inferred from the current workspace\n- the region is inferred from the current region\n- the provider is inferred from the type and context of the usage\n\nThe prefix inference is resolved on admission into the full URN format, which makes it\nmostly suitable for human use.\n",
      "maxLength": 255
    },
    "RegionSpec": {
      "type": "object",
      "description": "The specification of a region, including the available zones and providers.\n",
      "required": [
        "availableZones",
        "providers"
      ],
      "properties": {
        "availableZones": {
          "description": "The list of zones available in the region.\n",
          "type": "array",
          "minItems": 1,
          "maxItems": 32,
          "items": {
            "$ref": "#/$defs/Zone"
          },
          "x-oapi-codegen-extra-tags": {
            "x-kubebuilder-validation-items-min-length": "1",
            "x-kubebuilder-validation-items-max-length": "32",
            "x-kubebuilder-validation-min-items": "1",
            "x-kubebuilder-validation-max-items": "32"
          }
        },
        "providers": {
          "description": "The list of providers available in the region.\n",
          "type": "array",
          "minItems": 1,
          "maxItems": 64,
          "items": {
            "$ref": "#/$defs/Provider"
          },
          "x-oapi-codegen-extra-tags": {
            "x-kubebuilder-validation-min-items": "1",
            "x-kubebuilder-validation-max-items": "64"
          }
        }
      }
    },
    "TypeMetadata": {
      "type": "object",
      "readOnly": true,
      "required": [
        "apiVersion",
        "kind",
        "ref"
      ],
      "description": "Metadata for all resources with type information.\n",
      "properties": {
        "apiVersion": {
          "type": "string",
          "description": "API version of the resource",
          "minLength": 1,
          "maxLength": 16,
          "default": "v1"
        },
        "kind": {
          "type": "string",
          "description": "Type of the resource",
          "enum": [
            "activity-log",
            "block-storage",
            "image",
            "instance",
            "instance-sku",
            "internet-gateway",
            "network",
            "network-load-balancer",
            "network-sku",
            "nic",
            "object-storage-account",
            "public-ip",
            "region",
            "role",
            "role-assignment",
            "routing-table",
            "security-group",
            "security-group-rule",
            "storage-sku",
            "subnet",
            "workspace"
          ],
          "x-enumNames": [
            "ResourceKindActivityLog",
            "ResourceKindBlockStorage",
            "ResourceKindImage",
            "ResourceKindInstance",
            "ResourceKindInstanceSku",
            "ResourceKindInternetGateway",
            "ResourceKindNetwork",
            "ResourceKindNetworkLoadBalancer",
            "ResourceKindNetworkSku",
            "ResourceKindNic",
            "ResourceKindObjectStorageAccount",
            "ResourceKindPublicIP",
            "ResourceKindRegion",
            "ResourceKindRole",
            "ResourceKindRoleAssignment",
            "ResourceKindRoutingTable",
            "ResourceKindSecurityGroup",
            "ResourceKindSecurityGroupRule",
            "ResourceKindStorageSku",
            "ResourceKindSubnet",
            "ResourceKindWorkspace"
          ]
        },
        "ref": {
          "$ref": "#/$defs/ReferenceURN"
        }
      }
    },
    "Zone": {
      "type": "string",
      "description": "Reference to a specific zone within a region",
      "minLength": 1,
      "maxLength": 32
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/eu-sovereign-cloud-api-region"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.