diff --git a/cli/azd/extensions/azure.ai.agents/schemas/azure.ai.agent.json b/cli/azd/extensions/azure.ai.agents/schemas/azure.ai.agent.json index aeb313ef0b3..1777d4986c4 100644 --- a/cli/azd/extensions/azure.ai.agents/schemas/azure.ai.agent.json +++ b/cli/azd/extensions/azure.ai.agents/schemas/azure.ai.agent.json @@ -13,8 +13,7 @@ }, "scale": { "$ref": "#/definitions/ScaleSettings" - } - , + }, "deployments": { "type": "array", "description": "List of model deployments.", @@ -54,8 +53,7 @@ } }, "additionalProperties": false - } - , + }, "Deployment": { "type": "object", "description": "A single model deployment.", diff --git a/schemas/alpha/azure.yaml.json b/schemas/alpha/azure.yaml.json index 234092f434d..ba4bdaade7f 100644 --- a/schemas/alpha/azure.yaml.json +++ b/schemas/alpha/azure.yaml.json @@ -199,7 +199,8 @@ "springapp", "staticwebapp", "aks", - "ai.endpoint" + "ai.endpoint", + "azure.ai.agent" ] }, "language": { @@ -306,156 +307,101 @@ }, "allOf": [ { + "comment": "ContainerApp host - supports image OR project, docker config, and apiVersion", "if": { "properties": { - "host": { - "const": "containerapp" - } + "host": { "const": "containerapp" } } }, "then": { "anyOf": [ { - "required": [ - "image" - ], - "not": { - "required": [ - "project" - ] - } + "required": ["image"], + "not": { "required": ["project"] } }, { - "required": [ - "project" - ], - "not": { - "required": [ - "image" - ] - } - } - ] - } - }, - { - "if": { - "not": { - "properties": { - "host": { - "const": "containerapp" - } + "required": ["project"], + "not": { "required": ["image"] } } - } - }, - "then": { + ], "properties": { - "image": false + "k8s": false } } }, { + "comment": "AKS host - requires project, supports docker and k8s config", "if": { - "not": { - "properties": { - "host": { - "enum": [ - "containerapp", - "aks", - "ai.endpoint" - ] - } - } + "properties": { + "host": { "const": "aks" } } }, "then": { - "required": [ - "project" - ], + "required": ["project"], "properties": { - "docker": false + "image": false, + "apiVersion": false } } }, { + "comment": "AI Endpoint host - requires project and config, supports docker", "if": { "properties": { - "host": { - "const": "ai.endpoint" - } + "host": { "const": "ai.endpoint" } } }, "then": { - "required": [ - "config" - ], + "required": ["project", "config"], "properties": { "config": { "$ref": "#/definitions/aiEndpointConfig", "title": "The Azure AI endpoint configuration.", "description": "Required. Provides additional configuration for Azure AI online endpoint deployment." - } - } - } - }, - { - "if": { - "not": { - "properties": { - "host": { - "enum": [ - "aks" - ] - } - } - } - }, - "then": { - "properties": { - "k8s": false + }, + "image": false, + "k8s": false, + "apiVersion": false } } }, { + "comment": "Azure AI Agent host - requires project, supports docker and config", "if": { "properties": { - "language": { - "const": "java" - } + "host": { "const": "azure.ai.agent" } } }, "then": { + "required": ["project"], "properties": { - "dist": { - "type": "string", - "description": "Optional. The path to the directory containing a single Java archive file (.jar/.ear/.war), or the path to the specific Java archive file to be included in the deployment artifact. If omitted, the CLI will detect the output directory based on the build system in-use. For maven, the default output directory 'target' is assumed." - } + "config": { + "$ref": "https://raw.githubusercontent.com/Azure/azure-dev/refs/heads/main/cli/azd/extensions/azure.ai.agents/schemas/azure.ai.agent.json", + "title": "The Azure AI Agent configuration.", + "description": "Optional. Provides additional configuration for Azure AI Agent deployment." + }, + "image": false, + "k8s": false, + "apiVersion": false } } }, { + "comment": "Traditional hosts - require project only, disable container-specific properties", "if": { - "not": { - "properties": { - "host": { - "const": "containerapp" - } - } + "properties": { + "host": { "enum": ["appservice", "function", "springapp", "staticwebapp"] } } }, "then": { + "required": ["project"], "properties": { + "image": false, + "docker": false, + "k8s": false, "apiVersion": false } } - }, - { - "properties": { - "dist": { - "type": "string", - "description": "Optional. The CLI will use files under this path to create the deployment artifact (ZIP file). If omitted, all files under service project directory will be included." - } - } } ] } diff --git a/schemas/v1.0/azure.yaml.json b/schemas/v1.0/azure.yaml.json index a49727e283f..135b712e98d 100644 --- a/schemas/v1.0/azure.yaml.json +++ b/schemas/v1.0/azure.yaml.json @@ -106,7 +106,8 @@ "springapp", "staticwebapp", "aks", - "ai.endpoint" + "ai.endpoint", + "azure.ai.agent" ] }, "language": { @@ -212,156 +213,101 @@ }, "allOf": [ { + "comment": "ContainerApp host - supports image OR project, docker config, and apiVersion", "if": { "properties": { - "host": { - "const": "containerapp" - } + "host": { "const": "containerapp" } } }, "then": { "anyOf": [ { - "required": [ - "image" - ], - "not": { - "required": [ - "project" - ] - } + "required": ["image"], + "not": { "required": ["project"] } }, { - "required": [ - "project" - ], - "not": { - "required": [ - "image" - ] - } - } - ] - } - }, - { - "if": { - "not": { - "properties": { - "host": { - "const": "containerapp" - } + "required": ["project"], + "not": { "required": ["image"] } } - } - }, - "then": { + ], "properties": { - "image": false + "k8s": false } } }, { + "comment": "AKS host - requires project, supports docker and k8s config", "if": { - "not": { - "properties": { - "host": { - "enum": [ - "containerapp", - "aks", - "ai.endpoint" - ] - } - } + "properties": { + "host": { "const": "aks" } } }, "then": { - "required": [ - "project" - ], + "required": ["project"], "properties": { - "docker": false + "image": false, + "apiVersion": false } } }, { + "comment": "AI Endpoint host - requires project and config, supports docker", "if": { "properties": { - "host": { - "const": "ai.endpoint" - } + "host": { "const": "ai.endpoint" } } }, "then": { - "required": [ - "config" - ], + "required": ["project", "config"], "properties": { "config": { "$ref": "#/definitions/aiEndpointConfig", "title": "The Azure AI endpoint configuration.", "description": "Required. Provides additional configuration for Azure AI online endpoint deployment." - } - } - } - }, - { - "if": { - "not": { - "properties": { - "host": { - "enum": [ - "aks" - ] - } - } - } - }, - "then": { - "properties": { - "k8s": false + }, + "image": false, + "k8s": false, + "apiVersion": false } } }, { + "comment": "Azure AI Agent host - requires project, supports docker and config", "if": { "properties": { - "language": { - "const": "java" - } + "host": { "const": "azure.ai.agent" } } }, "then": { + "required": ["project"], "properties": { - "dist": { - "type": "string", - "description": "Optional. The path to the directory containing a single Java archive file (.jar/.ear/.war), or the path to the specific Java archive file to be included in the deployment artifact. If omitted, the CLI will detect the output directory based on the build system in-use. For maven, the default output directory 'target' is assumed." - } + "config": { + "$ref": "https://raw.githubusercontent.com/Azure/azure-dev/refs/heads/main/cli/azd/extensions/azure.ai.agents/schemas/azure.ai.agent.json", + "title": "The Azure AI Agent configuration.", + "description": "Optional. Provides additional configuration for Azure AI Agent deployment." + }, + "image": false, + "k8s": false, + "apiVersion": false } } }, { + "comment": "Traditional hosts - require project only, disable container-specific properties", "if": { - "not": { - "properties": { - "host": { - "const": "containerapp" - } - } + "properties": { + "host": { "enum": ["appservice", "function", "springapp", "staticwebapp"] } } }, "then": { + "required": ["project"], "properties": { + "image": false, + "docker": false, + "k8s": false, "apiVersion": false } } - }, - { - "properties": { - "dist": { - "type": "string", - "description": "Optional. The CLI will use files under this path to create the deployment artifact (ZIP file). If omitted, all files under service project directory will be included." - } - } } ] } @@ -843,7 +789,7 @@ }, "docker": { "type": "object", - "description": "This is only applicable when `host` is `containerapp` or `aks`", + "description": "This is only applicable for hosts that support containers", "additionalProperties": false, "properties": { "path": { @@ -1693,4 +1639,4 @@ } } } -} \ No newline at end of file +}