Briefcase/mlbriefcase/briefcase-schema.json

583 строки
15 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://github.com/Microsoft/Briefcase/product.schema.json",
"title": "MLBriefcase",
"description": "A ML briefcase schema",
"type": "object",
"definitions": {
"resource": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of this resource"
},
"credentialprovider": {
"type": "string",
"description": "Name of the credential provider to be used."
},
"secret": {
"$ref": "#/definitions/property"
},
"metadata": {
"type": "object",
"description": "Allows to attach user-definied metadata to resources"
}
}
},
"property": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Overrides the key to lookup the value for the property."
}
}
}
]
},
"azureTenantId": {
"type": "object",
"properties": {
"tenantid": {
"$ref": "#/definitions/property",
"description": "Azure tenant id (a GUID)",
"examples": [
"72f988bf-86f1-41af-91ab-2d7cd011db47"
]
}
}
},
"awsBoto3": {
"type": "object",
"description": "AWS Boto3",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"type": "object",
"properties": {
"region_name": {
"$ref": "#/definitions/property",
"description": "Region name"
},
"key_id": {
"$ref": "#/definitions/property",
"description": "AWS Access Key ID"
}
}
}
]
}
},
"properties": {
"azure": {
"description": "Azure services",
"type": "object",
"properties": {
"auth": {
"description": "Azure authentication services",
"type": "object",
"properties": {
"devicecode": {
"description": "Azure Device Code authentication",
"type": "array",
"items": {
"description": "Azure Device Code authentication. Prompts the user with a URL.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"$ref": "#/definitions/azureTenantId"
},
{
"properties": {
"name": {
"default": "devicecode"
}
}
}
]
}
},
"managedserviceidentity": {
"description": "Azure Managed Service Idenity",
"type": "array",
"items": {
"description": "Azure Managed Service Identity (https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview)",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/resource"
}
]
}
},
"serviceprincipal": {
"description": "Azure Service Princiapl",
"type": "array",
"items": {
"description": "Azure Service Principal",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"$ref": "#/definitions/azureTenantId"
},
{
"properties": {
"name": {
"default": "serviceprincipal"
},
"clientid": {
"$ref": "#/definitions/property",
"description": "TODO The client id (a guid)"
}
}
}
]
}
}
}
},
"subscription": {
"description": "Azure Subscription",
"type": "array",
"items": {
"description": "Azure Subscription",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"id": {
"$ref": "#/definitions/property",
"description": "Azure subscription id (e.g. guids)"
},
"ids": {
"type": "array",
"description": "List of Azure subscription ids (e.g. guids)",
"items": {
"type": "string"
}
}
}
}
]
}
},
"keyvault": {
"description": "Azure KeyVaults",
"type": "array",
"items": {
"description": "Azure KeyVault https://docs.microsoft.com/en-us/azure/key-vault",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"$ref": "#/definitions/azureTenantId"
},
{
"properties": {
"name": {
"default": "keyvault"
},
"dnsname": {
"$ref": "#/definitions/property",
"description": "DNS for the Azure KeyVault instance",
"default": "https://<name>.vault.azure.net/",
"examples": [
"https://example1.vault.azure.net/"
]
},
"credential": {
"$ref": "#/definitions/property",
"description": "Name of credential resource. E.g. device code or service principal resource"
}
}
}
]
}
},
"cognitiveservice": {
"type": "object",
"description": "Azure Cognitive Services",
"properties": {
"anomalydetection": {
"type": "array",
"description": "Azure Cognitive Service Anomaly Detection",
"items": {
"description": "Azure Cognitive Service Anomaly Detection (https://docs.microsoft.com/en-us/azure/cognitive-services/anomaly-detector/)",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"url": {
"$ref": "#/definitions/property",
"description": "End point URL for Azure Cognitive Service",
"default": "https://<your-custom-subdomain>.api.cognitive.microsoft.com/anomalydetector/v1.0/timeseries/entire/detect",
"examples": [
"https://example1.api.cognitive.microsoft.com/anomalydetector/v1.0/timeseries/entire/detect"
]
}
}
}
]
}
},
"contentmoderator": {
"type": "array",
"description": "Azure Cognitive Service Content Moderator",
"items": {
"description": "Azure Cognitive Service Content Moderator",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"url": {
"$ref": "#/definitions/property",
"description": "End point URL for Azure Cognitive Service",
"default": "https://<your-custom-subdomain>.api.cognitive.microsoft.com/",
"examples": [
"https://example1.api.cognitive.microsoft.com/"
]
}
}
}
]
}
},
"face": {
"type": "array",
"description": "Azure Cognitive Service Face",
"items": {
"description": "Azure Cognitive Service Face (https://azure.microsoft.com/en-us/services/cognitive-services/face/)",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"url": {
"$ref": "#/definitions/property",
"description": "End point URL for Azure Cognitive Service",
"default": "https://<your-custom-subdomain>.api.cognitive.microsoft.com",
"examples": [
"https://example1.api.cognitive.microsoft.com"
]
}
}
}
]
}
},
"spellcheck": {
"type": "array",
"description": "Azure Cognitive Service Spell Checker",
"items": {
"description": "Azure Cognitive Service Spell Checker",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"url": {
"$ref": "#/definitions/property",
"description": "End point URL for Azure Cognitive Service",
"default": "https://<your-custom-subdomain>.api.cognitive.microsoft.com/",
"examples": [
"https://example1.api.cognitive.microsoft.com/"
]
}
}
}
]
}
},
"textanalytics": {
"type": "array",
"description": "Azure Cognitive Service Text Analytics",
"items": {
"description": "Azure Cognitive Service Text Analytics",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"url": {
"$ref": "#/definitions/property",
"description": "End point URL for Azure Cognitive Service",
"default": "https://<your-custom-subdomain>.api.cognitive.microsoft.com",
"examples": [
"https://example1.api.cognitive.microsoft.com"
]
}
}
}
]
}
},
"vision": {
"type": "array",
"description": "Azure Cognitive Service Vision",
"items": {
"description": "Azure Cognitive Service Vision",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"url": {
"$ref": "#/definitions/property",
"description": "End point URL for Azure Cognitive Service",
"default": "https://<your-custom-subdomain>.api.cognitive.microsoft.com",
"examples": [
"https://example1.api.cognitive.microsoft.com"
]
}
}
}
]
}
}
}
},
"storage": {
"type": "object",
"description": "Azure Storage Services",
"properties": {
"account": {
"type": "array",
"description": "Azure Storage Account",
"items": {
"description": "Azure Storage Account",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"accountname": {
"$ref": "#/definitions/property",
"description": "Azure blob account name"
},
"accountkey": {
"$ref": "#/definitions/property",
"description": "Azure blob account key"
},
"secrettype": {
"$ref": "#/definitions/property",
"description": "Is the secret a key or SAS token",
"default": "key",
"enum": [
"key",
"sas"
]
}
}
}
]
}
},
"blob": {
"type": "array",
"description": "Azure Blob Storage",
"items": {
"description": "Azure Blob Storage",
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"properties": {
"url": {
"$ref": "#/definitions/property",
"description": "URL to Azure blob"
},
"account": {
"$ref": "#/definitions/property",
"description": "Name of Azure Storage account resource object"
},
"containername": {
"$ref": "#/definitions/property",
"description": "Name of container"
},
"path": {
"$ref": "#/definitions/property",
"description": "Path to blob"
}
}
}
]
}
}
}
}
}
},
"amazon": {
"type": "object",
"description": "Amazon Web Services (AWS)",
"properties": {
"rekognition": {
"type": "array",
"items": {
"type": "object",
"description": "AWS Rekognition services",
"$ref": "#/definitions/awsBoto3"
}
},
"comprehend": {
"type": "array",
"items": {
"description": "AWS Rekognition services",
"$ref": "#/definitions/awsBoto3"
}
}
}
},
"google": {
"type": "object",
"description": "Google Cloud Platform services",
"properties": {
"language": {
"type": "array",
"description": "Google NER service",
"items": {
"$ref": "#/definitions/resource"
}
},
"video": {
"type": "array",
"description": "Google video intelligence for content moderation annotation",
"items": {
"$ref": "#/definitions/resource"
}
},
"vision": {
"type": "array",
"description": "Google Face Detect SDK",
"items": {
"$ref": "#/definitions/resource"
}
}
}
},
"clarifai": {
"type": "object",
"description": "ClarifAI Services",
"properties": {
"moderation": {
"type": "array",
"description": "Clarifai Moderation image SDK",
"items": {
"description": "Clarifai Moderation image SDK",
"$ref": "#/definitions/resource"
}
}
}
},
"python": {
"description": "Python specific resources",
"properties": {
"jupyterlabCredentialProvider": {
"description": "JupyterLab Credential Provider",
"$ref": "#/definitions/resource"
},
"env": {
"description": "Environment variable Credential Provider",
"$ref": "#/definitions/resource"
},
"dotenv": {
"description": ".env file Credential Provider",
"$ref": "#/definitions/resource"
},
"keyring": {
"description": "Python KeyRing Credential Provider (https://pypi.org/project/keyring)",
"type": "array",
"items": {
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"type": "object",
"properties": {
"service_name": {
"$ref": "#/definitions/property",
"description": "Service name used when calling get_password"
}
}
}
]
}
},
"sqlalchemy": {
"description": "Python SQL Alchemy (https://www.sqlalchemy.org/)",
"type": "array",
"items": {
"allOf": [
{
"$ref": "#/definitions/resource"
},
{
"type": "object",
"properties": {
"url": {
"$ref": "#/definitions/property",
"description": "drivername://username:password@host/path?query"
},
"drivername": {
"$ref": "#/definitions/property",
"description": "the name of the database backend. This name will correspond to a module in sqlalchemy/databases or a third party plug-in."
},
"username": {
"$ref": "#/definitions/property",
"description": "The user name."
},
"host": {
"$ref": "#/definitions/property",
"description": "The name of the host."
},
"port": {
"$ref": "#/definitions/property",
"description": "The port number."
},
"database": {
"$ref": "#/definitions/property",
"description": "The database name."
},
"query": {
"$ref": "#/definitions/property",
"description": "A dictionary of options to be passed to the dialect and/or the DBAPI upon connect."
}
}
}
]
}
}
}
}
}
}