{ "swagger": "2.0", "info": { "title": "ContainerServiceNodeCustomizationClient", "version": "2025-08-02-preview", "description": "Azure Kubernetes Node Customization api client.", "x-typespec-generated": [ { "emitter": "@azure-tools/typespec-autorest" } ] }, "schemes": [ "https" ], "host": "management.azure.com", "produces": [ "application/json" ], "consumes": [ "application/json" ], "security": [ { "azure_auth": [ "user_impersonation" ] } ], "securityDefinitions": { "azure_auth": { "type": "oauth2", "description": "Azure Active Directory OAuth2 Flow.", "flow": "implicit", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, "tags": [ { "name": "Operations" }, { "name": "NodeCustomizations" } ], "paths": { "/providers/Microsoft.ContainerService/operations": { "get": { "operationId": "Operations_List", "tags": [ "Operations" ], "description": "List the operations for the provider", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { "Operations_List": { "$ref": "./examples/Operations_List.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/nodeCustomizations": { "get": { "operationId": "NodeCustomizations_ListBySubscription", "tags": [ "NodeCustomizations" ], "description": "Deprecated: List the node customizations in a subscription at the latest version. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/NodeCustomizationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_ListBySubscription": { "$ref": "./examples/NodeCustomizations_ListBySubscription.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/nodeCustomizations": { "get": { "operationId": "NodeCustomizations_ListByResourceGroup", "tags": [ "NodeCustomizations" ], "description": "Deprecated: List the node customizations in a resource group at the latest version. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/NodeCustomizationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_ListByResourceGroup": { "$ref": "./examples/NodeCustomizations_ListByResourceGroup.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/nodeCustomizations/{nodeCustomizationName}": { "get": { "operationId": "NodeCustomizations_Get", "tags": [ "NodeCustomizations" ], "description": "Deprecated: Get a node customization at the latest version. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "nodeCustomizationName", "in": "path", "description": "The name of the Node Customization resource.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/NodeCustomization" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_Get": { "$ref": "./examples/NodeCustomizations_Get.json" } } }, "put": { "operationId": "NodeCustomizations_CreateOrUpdate", "tags": [ "NodeCustomizations" ], "description": "Deprecated: Create or update a node customization resource. This will create a new version. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "If-Match", "in": "header", "description": "The request should only proceed if the targeted resource's etag matches the value provided.", "required": false, "type": "string", "x-ms-client-name": "ifMatch" }, { "name": "If-None-Match", "in": "header", "description": "The request should only proceed if the targeted resource's etag does not match the value provided.", "required": false, "type": "string", "x-ms-client-name": "ifNoneMatch" }, { "name": "nodeCustomizationName", "in": "path", "description": "The name of the Node Customization resource.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, { "name": "resource", "in": "body", "description": "Resource create parameters.", "required": true, "schema": { "$ref": "#/definitions/NodeCustomization" } } ], "responses": { "200": { "description": "Resource 'NodeCustomization' update operation succeeded", "schema": { "$ref": "#/definitions/NodeCustomization" } }, "201": { "description": "Resource 'NodeCustomization' create operation succeeded", "schema": { "$ref": "#/definitions/NodeCustomization" }, "headers": { "Azure-AsyncOperation": { "type": "string", "description": "A link to the status monitor" }, "Retry-After": { "type": "integer", "format": "int32", "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_CreateOrUpdate": { "$ref": "./examples/NodeCustomizations_CreateOrUpdate.json" } }, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" }, "x-ms-long-running-operation": true }, "patch": { "operationId": "NodeCustomizations_Update", "tags": [ "NodeCustomizations" ], "description": "Deprecated: Update a node customization. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "nodeCustomizationName", "in": "path", "description": "The name of the Node Customization resource.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, { "name": "If-Match", "in": "header", "description": "The request should only proceed if the targeted resource's etag matches the value provided.", "required": false, "type": "string", "x-ms-client-name": "ifMatch" }, { "name": "properties", "in": "body", "description": "The resource properties to be updated.", "required": true, "schema": { "$ref": "#/definitions/NodeCustomizationUpdate" } } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/NodeCustomization" } }, "202": { "description": "Resource update request accepted.", "headers": { "Location": { "type": "string", "description": "The Location header contains the URL where the status of the long running operation can be checked." }, "Retry-After": { "type": "integer", "format": "int32", "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_Update": { "$ref": "./examples/NodeCustomizations_Update.json" } }, "x-ms-long-running-operation-options": { "final-state-via": "location" }, "x-ms-long-running-operation": true }, "delete": { "operationId": "NodeCustomizations_Delete", "tags": [ "NodeCustomizations" ], "description": "Deprecated: Delete a node customization. This operation will be blocked if the resource is in use. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "If-Match", "in": "header", "description": "The request should only proceed if the targeted resource's etag matches the value provided.", "required": false, "type": "string", "x-ms-client-name": "ifMatch" }, { "name": "nodeCustomizationName", "in": "path", "description": "The name of the Node Customization resource.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" } ], "responses": { "202": { "description": "Resource deletion accepted.", "headers": { "Location": { "type": "string", "description": "The Location header contains the URL where the status of the long running operation can be checked." }, "Retry-After": { "type": "integer", "format": "int32", "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "204": { "description": "Resource does not exist." }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_Delete": { "$ref": "./examples/NodeCustomizations_Delete.json" } }, "x-ms-long-running-operation-options": { "final-state-via": "location" }, "x-ms-long-running-operation": true } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/nodeCustomizations/{nodeCustomizationName}/versions": { "get": { "operationId": "NodeCustomizations_ListVersions", "tags": [ "NodeCustomizations" ], "description": "Deprecated: List all versions of a node customization. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "nodeCustomizationName", "in": "path", "description": "The name of the Node Customization resource.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/NodeCustomizationVersionListResult" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_ListVersions": { "$ref": "./examples/NodeCustomizations_ListVersions.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/nodeCustomizations/{nodeCustomizationName}/versions/{version}": { "get": { "operationId": "NodeCustomizations_GetVersion", "tags": [ "NodeCustomizations" ], "description": "Deprecated: Get a node customization at a particular version. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "nodeCustomizationName", "in": "path", "description": "The name of the Node Customization resource.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, { "name": "version", "in": "path", "description": "The version of the Node Customization.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^(?![.-])[A-Za-z0-9_.-]{1,63}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/NodeCustomizationVersion" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_GetVersion": { "$ref": "./examples/NodeCustomizations_GetVersion.json" } } }, "delete": { "operationId": "NodeCustomizations_DeleteVersion", "tags": [ "NodeCustomizations" ], "description": "Deprecated: Delete a node customization version. This operation will be blocked if the node customization version is in use. Use Prepared Image Specification APIs instead.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "If-Match", "in": "header", "description": "The request should only proceed if the targeted resource's etag matches the value provided.", "required": false, "type": "string", "x-ms-client-name": "ifMatch" }, { "name": "nodeCustomizationName", "in": "path", "description": "The name of the Node Customization resource.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, { "name": "version", "in": "path", "description": "The version of the Node Customization.", "required": true, "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^(?![.-])[A-Za-z0-9_.-]{1,63}$" } ], "responses": { "202": { "description": "Resource deletion accepted.", "headers": { "Location": { "type": "string", "description": "The Location header contains the URL where the status of the long running operation can be checked." }, "Retry-After": { "type": "integer", "format": "int32", "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "204": { "description": "Resource does not exist." }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, "deprecated": true, "x-ms-examples": { "NodeCustomizations_DeleteVersion": { "$ref": "./examples/NodeCustomizations_DeleteVersion.json" } }, "x-ms-long-running-operation-options": { "final-state-via": "location" }, "x-ms-long-running-operation": true } } }, "definitions": { "ExecutionPoint": { "type": "string", "description": "The execution point for the script.", "enum": [ "NodeImageBuildTime", "NodeProvisionTime" ], "x-ms-enum": { "name": "ExecutionPoint", "modelAsString": true, "values": [ { "name": "nodeImageBuildTime", "value": "NodeImageBuildTime", "description": "Execute during node image build time." }, { "name": "nodeProvisionTime", "value": "NodeProvisionTime", "description": "Execute during node provisioning time." } ] } }, "NodeCustomization": { "type": "object", "description": "The Node Customization resource.", "properties": { "properties": { "$ref": "#/definitions/NodeCustomizationProperties", "description": "The resource-specific properties for this resource." }, "eTag": { "type": "string", "description": "If eTag is provided in the response body, it may also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.", "readOnly": true } }, "allOf": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" } ] }, "NodeCustomizationListResult": { "type": "object", "description": "The response of a NodeCustomization list operation.", "properties": { "value": { "type": "array", "description": "The NodeCustomization items on this page", "items": { "$ref": "#/definitions/NodeCustomization" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "NodeCustomizationProperties": { "type": "object", "description": "The properties of the Node Customization resource.", "properties": { "containerImages": { "type": "array", "description": "The list of container images to cache on nodes. See https://kubernetes.io/docs/concepts/containers/images/#image-names", "items": { "type": "string" } }, "identityProfile": { "$ref": "../../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/UserAssignedIdentity", "description": "The identity used to execute node customization tasks during image build time and provisioning time. \nIf not specified the default agentpool identity will be used.\nThis does not affect provisioned nodes." }, "version": { "type": "string", "description": "The client-provided version of the node customization.", "pattern": "^(?![.-])[A-Za-z0-9_.-]{1,63}$" }, "provisioningState": { "$ref": "#/definitions/ProvisioningState", "description": "The provisioning state of the node customization.", "readOnly": true }, "customizationScripts": { "type": "array", "description": "The scripts to customize the node before or after image capture.", "items": { "$ref": "#/definitions/NodeCustomizationScript" }, "x-ms-identifiers": [] } } }, "NodeCustomizationScript": { "type": "object", "description": "Node customization script", "properties": { "name": { "type": "string", "description": "The name for the customization script. \nMust be unique within the node customization resource.\nCan only contain lowercase alphanumeric,'-' or '.' characters.", "maxLength": 263, "pattern": "^[a-z0-9]([a-z0-9\\.\\-]*[a-z0-9])?$", "x-ms-mutability": [ "read", "create" ] }, "executionPoint": { "$ref": "#/definitions/ExecutionPoint", "description": "The stage at which the script is executed.\nSpecifying `NodeImageBuildTime` will ensure changes are persisted into the node image." }, "scriptType": { "$ref": "#/definitions/ScriptType", "description": "The runtime environment for the script (e.g. Bash).", "example": "Bash" }, "script": { "type": "string", "description": "The script content to be executed in plain text. Do not include secrets.", "example": "touch /hello_world.txt" }, "rebootAfter": { "type": "boolean", "description": "Whether the node should reboot after successful script execution." } }, "required": [ "name", "executionPoint", "scriptType" ] }, "NodeCustomizationUpdate": { "type": "object", "description": "The type used for update operations of the NodeCustomization.", "properties": { "tags": { "type": "object", "description": "Resource tags.", "additionalProperties": { "type": "string" } } } }, "NodeCustomizationVersion": { "type": "object", "description": "A version of the Node Customization resource.", "properties": { "properties": { "$ref": "#/definitions/NodeCustomizationProperties", "description": "The resource-specific properties for this resource." } }, "allOf": [ { "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" } ] }, "NodeCustomizationVersionListResult": { "type": "object", "description": "The response of a NodeCustomizationVersion list operation.", "properties": { "value": { "type": "array", "description": "The NodeCustomizationVersion items on this page", "items": { "$ref": "#/definitions/NodeCustomizationVersion" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "ProvisioningState": { "type": "string", "description": "The provisioning state of the image customization.", "enum": [ "Succeeded", "Failed", "Canceled", "Provisioning", "Updating", "Deleting", "Accepted" ], "x-ms-enum": { "name": "ProvisioningState", "modelAsString": true, "values": [ { "name": "Succeeded", "value": "Succeeded", "description": "Resource has been created." }, { "name": "Failed", "value": "Failed", "description": "Resource creation failed." }, { "name": "Canceled", "value": "Canceled", "description": "Resource creation was canceled." }, { "name": "Provisioning", "value": "Provisioning", "description": "Provisioning the resource is in progress" }, { "name": "Updating", "value": "Updating", "description": "Resource is being updated" }, { "name": "Deleting", "value": "Deleting", "description": "Resource is being deleted" }, { "name": "Accepted", "value": "Accepted", "description": "The change request has been accepted" } ] }, "readOnly": true }, "ScriptType": { "type": "string", "description": "The script type.", "enum": [ "Bash", "PowerShell" ], "x-ms-enum": { "name": "ScriptType", "modelAsString": true, "values": [ { "name": "bash", "value": "Bash", "description": "Bash script." }, { "name": "powerShell", "value": "PowerShell", "description": "PowerShell script." } ] } } }, "parameters": {} }