{
    "additionalProperties": false,
    "properties": {
        "analyticsAvailable": {
            "type": "boolean"
        },
        "apiAccess": {
            "type": "boolean"
        },
        "apiType": {
            "type": "string"
        },
        "auditInformationProvided": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "enum": [
                        "None",
                        "Data made available",
                        "Data made available by negotiation"
                    ]
                }
            },
            "type": "object"
        },
        "changeImpactAssessment": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "cloudDeploymentModel": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Contractual commitment",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "enum": [
                        "Public cloud",
                        "Community cloud",
                        "Private cloud",
                        "Hybrid cloud"
                    ]
                }
            },
            "type": "object"
        },
        "codeLibraryLanguages": {
            "items": {
                "type": "string"
            },
            "maxItems": 10,
            "type": "array"
        },
        "createdAt": {
            "_format": "date-time",
            "type": "string"
        },
        "dataAtRestProtections": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion",
                        "Independent testing of implementation",
                        "CESG-assured components"
                    ]
                },
                "value": {
                    "items": {
                        "enum": [
                            "CPA Foundation-grade assured components",
                            "FIPS-assured encryption",
                            "Other encryption",
                            "Secure containers, racks or cages",
                            "Physical access control",
                            "No protection"
                        ]
                    },
                    "maxItems": 6,
                    "type": "array",
                    "_uniqueItems": true
                }
            },
            "type": "object"
        },
        "dataBackupRecovery": {
            "type": "boolean"
        },
        "dataExtractionRemoval": {
            "type": "boolean"
        },
        "dataManagementLocations": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Contractual commitment",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "items": {
                        "enum": [
                            "UK",
                            "EU",
                            "USA - Safe Harbor",
                            "Other countries with data protection treaties",
                            "Rest of world"
                        ]
                    },
                    "maxItems": 5,
                    "type": "array",
                    "_uniqueItems": true
                }
            },
            "type": "object"
        },
        "dataProtectionBetweenUserAndService": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion",
                        "Independent testing of implementation",
                        "CESG-assured components"
                    ]
                },
                "value": {
                    "items": {
                        "enum": [
                            "Encrypted PSN service",
                            "PSN service",
                            "CPA Foundation VPN Gateway",
                            "VPN using TLS, version 1.2 or later",
                            "VPN using legacy SSL or TLS",
                            "No encryption"
                        ]
                    },
                    "maxItems": 6,
                    "type": "array",
                    "_uniqueItems": true
                }
            },
            "type": "object"
        },
        "dataSecureDeletion": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion",
                        "Independent testing of implementation",
                        "CESG-assured components"
                    ]
                },
                "value": {
                    "enum": [
                        "CPA Foundation-grade erasure product",
                        "CESG or CPNI-approved erasure process",
                        "Other secure erasure process",
                        "Other erasure process"
                    ]
                }
            },
            "type": "object"
        },
        "datacentreLocations": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Contractual commitment",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "items": {
                        "enum": [
                            "UK",
                            "EU",
                            "USA - Safe Harbor",
                            "Other countries with data protection treaties",
                            "Rest of world"
                        ]
                    },
                    "maxItems": 5,
                    "type": "array",
                    "_uniqueItems": true
                }
            },
            "type": "object"
        },
        "datacentreProtectionDisclosure": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Contractual commitment",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "datacentreTier": {
            "type": "string"
        },
        "datacentresEUCode": {
            "type": "boolean"
        },
        "datacentresSpecifyLocation": {
            "type": "boolean"
        },
        "deprovisioningTime": {
            "type": "string"
        },
        "deviceAccessMethod": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "items": {
                        "enum": [
                            "Corporate/enterprise devices",
                            "Partner devices",
                            "Unknown devices"
                        ]
                    },
                    "maxItems": 3,
                    "type": "array",
                    "_uniqueItems": true
                }
            },
            "type": "object"
        },
        "educationPricing": {
            "type": "boolean"
        },
        "elasticCloud": {
            "type": "boolean"
        },
        "eventMonitoring": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "freeOption": {
            "type": "boolean"
        },
        "governanceFramework": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "guaranteedResources": {
            "type": "boolean"
        },
        "id": {
            "pattern": "^([0-9]{16})$",
            "type": "string"
        },
        "identityAuthenticationControls": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent testing of implementation",
                        "CESG-assured components"
                    ]
                },
                "value": {
                    "items": {
                        "enum": [
                            "Username and two-factor authentication",
                            "Username and TLS client certificate",
                            "Authentication federation",
                            "Limited access over dedicated link, enterprise or community network",
                            "Username and password",
                            "Username and strong password/passphrase enforcement",
                            "Other mechanism"
                        ]
                    },
                    "maxItems": 7,
                    "type": "array",
                    "_uniqueItems": true
                }
            },
            "type": "object"
        },
        "identityStandards": {
            "items": {
                "type": "string"
            },
            "maxItems": 10,
            "type": "array"
        },
        "incidentDefinitionPublished": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "incidentEscalation": {
            "type": "boolean"
        },
        "incidentManagementProcess": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "incidentManagementReporting": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "legalJurisdiction": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Contractual commitment",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "enum": [
                        "UK",
                        "EU",
                        "USA - Safe Harbor",
                        "Other countries with data protection treaties",
                        "Rest of world"
                    ]
                }
            },
            "type": "object"
        },
        "lot": {
            "enum": [
                "SaaS"
            ]
        },
        "minimumContractPeriod": {
            "enum": [
                "Hour",
                "Day",
                "Month",
                "Year",
                "Other"
            ]
        },
        "networksConnected": {
            "items": {
                "enum": [
                    "Internet",
                    "Public Services Network (PSN)",
                    "Government Secure intranet (GSi)",
                    "Police National Network (PNN)",
                    "New NHS Network (N3)",
                    "Joint Academic Network (JANET)",
                    "Other"
                ]
            },
            "maxItems": 7,
            "type": "array",
            "_uniqueItems": true
        },
        "offlineWorking": {
            "type": "boolean"
        },
        "openSource": {
            "type": "boolean"
        },
        "openStandardsSupported": {
            "type": "boolean"
        },
        "otherConsumers": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Contractual commitment",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "enum": [
                        "No other consumer",
                        "Only government consumers",
                        "A specific consumer group, eg Police, Defence or Health",
                        "Anyone - public"
                    ]
                }
            },
            "type": "object"
        },
        "persistentStorage": {
            "type": "boolean"
        },
        "personnelSecurityChecks": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "items": {
                        "enum": [
                            "Security clearance national vetting (SC)",
                            "Baseline personnel security standard (BPSS)",
                            "Background checks in accordance with BS7858:2012",
                            "Employment checks"
                        ]
                    },
                    "maxItems": 4,
                    "type": "array",
                    "_uniqueItems": true
                }
            },
            "type": "object"
        },
        "priceInterval": {
            "enum": [
                "",
                "Second",
                "Minute",
                "Hour",
                "Day",
                "Week",
                "Month",
                "Quarter",
                "6 months",
                "Year"
            ]
        },
        "priceMax": {
            "type": [
                "number",
                "null"
            ]
        },
        "priceMin": {
            "type": "number"
        },
        "priceString": {
            "type": "string"
        },
        "priceUnit": {
            "enum": [
                "Unit",
                "Person",
                "Licence",
                "User",
                "Device",
                "Instance",
                "Server",
                "Virtual machine",
                "Transaction",
                "Megabyte",
                "Gigabyte",
                "Terabyte"
            ]
        },
        "pricingDocument": {
            "type": "string"
        },
        "pricingDocumentURL": {
            "_format": "uri",
            "type": "string"
        },
        "provisioningTime": {
            "type": "string"
        },
        "restrictAdministratorPermissions": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion",
                        "Independent testing of implementation"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "secureConfigurationManagement": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "secureDesign": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "secureDevelopment": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "selfServiceProvisioning": {
            "type": "boolean"
        },
        "serviceAvailabilityPercentage": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Contractual commitment",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "number"
                }
            },
            "type": "object"
        },
        "serviceBenefits": {
            "items": {
                "maxLength": 120,
                "pattern": "^(?:\\S+\\s+){0,9}\\S+$",
                "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "type": "array"
        },
        "serviceDefinitionDocument": {
            "type": "string"
        },
        "serviceDefinitionDocumentURL": {
            "_format": "uri",
            "type": "string"
        },
        "serviceFeatures": {
            "items": {
                "maxLength": 120,
                "pattern": "^(?:\\S+\\s+){0,9}\\S+$",
                "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "type": "array"
        },
        "serviceManagementModel": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "items": {
                        "enum": [
                            "Dedicated devices on a segregated network",
                            "Dedicated devices for community service management",
                            "Dedicated devices for multiple community service management",
                            "Service management via bastion hosts",
                            "Direct service management"
                        ]
                    },
                    "maxItems": 5,
                    "type": "array",
                    "_uniqueItems": true
                }
            },
            "type": "object"
        },
        "serviceName": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
        },
        "serviceOffboarding": {
            "type": "boolean"
        },
        "serviceOnboarding": {
            "type": "boolean"
        },
        "serviceSummary": {
            "maxLength": 500,
            "pattern": "^(?:\\S+\\s+){0,49}\\S+$",
            "type": "string"
        },
        "serviceTypes": {
            "items": {
                "enum": [
                    "Accounting and finance",
                    "Business intelligence and analytics",
                    "Collaboration",
                    "Creative and design",
                    "Customer relationship management (CRM)",
                    "Data management",
                    "Electronic document and records management (EDRM)",
                    "Energy and environment",
                    "Healthcare",
                    "Human resources and employee management",
                    "IT management",
                    "Legal",
                    "Libraries",
                    "Marketing",
                    "Operations management",
                    "Project management and planning",
                    "Sales",
                    "Schools and education",
                    "Security",
                    "Software development tools",
                    "Telecoms",
                    "Transport and logistics"
                ]
            },
            "maxItems": 22,
            "type": "array",
            "_uniqueItems": true
        },
        "servicesManagementSeparation": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent testing of implementation",
                        "Assurance of service design",
                        "CESG-assured components"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "servicesSeparation": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent testing of implementation",
                        "Assurance of service design",
                        "CESG-assured components"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "sfiaRateDocument": {
            "type": "string"
        },
        "sfiaRateDocumentURL": {
            "_format": "uri",
            "type": "string"
        },
        "status": {
            "enum": [
                "disabled",
                "enabled",
                "published"
            ]
        },
        "supplierId": {
            "type": "integer"
        },
        "supportAvailability": {
            "type": "string"
        },
        "supportForThirdParties": {
            "type": "boolean"
        },
        "supportResponseTime": {
            "type": "string"
        },
        "supportTypes": {
            "items": {
                "enum": [
                    "Service desk",
                    "Email",
                    "Phone",
                    "Live chat",
                    "Onsite"
                ]
            },
            "maxItems": 5,
            "type": "array",
            "_uniqueItems": true
        },
        "supportedBrowsers": {
            "items": {
                "enum": [
                    "Internet Explorer 6",
                    "Internet Explorer 7",
                    "Internet Explorer 8",
                    "Internet Explorer 9",
                    "Internet Explorer 10+",
                    "Firefox",
                    "Chrome",
                    "Safari",
                    "Opera"
                ]
            },
            "maxItems": 9,
            "type": "array",
            "_uniqueItems": true
        },
        "supportedDevices": {
            "items": {
                "enum": [
                    "PC",
                    "Mac",
                    "Smartphone",
                    "Tablet"
                ]
            },
            "maxItems": 4,
            "type": "array",
            "_uniqueItems": true
        },
        "termsAndConditionsDocument": {
            "type": "string"
        },
        "termsAndConditionsDocumentURL": {
            "_format": "uri",
            "type": "string"
        },
        "thirdPartyComplianceMonitoring": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "thirdPartyDataSharingInformation": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "thirdPartyRiskAssessment": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "thirdPartySecurityRequirements": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "title": {
            "type": "string"
        },
        "trainingProvided": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "trialOption": {
            "type": "boolean"
        },
        "userAccessControlManagement": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion",
                        "Independent testing of implementation"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "userAuthenticateManagement": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion",
                        "Independent testing of implementation"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "userAuthenticateSupport": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion",
                        "Independent testing of implementation"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "vatIncluded": {
            "type": "boolean"
        },
        "vendorCertifications": {
            "items": {
                "type": "string"
            },
            "maxItems": 10,
            "type": "array"
        },
        "vulnerabilityAssessment": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "vulnerabilityMitigationPrioritisation": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "vulnerabilityMonitoring": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "vulnerabilityTimescales": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "vulnerabilityTracking": {
            "properties": {
                "assurance": {
                    "enum": [
                        "Service provider assertion",
                        "Independent validation of assertion"
                    ]
                },
                "value": {
                    "type": "boolean"
                }
            },
            "type": "object"
        }
    },
    "required": [
        "id",
        "supplierId",
        "lot",
        "title",
        "serviceTypes",
        "serviceName",
        "serviceSummary",
        "serviceBenefits",
        "serviceFeatures",
        "serviceDefinitionDocument",
        "serviceDefinitionDocumentURL",
        "termsAndConditionsDocument",
        "termsAndConditionsDocumentURL",
        "minimumContractPeriod",
        "priceMin",
        "priceUnit",
        "priceString",
        "vatIncluded",
        "educationPricing",
        "trialOption",
        "freeOption",
        "pricingDocument",
        "pricingDocumentURL",
        "openStandardsSupported",
        "supportForThirdParties",
        "supportAvailability",
        "supportResponseTime",
        "incidentEscalation",
        "supportTypes",
        "serviceOnboarding",
        "serviceOffboarding",
        "analyticsAvailable",
        "elasticCloud",
        "guaranteedResources",
        "persistentStorage",
        "selfServiceProvisioning",
        "provisioningTime",
        "deprovisioningTime",
        "openSource",
        "apiAccess",
        "networksConnected",
        "supportedBrowsers",
        "offlineWorking",
        "supportedDevices",
        "datacentresEUCode",
        "datacentresSpecifyLocation",
        "datacentreTier",
        "dataBackupRecovery",
        "dataExtractionRemoval",
        "dataProtectionBetweenUserAndService",
        "datacentreLocations",
        "dataManagementLocations",
        "legalJurisdiction",
        "datacentreProtectionDisclosure",
        "dataAtRestProtections",
        "dataSecureDeletion",
        "serviceAvailabilityPercentage",
        "cloudDeploymentModel",
        "otherConsumers",
        "servicesSeparation",
        "servicesManagementSeparation",
        "governanceFramework",
        "changeImpactAssessment",
        "vulnerabilityAssessment",
        "vulnerabilityMonitoring",
        "vulnerabilityMitigationPrioritisation",
        "vulnerabilityTracking",
        "vulnerabilityTimescales",
        "eventMonitoring",
        "incidentManagementProcess",
        "incidentManagementReporting",
        "incidentDefinitionPublished",
        "personnelSecurityChecks",
        "secureDevelopment",
        "secureDesign",
        "secureConfigurationManagement",
        "thirdPartyDataSharingInformation",
        "thirdPartySecurityRequirements",
        "thirdPartyRiskAssessment",
        "thirdPartyComplianceMonitoring",
        "userAuthenticateManagement",
        "userAuthenticateSupport",
        "userAccessControlManagement",
        "restrictAdministratorPermissions",
        "identityAuthenticationControls",
        "serviceManagementModel",
        "auditInformationProvided",
        "deviceAccessMethod",
        "trainingProvided"
    ],
    "title": "G6 Submissions SaaS Schema",
    "type": "object"
}