Last active
July 13, 2017 16:55
-
-
Save msavy/f79766b4f448672cdaf84ce4159ba2e9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"type": "object", | |
"properties": { | |
"apis": { | |
"title": "APIs", | |
"type": "array", | |
"items": { | |
"type": "object", | |
"title": "API", | |
"required": ["organizationId", "apiId", "version", "endpoint", "endpointType", "endpointContentType"], | |
"properties": { | |
"publicApi": { | |
"title": "Public API", | |
"type": "boolean", | |
"default": false | |
}, | |
"organizationId": { | |
"title": "Organization identifier", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"apiId": { | |
"title": "API identifier", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"version": { | |
"title": "Version identifier", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"endpoint": { | |
"title": "Endpoint URI", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"endpointType": { | |
"title": "Endpoint type", | |
"enum": ["rest", "soap"], | |
"minLength": 1 | |
}, | |
"endpointContentType": { | |
"title": "Endpoint Content Type", | |
"description": "Gateway's content type when responding with errors/failures.", | |
"enum": ["json", "xml"] | |
}, | |
"endpointProperties": { | |
"title": "Endpoint properties", | |
"type": "object", | |
"patternProperties": { | |
".{1,}": { "type": "string" } | |
} | |
}, | |
"parsePayload": { | |
"title": "Parse payload", | |
"description": "Parse whole payload upfront (reduces performance).", | |
"type": "boolean", | |
"default": false | |
}, | |
"apiPolicies": { "$ref": "#/definitions/policies" } | |
} | |
} | |
}, | |
"clients": { | |
"title": "Clients", | |
"type": "array", | |
"required": ["organizationId", "clientId", "version", "apiKey"], | |
"items": { | |
"type": "object", | |
"title": "Client", | |
"properties": { | |
"organizationId": { | |
"title": "Organization identifier", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"clientId": { | |
"title": "Client identifier", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"version": { | |
"title": "Version identifier", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"apiKey": { | |
"title": "API Key", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"contracts": { | |
"title": "Contracts", | |
"type": "array", | |
"required": ["apiOrgId", "apiId", "apiVersion", "plan"], | |
"items": { | |
"title": "Contract", | |
"type": "object", | |
"properties": { | |
"apiOrgId": { | |
"title": "API Organization ID", | |
"description": "Organization of API chosen. Must map to a valid API Organization ID.", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"apiId": { | |
"title": "API ID", | |
"description": "API chosen. Must map to a valid API ID.", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"apiVersion": { | |
"title": "API Version", | |
"description": "Version of API chosen. Must map to a valid API Version.", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"plan": { | |
"title": "Plan Name", | |
"description": "Name of plan.", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"policies": { "$ref": "#/definitions/policies" } | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"definitions": { | |
"policies": { | |
"title": "Policies", | |
"type": "array", | |
"items": { | |
"title": "Policy", | |
"type": "object", | |
"required": ["policyJsonConfig", "policyImpl"], | |
"properties": { | |
"policyJsonConfig": { | |
"title": "Policy JSON config", | |
"description": "The policy's escaped/serialised configuration.", | |
"type": "string", | |
"minLength": 1 | |
}, | |
"policyImpl": { | |
"title": "Policy implementation.", | |
"description": "Policy implementation coordinates", | |
"type": "string", | |
"minLength": 1, | |
"pattern": "^(class:.+)|(plugin:(.+?):(.+?):(.+?):war\\/.+)$" | |
} | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment