diff --git a/schemas/2022-01-01-preview/Microsoft.App.json b/schemas/2022-01-01-preview/Microsoft.App.json new file mode 100644 index 0000000000..0b538f5a8e --- /dev/null +++ b/schemas/2022-01-01-preview/Microsoft.App.json @@ -0,0 +1,1067 @@ +{ + "id": "https://schema.management.azure.com/schemas/2022-01-01-preview/Microsoft.App.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.App", + "description": "Microsoft App Resource Types", + "resourceDefinitions": { + "containerApps": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2022-01-01-preview" + ] + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives" + }, + "name": { + "type": "string", + "description": "Name of the Container App." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ContainerAppProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "ContainerApp resource specific properties" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/containerApps_sourcecontrols_childResource" + } + ] + } + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.App/containerApps" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "type" + ], + "description": "Microsoft.App/containerApps" + }, + "containerApps_sourcecontrols": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2022-01-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Name of the Container App SourceControl." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SourceControlProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SourceControl resource specific properties" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.App/containerApps/sourcecontrols" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.App/containerApps/sourcecontrols" + }, + "managedEnvironments": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2022-01-01-preview" + ] + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives" + }, + "name": { + "type": "string", + "description": "Name of the Environment." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ManagedEnvironmentProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Environment resource specific properties" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.App/managedEnvironments" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "type" + ], + "description": "Microsoft.App/managedEnvironments" + } + }, + "definitions": { + "AppLogsConfiguration": { + "type": "object", + "properties": { + "destination": { + "type": "string", + "description": "Logs destination" + }, + "logAnalyticsConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/LogAnalyticsConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Log analytics configuration" + } + }, + "description": "Configuration of application logs" + }, + "AzureCredentials": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "Client Id." + }, + "clientSecret": { + "type": "string", + "description": "Client Secret." + }, + "subscriptionId": { + "type": "string", + "description": "Subscription Id." + }, + "tenantId": { + "type": "string", + "description": "Tenant Id." + } + }, + "description": "Container App credentials." + }, + "Configuration": { + "type": "object", + "properties": { + "activeRevisionsMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "multiple", + "single" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "ActiveRevisionsMode controls how active revisions are handled for the Container app:\nMultiple: multiple revisions can be active. If no value if provided, this is the defaultSingle: Only one revision can be active at a time. Revision weights can not be used in this mode." + }, + "ingress": { + "oneOf": [ + { + "$ref": "#/definitions/Ingress" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App Ingress configuration." + }, + "registries": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/RegistryCredentials" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Collection of private container registry credentials for containers used by the Container app" + }, + "secrets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Collection of secrets used by a Container app" + } + }, + "description": "Non versioned Container App configuration properties that define the mutable settings of a Container app" + }, + "Container": { + "type": "object", + "properties": { + "args": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container start command arguments." + }, + "command": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container start command." + }, + "env": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVar" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container environment variables." + }, + "image": { + "type": "string", + "description": "Container image tag." + }, + "name": { + "type": "string", + "description": "Custom container name." + }, + "resources": { + "oneOf": [ + { + "$ref": "#/definitions/ContainerResources" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App container resource requirements." + } + }, + "description": "Container App container definition." + }, + "ContainerAppProperties": { + "type": "object", + "properties": { + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/Configuration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Non versioned Container App configuration properties that define the mutable settings of a Container app" + }, + "managedEnvironmentId": { + "type": "string", + "description": "Resource ID of the Container App's environment." + }, + "template": { + "oneOf": [ + { + "$ref": "#/definitions/Template" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App versioned application definition.\nDefines the desired state of an immutable revision.\nAny changes to this section Will result in a new revision being created" + } + }, + "description": "ContainerApp resource specific properties" + }, + "containerApps_sourcecontrols_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2022-01-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Name of the Container App SourceControl." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/SourceControlProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SourceControl resource specific properties" + }, + "type": { + "type": "string", + "enum": [ + "sourcecontrols" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.App/containerApps/sourcecontrols" + }, + "ContainerResources": { + "type": "object", + "properties": { + "cpu": { + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Required CPU in cores, e.g. 0.5" + }, + "memory": { + "type": "string", + "description": "Required memory, e.g. \"250Mb\"" + } + }, + "description": "Container App container resource requirements." + }, + "CustomScaleRule": { + "type": "object", + "properties": { + "auth": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ScaleRuleAuth" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Authentication secrets for the custom scale rule." + }, + "metadata": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metadata properties to describe custom scale rule." + }, + "type": { + "type": "string", + "description": "Type of the custom scale rule\neg: azure-servicebus, redis etc." + } + }, + "description": "Container App container Custom scaling rule." + }, + "Dapr": { + "type": "object", + "properties": { + "appId": { + "type": "string", + "description": "Dapr application identifier" + }, + "appPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Tells Dapr which port your application is listening on" + }, + "appProtocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "http", + "grpc" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Tells Dapr which protocol your application is using. Valid options are http and grpc. Default is http." + }, + "enabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Boolean indicating if the Dapr side car is enabled" + } + }, + "description": "Container App Dapr configuration." + }, + "EnvironmentVar": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Environment variable name." + }, + "secretRef": { + "type": "string", + "description": "Name of the Container App secret from which to pull the environment variable value." + }, + "value": { + "type": "string", + "description": "Non-secret environment variable value." + } + }, + "description": "Container App container environment variable." + }, + "GithubActionConfiguration": { + "type": "object", + "properties": { + "azureCredentials": { + "oneOf": [ + { + "$ref": "#/definitions/AzureCredentials" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App credentials." + }, + "dockerfilePath": { + "type": "string", + "description": "Docker file path" + }, + "os": { + "type": "string", + "description": "Operation system" + }, + "publishType": { + "type": "string", + "description": "Code or Image" + }, + "registryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/RegistryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App registry information." + }, + "runtimeStack": { + "type": "string", + "description": "Runtime stack" + }, + "runtimeVersion": { + "type": "string", + "description": "Runtime Version" + } + }, + "description": "Configuration properties that define the mutable settings of a Container App SourceControl" + }, + "HttpScaleRule": { + "type": "object", + "properties": { + "auth": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ScaleRuleAuth" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Authentication secrets for the custom scale rule." + }, + "metadata": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metadata properties to describe http scale rule." + } + }, + "description": "Container App container Custom scaling rule." + }, + "Ingress": { + "type": "object", + "properties": { + "allowInsecure": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections" + }, + "external": { + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Bool indicating if app exposes an external http endpoint" + }, + "targetPort": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Target Port in containers for traffic from ingress" + }, + "traffic": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/TrafficWeight" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Traffic weights for app's revisions" + }, + "transport": { + "oneOf": [ + { + "type": "string", + "enum": [ + "auto", + "http", + "http2" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Ingress transport protocol." + } + }, + "description": "Container App Ingress configuration." + }, + "LogAnalyticsConfiguration": { + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "Log analytics customer id" + }, + "sharedKey": { + "type": "string", + "description": "Log analytics customer key" + } + }, + "description": "Log analytics configuration" + }, + "ManagedEnvironmentProperties": { + "type": "object", + "properties": { + "appLogsConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/AppLogsConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configuration of application logs" + }, + "daprAIInstrumentationKey": { + "type": "string", + "description": "Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry" + }, + "internalLoadBalancerEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Only visible within Vnet/Subnet" + }, + "vnetConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/VnetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configuration properties for apps environment to join a Virtual Network" + } + }, + "description": "Environment resource specific properties" + }, + "QueueScaleRule": { + "type": "object", + "properties": { + "auth": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ScaleRuleAuth" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Authentication secrets for the queue scale rule." + }, + "queueLength": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Queue length." + }, + "queueName": { + "type": "string", + "description": "Queue name." + } + }, + "description": "Container App container Azure Queue based scaling rule." + }, + "RegistryCredentials": { + "type": "object", + "properties": { + "passwordSecretRef": { + "type": "string", + "description": "The name of the Secret that contains the registry login password" + }, + "server": { + "type": "string", + "description": "Container Registry Server" + }, + "username": { + "type": "string", + "description": "Container Registry Username" + } + }, + "description": "Container App Private Registry" + }, + "RegistryInfo": { + "type": "object", + "properties": { + "registryPassword": { + "type": "string", + "description": "registry secret." + }, + "registryUrl": { + "type": "string", + "description": "registry server Url." + }, + "registryUserName": { + "type": "string", + "description": "registry username." + } + }, + "description": "Container App registry information." + }, + "Scale": { + "type": "object", + "properties": { + "maxReplicas": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Optional. Maximum number of container replicas. Defaults to 10 if not set." + }, + "minReplicas": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Optional. Minimum number of container replicas." + }, + "rules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ScaleRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Scaling rules." + } + }, + "description": "Container App scaling configurations." + }, + "ScaleRule": { + "type": "object", + "properties": { + "azureQueue": { + "oneOf": [ + { + "$ref": "#/definitions/QueueScaleRule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App container Azure Queue based scaling rule." + }, + "custom": { + "oneOf": [ + { + "$ref": "#/definitions/CustomScaleRule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App container Custom scaling rule." + }, + "http": { + "oneOf": [ + { + "$ref": "#/definitions/HttpScaleRule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App container Custom scaling rule." + }, + "name": { + "type": "string", + "description": "Scale Rule Name" + } + }, + "description": "Container App container scaling rule." + }, + "ScaleRuleAuth": { + "type": "object", + "properties": { + "secretRef": { + "type": "string", + "description": "Name of the Container App secret from which to pull the auth params." + }, + "triggerParameter": { + "type": "string", + "description": "Trigger Parameter that uses the secret" + } + }, + "description": "Auth Secrets for Container App Scale Rule" + }, + "Secret": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Secret Name." + }, + "value": { + "type": "string", + "description": "Secret Value." + } + }, + "description": "Container App Secret." + }, + "SourceControlProperties": { + "type": "object", + "properties": { + "branch": { + "type": "string", + "description": "The branch which will trigger the auto deployment" + }, + "githubActionConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/GithubActionConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configuration properties that define the mutable settings of a Container App SourceControl" + }, + "repoUrl": { + "type": "string", + "description": "The repo url which will be integrated to ContainerApp." + } + }, + "description": "SourceControl resource specific properties" + }, + "Template": { + "type": "object", + "properties": { + "containers": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Container" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of container definitions for the Container App." + }, + "dapr": { + "oneOf": [ + { + "$ref": "#/definitions/Dapr" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App Dapr configuration." + }, + "revisionSuffix": { + "type": "string", + "description": "User friendly suffix that is appended to the revision name" + }, + "scale": { + "oneOf": [ + { + "$ref": "#/definitions/Scale" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Container App scaling configurations." + } + }, + "description": "Container App versioned application definition.\nDefines the desired state of an immutable revision.\nAny changes to this section Will result in a new revision being created" + }, + "TrafficWeight": { + "type": "object", + "properties": { + "latestRevision": { + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Indicates that the traffic weight belongs to a latest stable revision" + }, + "revisionName": { + "type": "string", + "description": "Name of a revision" + }, + "weight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Traffic weight assigned to a revision" + } + }, + "description": "Traffic weight assigned to a revision" + }, + "VnetConfiguration": { + "type": "object", + "properties": { + "dockerBridgeCidr": { + "type": "string", + "description": "CIDR notation IP range assigned to the Docker bridge, network. Must not overlap with any other provided IP ranges." + }, + "infrastructureSubnetId": { + "type": "string", + "description": "Resource ID of a subnet for infrastructure components. This subnet must be in the same VNET as the subnet defined in runtimeSubnetId. Must not overlap with any other provided IP ranges." + }, + "platformReservedCidr": { + "type": "string", + "description": "IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. Must not overlap with any other provided IP ranges." + }, + "platformReservedDnsIP": { + "type": "string", + "description": " An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server." + }, + "runtimeSubnetId": { + "type": "string", + "description": "Resource ID of a subnet that Container App containers are injected into. This subnet must be in the same VNET as the subnet defined in infrastructureSubnetId. Must not overlap with any other provided IP ranges." + } + }, + "description": "Configuration properties for apps environment to join a Virtual Network" + } + } +} \ No newline at end of file diff --git a/schemas/common/autogeneratedResources.json b/schemas/common/autogeneratedResources.json index 5864dce47d..4cfaff1d82 100644 --- a/schemas/common/autogeneratedResources.json +++ b/schemas/common/autogeneratedResources.json @@ -1681,6 +1681,15 @@ { "$ref": "https://schema.management.azure.com/schemas/2021-08-01/Microsoft.ApiManagement.json#/resourceDefinitions/service_users" }, + { + "$ref": "https://schema.management.azure.com/schemas/2022-01-01-preview/Microsoft.App.json#/resourceDefinitions/containerApps" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2022-01-01-preview/Microsoft.App.json#/resourceDefinitions/containerApps_sourcecontrols" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2022-01-01-preview/Microsoft.App.json#/resourceDefinitions/managedEnvironments" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-02-01-preview/Microsoft.AppConfiguration.json#/resourceDefinitions/configurationStores" },