{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
        },
        "description": {
            "type": "string",
            "maxLength": 32767
        },
        "expirationDate": {
            "type": "string",
            "format": "date-time"
        },
        "scope": {
            "type": "array",
            "_uniqueItems": true,
            "items": {
                "type": "string",
                "enum": [
                    "all.Application",
                    "all.Application.read",
                    "all.Device",
                    "all.Device.read",
                    "application.*",
                    "applicationApiToken.*",
                    "applicationApiTokens.*",
                    "applicationCertificate.*",
                    "applicationCertificates.*",
                    "applicationCertificateAuthority.*",
                    "applicationCertificateAuthorities.*",
                    "applicationKey.*",
                    "applicationKeys.*",
                    "data.*",
                    "dataTable.*",
                    "dataTables.*",
                    "dataTableRow.*",
                    "dataTableRows.*",
                    "device.*",
                    "deviceRecipe.*",
                    "deviceRecipes.*",
                    "devices.*",
                    "edgeDeployments.*",
                    "event.*",
                    "events.*",
                    "experience.*",
                    "experienceDomain.*",
                    "experienceDomains.*",
                    "experienceEndpoint.*",
                    "experienceEndpoints.*",
                    "experienceGroup.*",
                    "experienceGroups.*",
                    "experienceSlug.*",
                    "experienceSlugs.*",
                    "experienceUser.*",
                    "experienceUsers.*",
                    "experienceVersion.*",
                    "experienceVersions.*",
                    "experienceView.*",
                    "experienceViews.*",
                    "integration.*",
                    "integrations.*",
                    "file.*",
                    "files.*",
                    "flow.*",
                    "flows.*",
                    "flowVersion.*",
                    "flowVersions.*",
                    "notebook.*",
                    "notebooks.*",
                    "webhook.*",
                    "webhooks.*",
                    "application.archiveData",
                    "application.backfillArchiveData",
                    "application.clone",
                    "application.export",
                    "application.import",
                    "application.fullEventsArchive",
                    "application.fullDataTablesArchive",
                    "application.debug",
                    "application.delete",
                    "application.get",
                    "application.mqttPublishMessage",
                    "application.mqttSubscriptionStream",
                    "application.patch",
                    "application.payloadCounts",
                    "application.search",
                    "applicationApiToken.delete",
                    "applicationApiToken.get",
                    "applicationApiToken.patch",
                    "applicationApiTokens.get",
                    "applicationApiTokens.post",
                    "applicationCertificate.delete",
                    "applicationCertificate.get",
                    "applicationCertificate.patch",
                    "applicationCertificates.get",
                    "applicationCertificates.post",
                    "applicationCertificateAuthority.delete",
                    "applicationCertificateAuthority.get",
                    "applicationCertificateAuthority.patch",
                    "applicationCertificateAuthorities.get",
                    "applicationCertificateAuthorities.post",
                    "applicationKey.delete",
                    "applicationKey.get",
                    "applicationKey.patch",
                    "applicationKeys.get",
                    "applicationKeys.post",
                    "data.export",
                    "data.lastValueQuery",
                    "data.timeSeriesQuery",
                    "dataTable.addColumn",
                    "dataTable.delete",
                    "dataTable.get",
                    "dataTable.patch",
                    "dataTable.removeColumn",
                    "dataTableRow.delete",
                    "dataTableRow.get",
                    "dataTableRow.patch",
                    "dataTableRows.get",
                    "dataTableRows.post",
                    "dataTableRows.query",
                    "dataTableRows.export",
                    "dataTableRows.delete",
                    "dataTableRows.truncate",
                    "dataTables.get",
                    "dataTables.post",
                    "device.commandStream",
                    "device.debug",
                    "device.delete",
                    "device.export",
                    "device.get",
                    "device.getCommand",
                    "device.getCompositeState",
                    "device.getLogEntries",
                    "device.getState",
                    "device.patch",
                    "device.removeData",
                    "device.sendCommand",
                    "device.sendState",
                    "device.setConnectionStatus",
                    "device.stateStream",
                    "deviceRecipe.bulkCreate",
                    "deviceRecipe.delete",
                    "deviceRecipe.get",
                    "deviceRecipe.patch",
                    "deviceRecipes.get",
                    "deviceRecipes.post",
                    "devices.patch",
                    "devices.delete",
                    "devices.removeData",
                    "devices.detailedSummary",
                    "devices.export",
                    "devices.get",
                    "devices.post",
                    "devices.sendCommand",
                    "edgeDeployments.get",
                    "edgeDeployments.release",
                    "edgeDeployments.remove",
                    "edgeDeployments.replace",
                    "event.delete",
                    "event.get",
                    "event.patch",
                    "events.delete",
                    "events.get",
                    "events.mostRecentBySeverity",
                    "events.patch",
                    "events.post",
                    "events.export",
                    "experience.delete",
                    "experience.bootstrap",
                    "experienceDomain.delete",
                    "experienceDomain.get",
                    "experienceDomain.patch",
                    "experienceDomains.get",
                    "experienceDomains.post",
                    "experienceEndpoint.delete",
                    "experienceEndpoint.get",
                    "experienceEndpoint.linkedResources",
                    "experienceEndpoint.patch",
                    "experienceEndpoints.get",
                    "experienceEndpoints.post",
                    "experienceEndpoints.stats",
                    "experienceGroup.delete",
                    "experienceGroup.get",
                    "experienceGroup.patch",
                    "experienceGroups.detailedSummary",
                    "experienceGroups.get",
                    "experienceGroups.post",
                    "experienceSlug.delete",
                    "experienceSlug.get",
                    "experienceSlug.patch",
                    "experienceSlugs.get",
                    "experienceSlugs.post",
                    "experienceUser.delete",
                    "experienceUser.get",
                    "experienceUser.patch",
                    "experienceUsers.detailedSummary",
                    "experienceUsers.get",
                    "experienceUsers.post",
                    "experienceVersion.delete",
                    "experienceVersion.get",
                    "experienceVersion.patch",
                    "experienceVersions.get",
                    "experienceVersions.post",
                    "experienceView.debug",
                    "experienceView.delete",
                    "experienceView.get",
                    "experienceView.linkedResources",
                    "experienceView.patch",
                    "experienceViews.debug",
                    "experienceViews.detailedSummary",
                    "experienceViews.get",
                    "experienceViews.post",
                    "file.get",
                    "file.patch",
                    "file.move",
                    "file.delete",
                    "file.upload",
                    "files.get",
                    "files.post",
                    "flow.debug",
                    "flow.delete",
                    "flow.clearStorageEntries",
                    "flow.get",
                    "flow.getStorageEntries",
                    "flow.log",
                    "flow.patch",
                    "flow.pressVirtualButton",
                    "flow.setStorageEntry",
                    "flows.get",
                    "flows.getByVersion",
                    "flows.import",
                    "flows.post",
                    "flowVersion.delete",
                    "flowVersion.get",
                    "flowVersion.log",
                    "flowVersion.patch",
                    "flowVersions.get",
                    "flowVersions.post",
                    "integration.delete",
                    "integration.get",
                    "integration.patch",
                    "integrations.get",
                    "integrations.post",
                    "notebook.delete",
                    "notebook.execute",
                    "notebook.get",
                    "notebook.logs",
                    "notebook.patch",
                    "notebook.requestInputDataExport",
                    "notebook.upload",
                    "notebooks.get",
                    "notebooks.post",
                    "webhook.delete",
                    "webhook.get",
                    "webhook.patch",
                    "webhooks.get",
                    "webhooks.post"
                ]
            }
        },
        "status": {
            "type": "string",
            "enum": [
                "active",
                "inactive"
            ]
        }
    },
    "additionalProperties": false,
    "required": [
        "name"
    ]
}