{ "swagger": "2.0", "info": { "version": "2024-11-01", "title": "FluxConfigurationClient", "description": "Use these APIs to create Flux Configuration resources through ARM, for Kubernetes Clusters." }, "host": "management.azure.com", "schemes": [ "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "security": [ { "azure_auth": [ "user_impersonation" ] } ], "securityDefinitions": { "azure_auth": { "type": "oauth2", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "flow": "implicit", "description": "Azure Active Directory OAuth2 Flow", "scopes": { "user_impersonation": "impersonate your user account" } } }, "paths": { "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}": { "get": { "tags": [ "FluxConfiguration", "Flux" ], "description": "Gets details of the Flux Configuration.", "operationId": "FluxConfigurations_Get", "x-ms-examples": { "Get Flux Configuration": { "$ref": "./examples/GetFluxConfiguration.json" } }, "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterRpParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterResourceNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterNameParameter" }, { "$ref": "#/parameters/FluxConfigurationNameParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/FluxConfiguration" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } } }, "put": { "tags": [ "FluxConfiguration", "Flux" ], "description": "Create a new Kubernetes Flux Configuration.", "operationId": "FluxConfigurations_CreateOrUpdate", "x-ms-examples": { "Create Flux Configuration": { "$ref": "./examples/CreateFluxConfiguration.json" }, "Create Flux Configuration with Bucket Source Kind": { "$ref": "./examples/CreateFluxConfigurationWithBucket.json" }, "Create Flux Configuration with OCIRepository Source Kind": { "$ref": "./examples/CreateFluxConfigurationWithOCIRepository.json" }, "Create Flux Configuration with Git Repository Provider": { "$ref": "./examples/CreateFluxConfigurationWithProvider.json" } }, "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterRpParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterResourceNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterNameParameter" }, { "$ref": "#/parameters/FluxConfigurationNameParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "fluxConfiguration", "in": "body", "required": true, "schema": { "$ref": "#/definitions/FluxConfiguration" }, "description": "Properties necessary to Create a FluxConfiguration." } ], "responses": { "200": { "description": "Request received successfully for an existing resource.", "schema": { "$ref": "#/definitions/FluxConfiguration" } }, "201": { "description": "Request received successfully.", "schema": { "$ref": "#/definitions/FluxConfiguration" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" } }, "patch": { "tags": [ "FluxConfiguration", "Flux" ], "description": "Update an existing Kubernetes Flux Configuration.", "operationId": "FluxConfigurations_Update", "x-ms-examples": { "Patch Flux Configuration": { "$ref": "./examples/PatchFluxConfiguration.json" } }, "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterRpParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterResourceNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterNameParameter" }, { "$ref": "#/parameters/FluxConfigurationNameParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "fluxConfigurationPatch", "in": "body", "required": true, "schema": { "$ref": "#/definitions/FluxConfigurationPatch" }, "description": "Properties to Patch in an existing Flux Configuration." } ], "responses": { "202": { "description": "Request received successfully, and the resource will be updated asynchronously.", "schema": { "$ref": "#/definitions/FluxConfiguration" } }, "200": { "description": "No update is done to fluxConfiguration so return OK.", "schema": { "$ref": "#/definitions/FluxConfiguration" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" } }, "delete": { "tags": [ "FluxConfiguration", "Flux" ], "description": "This will delete the YAML file used to set up the Flux Configuration, thus stopping future sync from the source repo.", "operationId": "FluxConfigurations_Delete", "x-ms-examples": { "Delete Flux Configuration": { "$ref": "./examples/DeleteFluxConfiguration.json" } }, "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterRpParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterResourceNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterNameParameter" }, { "$ref": "#/parameters/FluxConfigurationNameParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "forceDelete", "in": "query", "description": "Delete the extension resource in Azure - not the normal asynchronous delete.", "type": "boolean" } ], "responses": { "200": { "description": "OK. The request has been completed successfully." }, "202": { "description": "Accepted. The request has been accepted for processing." }, "204": { "description": "No Content. The request has been accepted but the configuration was not found." }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations": { "get": { "tags": [ "FluxConfiguration", "Flux" ], "description": "List all Flux Configurations.", "operationId": "FluxConfigurations_List", "x-ms-examples": { "List Flux Configuration": { "$ref": "./examples/ListFluxConfigurations.json" } }, "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterRpParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterResourceNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterNameParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/FluxConfigurationsList" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}/operations/{operationId}": { "get": { "tags": [ "FluxConfiguration Operation Status" ], "operationId": "FluxConfigOperationStatus_Get", "description": "Get Async Operation status", "x-ms-examples": { "FluxConfigurationAsyncOperationStatus Get": { "$ref": "./examples/GetFluxConfigurationAsyncOperationStatus.json" } }, "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterRpParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterResourceNameParameter" }, { "$ref": "./common/parameters.json#/parameters/ClusterNameParameter" }, { "$ref": "#/parameters/FluxConfigurationNameParameter" }, { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "operationId", "in": "path", "description": "operation Id", "required": true, "type": "string" } ], "responses": { "200": { "description": "FluxConfiguration Operation Status", "schema": { "$ref": "./common/definitions.json#/definitions/OperationStatusResult" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } } } } }, "definitions": { "ScopeDefinition": { "description": "Scope at which the configuration will be installed.", "type": "string", "enum": [ "cluster", "namespace" ], "default": "cluster", "x-ms-enum": { "name": "ScopeType", "modelAsString": true } }, "SourceKindDefinition": { "description": "Source Kind to pull the configuration data from.", "type": "string", "enum": [ "GitRepository", "Bucket", "AzureBlob", "OCIRepository" ], "x-ms-enum": { "name": "SourceKindType", "modelAsString": true } }, "GitRepositoryDefinition": { "description": "Parameters to reconcile to the GitRepository source kind type.", "type": "object", "x-nullable": true, "properties": { "url": { "description": "The URL to sync for the flux configuration git repository.", "type": "string", "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the cluster git repository source with the remote.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the cluster git repository source with the remote.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "repositoryRef": { "description": "The source reference for the GitRepository object.", "$ref": "#/definitions/RepositoryRefDefinition" }, "sshKnownHosts": { "description": "Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH", "type": "string", "x-nullable": true }, "httpsUser": { "description": "Plaintext HTTPS username used to access private git repositories over HTTPS", "type": "string", "x-nullable": true }, "httpsCACert": { "description": "Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS", "type": "string", "x-nullable": true }, "localAuthRef": { "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", "x-nullable": true }, "provider": { "description": "Name of the provider used for authentication.", "type": "string", "x-nullable": true, "enum": [ "Azure", "Generic" ], "x-ms-enum": { "name": "ProviderType", "modelAsString": true, "values": [ { "name": "Azure", "value": "Azure", "description": "Azure provider can be used to authenticate to Azure DevOps repositories using Managed Identity." }, { "name": "Generic", "value": "Generic", "description": "Generic is the default provider that indicates secret-based authentication mechanism." } ] } } } }, "GitRepositoryPatchDefinition": { "description": "Parameters to reconcile to the GitRepository source kind type.", "type": "object", "x-nullable": true, "properties": { "url": { "description": "The URL to sync for the flux configuration git repository.", "type": "string", "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the cluster git repository source with the remote.", "type": "integer", "format": "int64", "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the cluster git repository source with the remote.", "type": "integer", "format": "int64", "x-nullable": true }, "repositoryRef": { "description": "The source reference for the GitRepository object.", "$ref": "#/definitions/RepositoryRefDefinition" }, "sshKnownHosts": { "description": "Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH", "type": "string", "x-nullable": true }, "httpsUser": { "description": "Plaintext HTTPS username used to access private git repositories over HTTPS", "type": "string", "x-nullable": true }, "httpsCACert": { "description": "Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS", "type": "string", "x-nullable": true }, "localAuthRef": { "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", "x-nullable": true }, "provider": { "description": "Name of the provider used for authentication.", "type": "string", "x-nullable": true, "enum": [ "Azure", "Generic" ], "x-ms-enum": { "name": "ProviderType", "modelAsString": true, "values": [ { "name": "Azure", "value": "Azure", "description": "Azure provider can be used to authenticate to Azure DevOps repositories using Managed Identity." }, { "name": "Generic", "value": "Generic", "description": "Generic is the default provider that indicates secret-based authentication mechanism." } ] } } } }, "RepositoryRefDefinition": { "description": "The source reference for the GitRepository object.", "type": "object", "x-nullable": true, "properties": { "branch": { "description": "The git repository branch name to checkout.", "type": "string", "x-nullable": true }, "tag": { "description": "The git repository tag name to checkout. This takes precedence over branch.", "type": "string", "x-nullable": true }, "semver": { "description": "The semver range used to match against git repository tags. This takes precedence over tag.", "type": "string", "x-nullable": true }, "commit": { "description": "The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence over semver.", "type": "string", "x-nullable": true } } }, "BucketDefinition": { "description": "Parameters to reconcile to the Bucket source kind type.", "type": "object", "x-nullable": true, "properties": { "url": { "description": "The URL to sync for the flux configuration S3 bucket.", "type": "string" }, "bucketName": { "description": "The bucket name to sync from the url endpoint for the flux configuration.", "type": "string" }, "insecure": { "description": "Specify whether to use insecure communication when puling data from the S3 bucket.", "type": "boolean", "default": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the cluster bucket source with the remote.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the cluster bucket source with the remote.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "accessKey": { "description": "Plaintext access key used to securely access the S3 bucket", "type": "string", "x-nullable": true }, "localAuthRef": { "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", "x-nullable": true } } }, "BucketPatchDefinition": { "description": "Parameters to reconcile to the Bucket source kind type.", "type": "object", "x-nullable": true, "properties": { "url": { "description": "The URL to sync for the flux configuration S3 bucket.", "type": "string", "x-nullable": true }, "bucketName": { "description": "The bucket name to sync from the url endpoint for the flux configuration.", "type": "string", "x-nullable": true }, "insecure": { "description": "Specify whether to use insecure communication when puling data from the S3 bucket.", "type": "boolean", "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the cluster bucket source with the remote.", "type": "integer", "format": "int64", "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the cluster bucket source with the remote.", "type": "integer", "format": "int64", "x-nullable": true }, "accessKey": { "description": "Plaintext access key used to securely access the S3 bucket", "type": "string", "x-nullable": true }, "localAuthRef": { "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", "x-nullable": true } } }, "AzureBlobDefinition": { "description": "Parameters to reconcile to the AzureBlob source kind type.", "type": "object", "x-nullable": true, "properties": { "url": { "description": "The URL to sync for the flux configuration Azure Blob storage account.", "type": "string", "x-nullable": true }, "containerName": { "description": "The Azure Blob container name to sync from the url endpoint for the flux configuration.", "type": "string", "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the cluster Azure Blob source with the remote.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the cluster Azure Blob source with the remote.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "servicePrincipal": { "description": "Parameters to authenticate using Service Principal.", "type": "object", "$ref": "#/definitions/ServicePrincipalDefinition" }, "accountKey": { "description": "The account key (shared key) to access the storage account", "type": "string", "x-nullable": true, "x-ms-secret": true }, "sasToken": { "description": "The Shared Access token to access the storage container", "type": "string", "x-nullable": true, "x-ms-secret": true }, "managedIdentity": { "description": "Parameters to authenticate using a Managed Identity.", "type": "object", "$ref": "#/definitions/ManagedIdentityDefinition" }, "localAuthRef": { "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", "x-nullable": true } } }, "AzureBlobPatchDefinition": { "description": "Parameters to reconcile to the AzureBlob source kind type.", "type": "object", "x-nullable": true, "properties": { "url": { "description": "The URL to sync for the flux configuration Azure Blob storage account.", "type": "string", "x-nullable": true }, "containerName": { "description": "The Azure Blob container name to sync from the url endpoint for the flux configuration.", "type": "string", "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the cluster Azure Blob source with the remote.", "type": "integer", "format": "int64", "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the cluster Azure Blob source with the remote.", "type": "integer", "format": "int64", "x-nullable": true }, "servicePrincipal": { "description": "Parameters to authenticate using Service Principal.", "type": "object", "$ref": "#/definitions/ServicePrincipalPatchDefinition" }, "accountKey": { "description": "The account key (shared key) to access the storage account", "type": "string", "x-nullable": true, "x-ms-secret": true }, "sasToken": { "description": "The Shared Access token to access the storage container", "type": "string", "x-nullable": true, "x-ms-secret": true }, "managedIdentity": { "description": "Parameters to authenticate using a Managed Identity.", "type": "object", "$ref": "#/definitions/ManagedIdentityPatchDefinition" }, "localAuthRef": { "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", "x-nullable": true } } }, "ServicePrincipalDefinition": { "description": "Parameters to authenticate using Service Principal.", "type": "object", "x-nullable": true, "properties": { "clientId": { "description": "The client Id for authenticating a Service Principal.", "type": "string", "x-nullable": true }, "tenantId": { "description": "The tenant Id for authenticating a Service Principal", "type": "string", "x-nullable": true }, "clientSecret": { "description": "The client secret for authenticating a Service Principal", "type": "string", "x-nullable": true, "x-ms-secret": true }, "clientCertificate": { "description": "Base64-encoded certificate used to authenticate a Service Principal ", "type": "string", "x-nullable": true, "x-ms-secret": true }, "clientCertificatePassword": { "description": "The password for the certificate used to authenticate a Service Principal ", "type": "string", "x-nullable": true, "x-ms-secret": true }, "clientCertificateSendChain": { "description": "Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate", "type": "boolean", "default": false } } }, "ServicePrincipalPatchDefinition": { "description": "Parameters to authenticate using Service Principal.", "type": "object", "x-nullable": true, "properties": { "clientId": { "description": "The client Id for authenticating a Service Principal.", "type": "string", "x-nullable": true }, "tenantId": { "description": "The tenant Id for authenticating a Service Principal", "type": "string", "x-nullable": true }, "clientSecret": { "description": "The client secret for authenticating a Service Principal", "type": "string", "x-nullable": true, "x-ms-secret": true }, "clientCertificate": { "description": "Base64-encoded certificate used to authenticate a Service Principal ", "type": "string", "x-nullable": true, "x-ms-secret": true }, "clientCertificatePassword": { "description": "The password for the certificate used to authenticate a Service Principal ", "type": "string", "x-nullable": true, "x-ms-secret": true }, "clientCertificateSendChain": { "description": "Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate", "type": "boolean" } } }, "ManagedIdentityDefinition": { "description": "Parameters to authenticate using a Managed Identity.", "type": "object", "x-nullable": true, "properties": { "clientId": { "description": "The client Id for authenticating a Managed Identity.", "type": "string", "x-nullable": true } } }, "ManagedIdentityPatchDefinition": { "description": "Parameters to authenticate using a Managed Identity.", "type": "object", "x-nullable": true, "properties": { "clientId": { "description": "The client Id for authenticating a Managed Identity.", "type": "string", "x-nullable": true } } }, "OCIRepositoryDefinition": { "description": "Parameters to reconcile to the OCIRepository source kind type.", "type": "object", "x-nullable": true, "properties": { "url": { "description": "The URL to sync for the flux configuration OCI repository.", "type": "string", "format": "uri", "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the cluster OCI repository source with the remote.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the cluster OCI repository source with the remote.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "repositoryRef": { "description": "The source reference for the OCIRepository object.", "$ref": "#/definitions/OCIRepositoryRefDefinition" }, "layerSelector": { "description": "The layer to be pulled from the OCI artifact.", "$ref": "#/definitions/LayerSelectorDefinition" }, "verify": { "description": "Verification of the authenticity of an OCI Artifact.", "$ref": "#/definitions/VerifyDefinition" }, "insecure": { "description": "Specify whether to allow connecting to a non-TLS HTTP container registry.", "type": "boolean", "default": false }, "useWorkloadIdentity": { "description": "Specifies whether to use Workload Identity to authenticate with the OCI repository.", "type": "boolean", "default": false }, "serviceAccountName": { "description": "The service account name to authenticate with the OCI repository.", "type": "string", "x-nullable": true }, "tlsConfig": { "description": "Parameters to authenticate using TLS config for OCI repository.", "type": "object", "$ref": "#/definitions/TlsConfigDefinition" }, "localAuthRef": { "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", "x-nullable": true } } }, "OCIRepositoryPatchDefinition": { "description": "Parameters to reconcile to the OCIRepository source kind type.", "type": "object", "x-nullable": true, "properties": { "url": { "description": "The URL to sync for the flux configuration OCI repository.", "type": "string", "format": "uri", "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the cluster OCI repository source with the remote.", "type": "integer", "format": "int64", "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the cluster OCI repository source with the remote.", "type": "integer", "format": "int64", "x-nullable": true }, "repositoryRef": { "description": "The source reference for the OCIRepository object.", "$ref": "#/definitions/OCIRepositoryRefPatchDefinition" }, "layerSelector": { "description": "The layer to be pulled from the OCI artifact.", "$ref": "#/definitions/LayerSelectorPatchDefinition" }, "verify": { "description": "Verification of the authenticity of an OCI Artifact.", "$ref": "#/definitions/VerifyPatchDefinition" }, "insecure": { "description": "Specify whether to allow connecting to a non-TLS HTTP container registry.", "type": "boolean", "default": false }, "useWorkloadIdentity": { "description": "Specifies whether to use Workload Identity to authenticate with the OCI repository.", "type": "boolean", "default": false }, "serviceAccountName": { "description": "The service account name to authenticate with the OCI repository.", "type": "string", "x-nullable": true }, "tlsConfig": { "description": "Parameters to authenticate using TLS config for OCI repository.", "type": "object", "$ref": "#/definitions/TlsConfigPatchDefinition" }, "localAuthRef": { "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", "x-nullable": true } } }, "TlsConfigDefinition": { "description": "Parameters to authenticate using TLS config for OCI repository.", "type": "object", "x-nullable": true, "properties": { "clientCertificate": { "description": "Base64-encoded certificate used to authenticate a client with the OCI repository.", "type": "string", "x-nullable": true, "x-ms-secret": true }, "privateKey": { "description": "Base64-encoded private key used to authenticate a client with the OCI repository.", "type": "string", "x-nullable": true, "x-ms-secret": true }, "caCertificate": { "description": "Base64-encoded CA certificate used to verify the server.", "type": "string", "x-nullable": true, "x-ms-secret": true } } }, "TlsConfigPatchDefinition": { "description": "Parameters to authenticate using TLS config for OCI repository.", "type": "object", "x-nullable": true, "properties": { "clientCertificate": { "description": "Base64-encoded certificate used to authenticate a client with the OCI repository.", "type": "string", "x-nullable": true, "x-ms-secret": true }, "privateKey": { "description": "Base64-encoded private key used to authenticate a client with the OCI repository.", "type": "string", "x-nullable": true, "x-ms-secret": true }, "caCertificate": { "description": "Base64-encoded CA certificate used to verify the server.", "type": "string", "x-nullable": true, "x-ms-secret": true } } }, "OCIRepositoryRefDefinition": { "description": "The source reference for the OCIRepository object.", "type": "object", "x-nullable": true, "properties": { "tag": { "description": "The OCI repository image tag name to pull. This defaults to 'latest'.", "type": "string", "x-nullable": true }, "semver": { "description": "The semver range used to match against OCI repository tags. This takes precedence over tag.", "type": "string", "x-nullable": true }, "digest": { "description": "The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver.", "type": "string", "x-nullable": true } } }, "OCIRepositoryRefPatchDefinition": { "description": "The source reference for the OCIRepository object.", "type": "object", "x-nullable": true, "properties": { "tag": { "description": "The OCI repository image tag name to pull. This defaults to 'latest'.", "type": "string", "x-nullable": true }, "semver": { "description": "The semver range used to match against OCI repository tags. This takes precedence over tag.", "type": "string", "x-nullable": true }, "digest": { "description": "The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver.", "type": "string", "x-nullable": true } } }, "LayerSelectorDefinition": { "description": "Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled.", "type": "object", "x-nullable": true, "properties": { "mediaType": { "description": "The first layer matching the specified media type will be used.", "type": "string", "x-nullable": true }, "operation": { "description": "The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.", "$ref": "#/definitions/OperationDefinition", "x-nullable": true } } }, "LayerSelectorPatchDefinition": { "description": "Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled.", "type": "object", "x-nullable": true, "properties": { "mediaType": { "description": "The first layer matching the specified media type will be used.", "type": "string", "x-nullable": true }, "operation": { "description": "The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.", "$ref": "#/definitions/OperationDefinition", "x-nullable": true } } }, "OperationDefinition": { "description": "The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.", "type": "string", "enum": [ "extract", "copy" ], "x-ms-enum": { "name": "OperationType", "modelAsString": true } }, "VerifyDefinition": { "description": "Parameters to verify the authenticity of an OCI Artifact.", "type": "object", "x-nullable": true, "properties": { "provider": { "description": "Verification provider name.", "type": "string" }, "verificationConfig": { "description": "An object containing trusted public keys of trusted authors.", "type": "object", "x-nullable": true, "additionalProperties": { "type": "string" } }, "matchOidcIdentity": { "description": "Array defining the criteria for matching the identity while verifying an OCI artifact.", "type": "array", "items": { "type": "object", "$ref": "#/definitions/MatchOidcIdentityDefinition" }, "x-ms-identifiers": [], "x-nullable": true } } }, "VerifyPatchDefinition": { "description": "Parameters to verify the authenticity of an OCI Artifact.", "type": "object", "x-nullable": true, "properties": { "provider": { "description": "Verification provider name.", "type": "string" }, "verificationConfig": { "description": "An object containing trusted public keys of trusted authors.", "type": "object", "x-nullable": true, "additionalProperties": { "type": "string" } }, "matchOidcIdentity": { "description": "Array defining the criteria for matching the OIDC identity while verifying an OCI artifact.", "type": "array", "items": { "type": "object", "$ref": "#/definitions/MatchOidcIdentityPatchDefinition" }, "x-ms-identifiers": [], "x-nullable": true } } }, "MatchOidcIdentityDefinition": { "description": "MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact.", "type": "object", "x-nullable": true, "properties": { "issuer": { "description": "The regex pattern to match against to verify the OIDC issuer.", "type": "string" }, "subject": { "description": "The regex pattern to match against to verify the identity subject.", "type": "string" } } }, "MatchOidcIdentityPatchDefinition": { "description": "MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact.", "type": "object", "x-nullable": true, "properties": { "issuer": { "description": "The regex pattern to match against to verify the OIDC issuer.", "type": "string" }, "subject": { "description": "The regex pattern to match against to verify the identity subject.", "type": "string" } } }, "PostBuildDefinition": { "description": "The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.", "type": "object", "x-nullable": true, "properties": { "substitute": { "description": "Key/value pairs holding the variables to be substituted in this Kustomization.", "type": "object", "x-nullable": true, "additionalProperties": { "type": "string" } }, "substituteFrom": { "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", "type": "array", "items": { "type": "object", "$ref": "#/definitions/SubstituteFromDefinition" }, "x-ms-identifiers": [], "x-nullable": true } } }, "PostBuildPatchDefinition": { "description": "The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.", "type": "object", "x-nullable": true, "properties": { "substitute": { "description": "Key/value pairs holding the variables to be substituted in this Kustomization.", "type": "object", "x-nullable": true, "additionalProperties": { "type": "string" } }, "substituteFrom": { "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", "type": "array", "items": { "type": "object", "$ref": "#/definitions/SubstituteFromPatchDefinition" }, "x-ms-identifiers": [], "x-nullable": true } } }, "SubstituteFromDefinition": { "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", "type": "object", "x-nullable": true, "properties": { "kind": { "description": "Define whether it is ConfigMap or Secret that holds the variables to be used in substitution.", "type": "string" }, "name": { "description": "Name of the ConfigMap/Secret that holds the variables to be used in substitution.", "type": "string" }, "optional": { "description": "Set to True to proceed without ConfigMap/Secret, if it is not present.", "type": "boolean", "default": false } } }, "SubstituteFromPatchDefinition": { "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", "type": "object", "x-nullable": true, "properties": { "kind": { "description": "Define whether it is ConfigMap or Secret that holds the variables to be used in substitution.", "type": "string" }, "name": { "description": "Name of the ConfigMap/Secret that holds the variables to be used in substitution.", "type": "string" }, "optional": { "description": "Set to True to proceed without ConfigMap/Secret, if it is not present.", "type": "boolean", "default": false } } }, "KustomizationDefinition": { "description": "The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.", "type": "object", "x-nullable": true, "properties": { "name": { "description": "Name of the Kustomization, matching the key in the Kustomizations object map.", "type": "string", "readOnly": true }, "path": { "description": "The path in the source reference to reconcile on the cluster.", "type": "string", "default": "" }, "dependsOn": { "description": "Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation.", "type": "array", "items": { "description": "Kustomization name of dependency.", "type": "string" }, "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the Kustomization on the cluster.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the Kustomization on the cluster.", "type": "integer", "format": "int64", "default": 600, "x-nullable": true }, "retryIntervalInSeconds": { "description": "The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation.", "type": "integer", "format": "int64", "x-nullable": true }, "prune": { "description": "Enable/disable garbage collections of Kubernetes objects created by this Kustomization.", "type": "boolean", "default": false }, "force": { "description": "Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change.", "type": "boolean", "default": false }, "wait": { "description": "Enable/disable health check for all Kubernetes objects created by this Kustomization.", "type": "boolean", "default": true }, "postBuild": { "description": "Used for variable substitution for this Kustomization after kustomize build.", "type": "object", "$ref": "#/definitions/PostBuildDefinition", "x-nullable": true } } }, "KustomizationPatchDefinition": { "description": "The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.", "type": "object", "x-nullable": true, "properties": { "path": { "description": "The path in the source reference to reconcile on the cluster.", "type": "string", "x-nullable": true }, "dependsOn": { "description": "Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation.", "type": "array", "items": { "description": "Kustomization name of dependency.", "type": "string" }, "x-nullable": true }, "timeoutInSeconds": { "description": "The maximum time to attempt to reconcile the Kustomization on the cluster.", "type": "integer", "format": "int64", "x-nullable": true }, "syncIntervalInSeconds": { "description": "The interval at which to re-reconcile the Kustomization on the cluster.", "type": "integer", "format": "int64", "x-nullable": true }, "retryIntervalInSeconds": { "description": "The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation.", "type": "integer", "format": "int64", "x-nullable": true }, "prune": { "description": "Enable/disable garbage collections of Kubernetes objects created by this Kustomization.", "type": "boolean", "x-nullable": true }, "force": { "description": "Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change.", "type": "boolean", "x-nullable": true }, "wait": { "description": "Enable/disable health check for all Kubernetes objects created by this Kustomization.", "type": "boolean", "x-nullable": true }, "postBuild": { "description": "Used for variable substitution for this Kustomization after kustomize build.", "type": "object", "$ref": "#/definitions/PostBuildPatchDefinition", "x-nullable": true } } }, "KustomizationValidationDefinition": { "description": "Specify whether to validate the Kubernetes objects referenced in the Kustomization before applying them to the cluster.", "type": "string", "enum": [ "none", "client", "server" ], "default": "none", "x-ms-enum": { "name": "KustomizationValidationType", "modelAsString": true } }, "ObjectStatusDefinition": { "description": "Statuses of objects deployed by the user-specified kustomizations from the git repository.", "type": "object", "x-nullable": true, "properties": { "name": { "description": "Name of the applied object", "type": "string" }, "namespace": { "description": "Namespace of the applied object", "type": "string" }, "kind": { "description": "Kind of the applied object", "type": "string" }, "complianceState": { "description": "Compliance state of the applied object showing whether the applied object has come into a ready state on the cluster.", "type": "string", "$ref": "#/definitions/FluxComplianceStateDefinition" }, "appliedBy": { "description": "Object reference to the Kustomization that applied this object", "type": "object", "$ref": "#/definitions/ObjectReferenceDefinition", "x-nullable": true }, "statusConditions": { "description": "List of Kubernetes object status conditions present on the cluster", "type": "array", "items": { "type": "object", "$ref": "#/definitions/ObjectStatusConditionDefinition" }, "x-nullable": true, "x-ms-identifiers": [ "type" ] }, "helmReleaseProperties": { "description": "Additional properties that are provided from objects of the HelmRelease kind", "type": "object", "$ref": "#/definitions/HelmReleasePropertiesDefinition", "x-nullable": true } } }, "ObjectReferenceDefinition": { "description": "Object reference to a Kubernetes object on a cluster", "type": "object", "x-nullable": true, "properties": { "name": { "description": "Name of the object", "type": "string" }, "namespace": { "description": "Namespace of the object", "type": "string" } } }, "ObjectStatusConditionDefinition": { "description": "Status condition of Kubernetes object", "type": "object", "properties": { "lastTransitionTime": { "description": "Last time this status condition has changed", "type": "string", "format": "date-time" }, "message": { "description": "A more verbose description of the object status condition", "type": "string" }, "reason": { "description": "Reason for the specified status condition type status", "type": "string" }, "status": { "description": "Status of the Kubernetes object condition type", "type": "string" }, "type": { "description": "Object status condition type for this object", "type": "string" } } }, "HelmReleasePropertiesDefinition": { "description": "Properties for HelmRelease objects", "type": "object", "x-nullable": true, "properties": { "lastRevisionApplied": { "description": "The revision number of the last released object change", "type": "integer", "format": "int64", "x-nullable": true }, "helmChartRef": { "description": "The reference to the HelmChart object used as the source to this HelmRelease", "type": "object", "$ref": "#/definitions/ObjectReferenceDefinition" }, "failureCount": { "description": "Total number of times that the HelmRelease failed to install or upgrade", "type": "integer", "format": "int64", "x-nullable": true }, "installFailureCount": { "description": "Number of times that the HelmRelease failed to install", "type": "integer", "format": "int64", "x-nullable": true }, "upgradeFailureCount": { "description": "Number of times that the HelmRelease failed to upgrade", "type": "integer", "format": "int64", "x-nullable": true } } }, "FluxComplianceStateDefinition": { "description": "Compliance state of the cluster object.", "type": "string", "enum": [ "Compliant", "Non-Compliant", "Pending", "Suspended", "Unknown" ], "default": "Unknown", "x-ms-enum": { "name": "FluxComplianceState", "modelAsString": true } }, "FluxConfiguration": { "type": "object", "description": "The Flux Configuration object returned in Get & Put response.", "properties": { "properties": { "type": "object", "x-ms-client-flatten": true, "description": "Properties to create a Flux Configuration resource", "properties": { "scope": { "description": "Scope at which the operator will be installed.", "$ref": "#/definitions/ScopeDefinition", "x-ms-mutability": [ "create", "read" ] }, "namespace": { "description": "The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.", "type": "string", "default": "default", "x-ms-mutability": [ "create", "read" ] }, "sourceKind": { "description": "Source Kind to pull the configuration data from.", "$ref": "#/definitions/SourceKindDefinition", "default": "GitRepository" }, "suspend": { "description": "Whether this configuration should suspend its reconciliation of its kustomizations and sources.", "type": "boolean", "default": false }, "gitRepository": { "description": "Parameters to reconcile to the GitRepository source kind type.", "type": "object", "$ref": "#/definitions/GitRepositoryDefinition" }, "bucket": { "description": "Parameters to reconcile to the Bucket source kind type.", "type": "object", "$ref": "#/definitions/BucketDefinition" }, "azureBlob": { "description": "Parameters to reconcile to the AzureBlob source kind type.", "type": "object", "$ref": "#/definitions/AzureBlobDefinition" }, "ociRepository": { "description": "Parameters to reconcile to the OCIRepository source kind type.", "type": "object", "$ref": "#/definitions/OCIRepositoryDefinition" }, "kustomizations": { "description": "Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.", "type": "object", "x-nullable": true, "additionalProperties": { "type": "object", "$ref": "#/definitions/KustomizationDefinition" } }, "configurationProtectedSettings": { "description": "Key-value pairs of protected configuration settings for the configuration", "type": "object", "x-nullable": true, "x-ms-secret": true, "additionalProperties": { "type": "string" } }, "statuses": { "description": "Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects provisioned by the fluxConfiguration.", "type": "array", "readOnly": true, "x-nullable": true, "items": { "type": "object", "$ref": "#/definitions/ObjectStatusDefinition" }, "x-ms-identifiers": [ "name", "namespace", "kind" ] }, "repositoryPublicKey": { "description": "Public Key associated with this fluxConfiguration (either generated within the cluster or provided by the user).", "type": "string", "x-nullable": true, "readOnly": true }, "sourceSyncedCommitId": { "description": "Branch and/or SHA of the source commit synced with the cluster.", "type": "string", "x-nullable": true, "readOnly": true }, "sourceUpdatedAt": { "description": "Datetime the fluxConfiguration synced its source on the cluster.", "type": "string", "format": "date-time", "x-nullable": true, "readOnly": true }, "statusUpdatedAt": { "description": "Datetime the fluxConfiguration synced its status on the cluster with Azure.", "type": "string", "format": "date-time", "x-nullable": true, "readOnly": true }, "waitForReconciliation": { "description": "Whether flux configuration deployment should wait for cluster to reconcile the kustomizations.", "type": "boolean", "x-nullable": true }, "reconciliationWaitDuration": { "description": "Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D", "type": "string", "x-nullable": true }, "complianceState": { "description": "Combined status of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects.", "type": "string", "readOnly": true, "$ref": "#/definitions/FluxComplianceStateDefinition" }, "provisioningState": { "description": "Status of the creation of the fluxConfiguration.", "type": "string", "readOnly": true, "$ref": "./common/definitions.json#/definitions/ProvisioningStateDefinition" }, "errorMessage": { "description": "Error message returned to the user in the case of provisioning failure.", "type": "string", "x-nullable": true, "readOnly": true } } }, "systemData": { "description": "Top level metadata https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources", "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData" } }, "allOf": [ { "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" } ] }, "FluxConfigurationPatch": { "description": "The Flux Configuration Patch Request object.", "type": "object", "properties": { "properties": { "type": "object", "x-ms-client-flatten": true, "description": "Updatable properties of an Flux Configuration Patch Request", "properties": { "sourceKind": { "description": "Source Kind to pull the configuration data from.", "$ref": "#/definitions/SourceKindDefinition", "x-nullable": true }, "suspend": { "description": "Whether this configuration should suspend its reconciliation of its kustomizations and sources.", "type": "boolean", "x-nullable": true }, "gitRepository": { "description": "Parameters to reconcile to the GitRepository source kind type.", "type": "object", "$ref": "#/definitions/GitRepositoryPatchDefinition" }, "bucket": { "description": "Parameters to reconcile to the Bucket source kind type.", "type": "object", "$ref": "#/definitions/BucketPatchDefinition" }, "azureBlob": { "description": "Parameters to reconcile to the AzureBlob source kind type.", "type": "object", "$ref": "#/definitions/AzureBlobPatchDefinition" }, "ociRepository": { "description": "Parameters to reconcile to the OCIRepository source kind type.", "type": "object", "$ref": "#/definitions/OCIRepositoryPatchDefinition" }, "kustomizations": { "description": "Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.", "type": "object", "x-nullable": true, "additionalProperties": { "type": "object", "$ref": "#/definitions/KustomizationPatchDefinition" } }, "configurationProtectedSettings": { "description": "Key-value pairs of protected configuration settings for the configuration", "type": "object", "x-nullable": true, "x-ms-secret": true, "additionalProperties": { "type": "string" } } } } } }, "FluxConfigurationsList": { "description": "Result of the request to list Flux Configurations. It contains a list of FluxConfiguration objects and a URL link to get the next set of results.", "type": "object", "properties": { "value": { "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/FluxConfiguration" }, "description": "List of Flux Configurations within a Kubernetes cluster." }, "nextLink": { "type": "string", "readOnly": true, "description": "URL to get the next set of configuration objects, if any." } } } }, "parameters": { "FluxConfigurationNameParameter": { "name": "fluxConfigurationName", "in": "path", "description": "Name of the Flux Configuration.", "required": true, "type": "string", "x-ms-parameter-location": "method" } } }