{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://dwp.gov.uk/exchange/publishing-tools/apigw/meta-schema.json", "title": "Meta", "type": "object", "properties": { "workspace": { "$id": "#root/workspace", "title": "Workspace", "type": "string", "minLength": 2, "maxLength": 60, "examples": [ "integration" ], "pattern": "^(?!-)[a-zA-Z0-9./_-]*$" }, "product_name": { "$id": "#root/product_name", "title": "Product name", "type": "string", "minLength": 2, "maxLength": 60, "examples": [ "NHS Charge Exemption" ], "pattern": "^(?!-\\s)[a-zA-Z0-9\\s._-]+$" }, "product_id": { "$id": "#root/product_id", "title": "Product ID", "type": "string", "format": "uuid" }, "authentication_proxy": { "$id": "#root/authentication_proxy", "title": "Authentication proxy", "type": "boolean", "examples": [ "true" ] }, "workspace_gitlab_groups": { "$id": "#root/workspace_gitlab_groups", "title": "GitLab groups for workspace", "description": "This field is deprecated and will be removed in a future version", "x-deprecated": true, "type": "array", "items": { "type": "string", "pattern": "^@dwp\/(?:\\w+|-\\w+|\/\\w+)+$", "examples": [ "@dwp/team-name" ] } }, "product_gitlab_groups": { "$id": "#root/product_gitlab_groups", "title": "GitLab groups for product name", "type": "array", "pattern": "^@dwp/(?:\\w+|-\\w+|/\\w+)+$", "items": { "type": "string", "examples": [ "@dwp/team-name" ] } }, "onboarding": { "$id": "#root/onboarding", "title": "Additional information required for onboarding", "type": "object", "properties": { "ifdp": { "type": "string", "pattern": "^IFDP-\\d+$", "examples": [ "IFDP-1234" ] }, "hcs": { "type": "boolean" }, "hosts": { "type": "object", "properties": { "non-prod": { "type": "array", "items": { "type": "string", "pattern": "^(?:(\\*\\.)?[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*)?$", "examples": [ "api.example.dwp.gov.uk" ] } }, "prod": { "type": "array", "items": { "type": "string", "pattern": "^(?:(\\*\\.)?[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*)?$", "examples": [ "api.example.dwp.gov.uk" ] } } } }, "ip_ranges": { "type": "object", "properties": { "non-prod": { "type": "array", "items": { "type": "string", "pattern": "^\\d+(?:\\.\\d+)+/\\d+$", "examples": [ "10.82.108.0/22" ] } }, "prod": { "type": "array", "items": { "type": "string", "pattern": "^\\d+(?:\\.\\d+)+\/\\d+$", "examples": [ "10.82.108.0/22" ] } } } } }, "additionalProperties": false } }, "additionalProperties": false, "required": [ "workspace" ], "anyOf": [ { "required": [ "product_name" ] }, { "required": [ "workspace_gitlab_groups" ] } ], "dependencies": { "product_gitlab_groups": [ "product_name" ], "product_name": [ "product_id" ] } }