v2/azure-arm.yaml (3,973 lines of code) (raw):

schemaRoot: "./specs/azure-rest-api-specs/specification/" destinationGoModuleFile: go.mod # typesOutputPath specifies the output folder name, relative to the directory containing the mod file above. typesOutputPath: api # typeRegistrationOutputFile specifies the output file name for registration code, relative to the directory # containing the mod file above. typeRegistrationOutputFile: internal/controllers/controller_resources_gen.go # rootUrl is the root URL for ASOv2 repo rootUrl: https://github.com/Azure/azure-service-operator/tree/main/v2/ # samplesPath is the relative path to 'v2/azure-arm.yaml' file, used for walking through to samples when we generate a list of supported resources samplesPath: samples # emitDocFiles bool is used as a signal to create doc.go files for packages emitDocFiles: true pipeline: azure supportedResourcesReport: # Path is relative to the module path, above outputFolder: ../docs/hugo/content/reference/ # Path to documentation fragments to inject into the report fragmentPath: ../docs/v2/azure/supported-resources # resourceUrlTemplate is the template for generating URLs to the API docs for our resources # the placeholders {group} {version} and {kind} are supported. resourceUrlTemplate: '{{< relref "/reference/{group}/{version}#{kind}" >}}' # resourcePath is a template used for generating a file path for checking whether docs for a resource have been generated # specified relative to the directory of outputPath, and supports the same placeholders resourcePathTemplate: "{group}/{version}.md" currentRelease: v2.13.0 # # These filters are used early in the processing pipeline. # # We exclude types with known problems, types that we don't need, and other types that may cause issues. # The 'because' value for each filter describes the reason why the filter is present. # # Filters are applied in document order, with the earliest matching filter being applied for each type. # typeFilters: - action: include group: containerservice because: We know ContainerService doesn't do weird things with their previews - action: include group: servicebus version: v*20210101preview;v*20221001preview because: We want to export these particular preview versions - action: include group: keyvault version: v*20210401preview because: We want to support keyvault which is only available in preview version - action: include group: dbforpostgresql version: v*20220120preview because: We want to export this particular preview version - action: include group: dbforpostgresql version: v*20230601preview because: We want to export this particular preview version - action: include group: insights version: v*20180501preview because: We're using webTests from this. There is a "newer" version but it's not actually supported, see https://github.com/Azure/azure-rest-api-specs/issues/14827 - action: include group: authorization version: v*20200801preview because: We want to export this particular preview version - action: include group: managedidentity version: v*20220131preview because: We want to export this particular preview version - action: include group: apimanagement version: v*20230501preview because: This version of APIM is created in a matter of minutes - action: include group: insights version: v*20210501preview because: We're using DiagnosticSetting from this. # Latest non-preview version is not supported, see https://github.com/Azure/bicep-types-az/issues/2185 - action: include group: insights version: v*20240101preview because: We need ScheduledQueryRules from this. - action: include group: common because: we need these for common resource properties - action: prune version: '*preview' because: preview SDK versions are excluded by default (they often do very strange things) - action: prune name: Deployment group: resources because: Terrifying. # TODO: I believe this type exists at # TODO : https://github.com/Azure/azure-rest-api-specs/blob/88e7838a09868a51de3894114355c75929847a46/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/Disks.json#L224 # TODO: If we ever want access to the assadmin Microsoft.Compute.Admin RP we'll need to bring this back - action: prune name: Disk group: compute.admin because: "Don't know how to intersect types: []github.com/Azure/azure-service-operator/v2/api/compute.admin/v1beta20210401/Disk and (object)" - action: prune name: DiskListInput group: compute.admin because: "Ends up with nil due to above" - action: prune group: securityinsights name: Workspaces_Providers* because: Resource ownership is malformed - action: prune group: management because: There are some types in here (ManagementGroupChildInfo_Status) that are defined recursively. - action: prune group: azurestackhci because: There are some types in here (Step) that are defined recursively. - action: prune group: costmanagement because: QueryFilter is a self-referential, infinitely recursive type. We can't easily unroll it and controller-gen doesn't support recursive types # # When loading resources, it's possible for us to end up with a name collision if two resources # specify similar URLs (we derive the names from the structure of the ARM URL specified for the # resource). This is an extremely rare event. # Because this happens so early in the operation of our pipeline, our existing mechanisms for # disambiguation and renaming can't be applied, so we special case them here. # # This is configuration of last resort; in most cases, you should use the objectModelConfiguration # to rename things as it is much more flexible. # typeLoaderRenames: - group: insights name: DiagnosticSetting scope: Location renameTo: SubscriptionDiagnosticSetting # Exclusions for packages that currently produce types including AnyType. # TODO: get rid of these, either by chasing the teams generating # weird json or by handling them differently in the generator. anyTypePackages: # # Type Transformers are used to make precision edits to the object model we've loaded from the # original OpenAPI/Swagger files. # # We need these because there is great variability in how different product groups define their # APIs, and because some of the common constructs that are used can't be directly handled in Go. # # The available properties fall into two groups - the first used to select which type needs to be # transformed, and the second to define the required transformation. # # Selection Properties # # group - select types or properties in the specified group or groups # version - select types or properties in the specified version or version(s) # name - select types or properties with the specified name or name(s) # property - select properties with the given name or name(s) # # All of these properties are matchers: # # o They allow multiple values, semicolon (;) separated # o They allow glob style wildcards '*' and '?' # # ifType - matches a type or property only if it has the specified type # # target - defines a new type to replace the existing # remove - specifies a property should be deleted # # Every TypeTransformer has a 'because' property which should be used to explain (in human terms) # what's being done and why. # # Some of the transformations below have been commented to illustrate use. # typeTransformers: # # Match the property 'Tags' on any type, # but only if it has the type 'map[string]any' # and replace it with 'map[string]string' # - name: "*" property: Tags ifType: map: key: name: string value: name: any target: map: key: name: string value: name: string because: Tags is defined as map[string]interface{} when it should be map[string]string # # In the group 'cache', # remove the property'RedisProperties_Status.AccessKeys' # because it's only populated in a response from Azure # - group: kubernetesconfiguration name: Extension_Properties_Spec property: Statuses remove: true because: This property should be marked readonly in Swagger - group: cache name: RedisProperties_Status property: AccessKeys remove: true because: AccessKeys is only set on response to PUT/CREATE, but we fill out Status via GET so this field is always empty. It also contains secrets we wouldn't want to expose in status anyway. # # In the group 'keyvault', # on the types 'VaultProperties_CreateMode` and 'VaultProperties_CreateMode_STATUS' # redefine the property 'CreateMode' to be an enum with four values # - group: keyvault name: VaultProperties_CreateMode;VaultProperties_CreateMode_STATUS target: enum: base: string values: - default - recover - createOrRecover - purgeThenCreate because: "We're adding two new options to allow KeyVaults to goal-seek" # # In the group 'insights' # rename the object 'AutoscaleSetting' # to 'AutoscaleSettingProperties'. # # Using object: true so that we don't rename the # resource `Autoscalesetting` (with a lowercase 's') as well # - group: insights name: AutoscaleSetting renameTo: AutoscaleSettingProperties ifType: object: true because: We want to use the name `AutoscaleSetting` (with a capital 'S') for the resource # # In the group 'apimanagement', # remove the properties 'ApiManagementServiceProperties.PrivateEndpointConnections', 'AuthorizationContractProperties.Error' and 'AuthorizationContractProperties.Status' # - group: apimanagement name: ApiManagementServiceProperties property: PrivateEndpointConnections remove: true because: This property should be marked readonly - group: apimanagement name: AuthorizationContractProperties property: Error remove: true because: This property should be marked readonly in Swagger - group: apimanagement name: AuthorizationContractProperties property: Status remove: true because: This property should be marked readonly in Swagger # The Kusto API doesn't permit creating a ReadyOnlyFollowingDatabase directly, so we prune it from the Database resource - group: kusto name: Clusters_Database_Spec;Database_STATUS property: ReadOnlyFollowing remove: true because: This database kind that cannot be created directly # # In the group 'compute', # remove the enum restrictions from the vmSize property of VirtualMachine # - group: compute name: HardwareProfile property: VmSize target: name: string optional: true because: The enum restrictions on this type are incomplete. Making this type a plain string to allow for growth of supported VM sizes without a new API version - group: compute name: VirtualMachineScaleSetExtensionProperties;VirtualMachineExtensionProperties property: ProtectedSettings ifType: map: key: name: string value: name: any target: map: key: name: string value: name: string because: ProtectedSettings is defined as map[string]v1.JSON and it should be a marked as secret. - group: compute name: VirtualMachineScaleSetExtensionProperties_STATUS;VirtualMachineExtensionProperties_STATUS property: ProtectedSettings remove: true because: We don't want Protected settings on status # # In the group 'dataprotection', # from the type 'BackupVault_Spec', # Remove the properties 'Etag' and 'SystemData' # - group: dataprotection name: BackupVault_Spec property: Etag;SystemData remove: true because: These properties should be marked readonly in Swagger - group: dataprotection name: BackupVaults_BackupPolicy_Spec property: SystemData remove: true because: This property should be marked readonly in Swagger - group: dataprotection name: BackupVaults_BackupInstance_Spec property: SystemData remove: true because: This property should be marked readonly in Swagger - name: IotHub_Spec group: devices property: Etag remove: true because: This property should be marked readonly # # In the group 'devices', # from the types 'SharedAccessSignatureAuthorizationRule' # and 'SharedAccessSignatureAuthorizationRule_STATUS' # remove the properties 'PrimaryKey' and 'SecondaryKey' # - group: devices name: SharedAccessSignatureAuthorizationRule;SharedAccessSignatureAuthorizationRule_STATUS property: PrimaryKey;SecondaryKey remove: true because: This property should be marked readonly # # In the group 'eventhub', # from the type 'Namespace_Properties_Spec' # remove the property 'PrivateEndpointConnections' # - group: eventhub name: Namespace_Properties_Spec property: PrivateEndpointConnections remove: true because: This property should be marked readonly # # In the group 'eventhub' # from the object 'PrivateEndpointConnectionProperties' # remove the properties 'PrivateLinkServiceConnectionState' and 'ProvisioningState' # - group: eventhub name: PrivateEndpointConnectionProperties property: PrivateLinkServiceConnectionState; ProvisioningState remove: true because: These properties should be marked readonly - group: kubernetesconfiguration name: FluxConfiguration_Spec;FluxConfiguration_STATUS property: SystemData remove: true because: These properties should be marked readonly - group: machinelearningservices name: EncryptionProperty property: Status remove: true because: it is supposed to be marked ReadOnly in Swagger - group: machinelearningservices name: SystemCreatedStorageAccount property: ArmResourceId remove: true because: it is supposed to be marked ReadOnly in Swagger - group: machinelearningservices name: SystemCreatedAcrAccount property: ArmResourceId remove: true because: it is supposed to be marked ReadOnly in Swagger - group: network name: RouteTables_Route_Spec property: Type remove: true because: it is supposed to be marked ReadOnly in Swagger - group: network name: NetworkInterfaceIPConfiguration property: Type remove: true because: it is supposed to be marked ReadOnly in Swagger - group: network name: NetworkInterfacePropertiesFormat property: MigrationPhase remove: true because: it is supposed to be marked ReadOnly in Swagger - group: network name: PublicIPAddressPropertiesFormat property: MigrationPhase remove: true because: it is supposed to be marked ReadOnly in Swagger # # In the group 'network' # remove the property 'Type' # from the following four types # # - Delegation # - NetworkSecurityGroups_SecurityRule_Spec # - VirtualNetworks_Subnet_Spec # - VirtualNetworks_VirtualNetworkPeering_Spec # - group: network name: Delegation;NetworkSecurityGroups_SecurityRule_Spec;VirtualNetworks_Subnet_Spec;VirtualNetworks_VirtualNetworkPeering_Spec property: Type remove: true because: type is supposed to be marked ReadOnly in Swagger # # In the group 'network' # remove the property 'Etag' # from the following nine types: # # - DnsZone_Spec # - DnsZones_AAAA_Spec # - DnsZones_CAA_Spec # - DnsZones_CNAME_Spec # - DnsZones_MX_Spec # - DnsZones_NS_Spec # - DnsZones_PTR_Spec # - DnsZones_SRV_Spec # - DnsZones_TXT_Spec # - group: network name: DnsZone_Spec;DnsZones_AAAA_Spec;DnsZones_CAA_Spec;DnsZones_CNAME_Spec;DnsZones_MX_Spec;DnsZones_NS_Spec;DnsZones_PTR_Spec;DnsZones_SRV_Spec;DnsZones_TXT_Spec property: Etag remove: true because: Etag is supposed to be marked ReadOnly in Swagger - group: network version: "*" name: Delegation property: Id # TODO[donotmerge]: We should do something more clean than this # Delegation is not getting its ID field removed when in the subnet context. This is # because it's set as resource: false. We can either: # 1. Manually prune the ID field. # 2. Make resourceEmbeddedInParent and resource separate so that both # can be set. # 3. Make resourceEmbeddedInParent optionally a collection and mark Delegation as embedded both in subnet and vnet # 4. Live with it. remove: true because: We don't handle this very well right now, manually remove until TODO above has been done - group: network version: "*" name: PrivateEndpointProperties property: CustomDnsConfigs remove: true because: it is supposed to be marked ReadOnly in Swagger - group: notificationhubs name: NamespaceProperties property: Status;ProvisioningState remove: true because: This property should be marked readonly - group: notificationhubs name: SharedAccessAuthorizationRuleProperties property: PrimaryKey;SecondaryKey remove: true because: This property should be marked readonly - name: EventHubProperties;Namespaces_Eventhub_Properties_Spec group: eventhub property: Status remove: true because: These properties should be marked readonly - group: redhatopenshift name: OpenShiftClusterProperties property: ProvisioningState remove: true because: This property should be marked readonly in Swagger - group: search name: DataPlaneAuthOptions property: ApiKeyOnly remove: true because: We need a better handling for JSON # Discussion: https://github.com/Azure/azure-service-operator/pull/2916/files/93b06daa9549a91ac626e3241c5987b23b4087ac#r1179803300 ## Deal with properties that should have been marked readOnly but weren't # TODO: Unused or renamed? - group: servicebus name: SBNamespaceProperties # This type is subsequently flattened into Namespaces_Spec. I don't know why it's called this either (I think it should be SBNamespaceProperties?) property: PrivateEndpointConnections remove: true because: This property should have been marked readonly but wasn't. - group: servicebus name: SBQueueProperties # This type is subsequently flattened into NamespacesQueues_Spec property: Status remove: true because: This property should have been marked readonly but wasn't. - group: servicebus name: SBTopicProperties # This type is subsequently flattened into NamespacesTopics_Spec property: Status remove: true because: This property should have been marked readonly but wasn't. - group: storage name: NetworkRuleSet # This type is subsequently flattened into NamespacesTopics_Spec property: Bypass target: name: string optional: true because: The enum restrictions on this type are incomplete. Storage allows a,b,c but doesn't document that in the enum. - group: servicebus name: SBSubscriptionProperties # This type is subsequently flattened into Namespaces_Topics_Subscription_Spec property: Status remove: true because: This property should have been marked readonly but wasn't. - group: documentdb name: Location # This type is subsequently flattened into NamespacesTopics_Spec property: ProvisioningState remove: true because: This property should have been marked readonly but wasn't. - group: documentdb name: DatabaseAccount_Spec property: CustomerManagedKeyStatus remove: true because: This property should have been marked readonly but wasn't. - group: compute name: DiskProperties # This type is subsequently flattened into Disks_Spec property: DiskState remove: true because: This property should have been marked readonly but wasn't. # Remove embedded resource properties - group: network name: VirtualNetworkPropertiesFormat_Status # This type is subsequently flattened into VirtualNetwork_Status property: Subnets remove: true because: This is an embedded resource - group: network name: VirtualNetworkPropertiesFormat_Status # This type is subsequently flattened into VirtualNetwork_Status property: VirtualNetworkPeerings remove: true because: This is an embedded resource - group: network name: RouteTablePropertiesFormat_Status # This type is subsequently flattened into RouteTable_Status property: Routes remove: true because: This is an embedded resource - group: network name: RouteTablePropertiesFormat_Status # This type is subsequently flattened into RouteTable_Status property: Subnets remove: true because: This is an embedded resource - group: network name: NetworkSecurityGroupPropertiesFormat_Status # This type is subsequently flattened into NetworkSecurityGroup_Status property: SecurityRules remove: true because: This is an embedded resource # Deal with resources that have tags or location included but shouldn't have (proxy resources, etc). # See https://github.com/Azure/azure-resource-manager-schemas/issues/1850 # Deal with service Swaggers that are just wrong - group: insights name: Webtest_Spec property: Kind remove: true because: This shouldn't be here, it's supposed to be on the Properties type (and is already). They somehow accidentally duplicated it. - group: insights name: WebTest_Status property: Kind remove: true because: This shouldn't be here, it's supposed to be on the Properties type (and is already). They somehow accidentally duplicated it. - group: signalrservice name: SignalR_Replica_Spec property: Sku target: required: true because: This property should be marked required in Swagger status: overrides: [ { # give the common types their own namespace basePath: 'common-types/resource-management', namespace: 'Microsoft.Common' }, { # force the namespace here or it can fall foul of the sibling-name-collision test basePath: 'sql/resource-manager/common', namespace: 'Microsoft.Sql' }, { # force the namespace here or it can fall foul of the sibling-name-collision test basePath: 'security/resource-manager/common', namespace: 'Microsoft.Security' }, { # force the namespace here or it can fall foul of the sibling-name-collision test basePath: 'eventhub/resource-manager/common', namespace: 'Microsoft.EventHub' }, { # force the namespace here or it can fall foul of the sibling-name-collision test basePath: 'securityinsights/resource-manager/common', namespace: 'Microsoft.SecurityInsights' }, { # force the namespace here or it can fall foul of the sibling-name-collision test basePath: 'synapse/common', namespace: 'Microsoft.Synapse' }, # the rest of the configuration below is copied from the ARM schema repo: # https://github.com/Azure/azure-resource-manager-schemas/blob/master/generator/autogenlist.ts { basePath: 'blueprint/resource-manager', namespace: 'Microsoft.Blueprint', resourceConfig: [ { type: 'blueprintAssignments', scopes: ScopeType.Subcription | ScopeType.ManagementGroup, }, { type: 'blueprints', scopes: ScopeType.Subcription | ScopeType.ManagementGroup, }, { type: 'blueprints/artifacts', scopes: ScopeType.Subcription | ScopeType.ManagementGroup, }, { type: 'blueprints/versions', scopes: ScopeType.Subcription | ScopeType.ManagementGroup, }, ] }, { basePath: 'customproviders/resource-manager', namespace: 'Microsoft.CustomProviders', resourceConfig: [ { type: 'associations', scopes: ScopeType.Extension, }, ], }, { basePath: 'consumption/resource-manager', namespace: 'Microsoft.Consumption', resourceConfig: [ { type: 'budgets', scopes: ScopeType.Subcription | ScopeType.ResourceGroup | ScopeType.Extension, }, ], }, { basePath: 'digitaltwins/resource-manager', resourceConfig: [ { type: 'integrationResources', scopes: ScopeType.Extension, } ] }, { basePath: 'deviceprovisioningservices/resource-manager', suffix: 'Provisioning', }, { basePath: 'frontdoor/resource-manager', suffix: 'FrontDoor', }, { basePath: 'eventgrid/resource-manager', resourceConfig: [ { type: 'eventSubscriptions', scopes: ScopeType.Extension | ScopeType.Subcription | ScopeType.ResourceGroup, }, ], }, { basePath: 'machinelearning/resource-manager', postProcessor: machineLearningPostProcessor, }, { basePath: 'managednetwork/resource-manager', resourceConfig: [ { type: 'scopeAssignments', scopes: ScopeType.Subcription, }, ], }, { basePath: 'policyinsights/resource-manager', resourceConfig: [ { type: 'remediations', scopes: ScopeType.Subcription | ScopeType.ResourceGroup | ScopeType.ManagementGroup, } ] }, { basePath: 'resources/resource-manager', resourceConfig: [ { type: 'deployments', scopes: ScopeType.Tenant | ScopeType.ManagementGroup | ScopeType.Subcription | ScopeType.ResourceGroup, }, { type: 'tags', scopes: ScopeType.ManagementGroup | ScopeType.Subcription | ScopeType.ResourceGroup | ScopeType.Extension, }, ], postProcessor: resourcesPostProcessor, }, { basePath: 'storSimple1200Series/resource-manager', suffix: '1200' }, { basePath: 'storsimple8000series/resource-manager', suffix: '8000', }, { basePath: 'softwareplan/resource-manager', resourceConfig: [ { type: 'hybridUseBenefits', scopes: ScopeType.Extension, }, ] }, ] # # This section of the configuration file mirrors the hierarchy of generated types, providing # additional information about how to handle each one. # # Each level of the configuration works as follows: # # group: // The service - e.g. batch, redis or storage # version: // ARM API version - e.g. 2020-12-01 # type: // A resource or subtype (similar to kubernetes 'kind') # property: // An attribute found on an object type # # Please add new elements to this configuration in ALPHABETICAL order to make # it easier for future maintainers to scan for the item they want. # # At specific levels, optional modifiers may be injected. # All modifiers start with `$` in order to avoid clashes with ARM object and # property names # # =================== # Group modifiers # =================== # # $payloadType: <string> # Specifies the type of the payload to generate for the group. This is used to compensate for # some Azure Resource Providers using PATCH semantics instead of PUT semantics for updates. # We control this at the group level because RPs tend to be consistent across all their resources. # # Valid values are: # omitempty - only non-empty properties are included (default) # explicitCollections - always include collections (serialized as null), even if empty; other properties only if specified. # explicitEmptyCollections - always include collections (serialized as empty collections), even if empty; other properties only if specified. # explicitProperties - always include all properties, even the empty ones. # # ================== # Type modifiers # ================== # # $azureGeneratedSecrets: <array of strings> # An array of names identifying the secrets generated by Azure which can be automatically # downloaded by the operator. Each element in the collection becomes # a property on operatorSpec.Secrets. Actual retrieval of the secrets must be manually # implemented as an extension on the resource type in question. # Only valid for resource types. # # $generatedConfigs: <map of string -> string> # The key of the map is the name of the property to export, the value of the map is a json-path like expression # to the property to export. Currently only $.<prop>.<prop> syntax is supported. # Only valid for resources. # Example: # $generatedConfigs: # BlobEndpoint: $.Status.PrimaryEndpoints.Blob # # $export: <bool> # Requests that support for this resource type be generated. # Automatically includes all other types required for this resource # If not specified, the default value is false. # Only valid for resource types. # # $exportAs: <string> # Requests that this resource type be exported with the specified # identifier, allowing poorly named types to be renamed. # Implies $export: true # Only valid for resource types. # # $importable: <bool> # Requests that support for asoctl to import this resource type be included # in the generated code. # If not specified, the default value is true. # Only valid for resource types. # # $manualConfigs: <array of strings> # An array of names identifying the properties which will be exported to config maps manually. Prefer $generatedConfigs # if the property is on Status or otherwise accessible on the resource itself. $manualConfigs can be used # to have more control over exactly what value goes into the exported config map, at the cost of needing to manually implement # the config map export in a resource extension. BEWARE: If you include a property here but don't actually use it in # a manually implemented resource extension, the $.Spec.OperatorSpec.ConfigMaps.<MyCustomConfigValue> field will do nothing # and be ignored! # Example: # $manualConfigs: # - MyCustomConfigValue # # $nameInNextVersion: <string> # Gives the name this type has in the next version of the resource. # Establishes a connection between the two types allowing for proper # forward and backward conversion. # # $renameTo: <string> # Changes the name of any type, allowing selective adjustments to make # names more idiomatic for Go and/or Kubernetes use. # # For resource types, prefer $exportAs # Note: using $export: + $renameTo: for a resource is not quite the same as # using $exportAs because the renaming happens at a different stage of the # pipeline. # # If you have two names differing only by letter case, use a TypeTransform # to selectively rename one of the types. # # $stripDocumentation: <bool> # Strips documentation from the specified resource and all objects referenced by the resource # recursively. Should not be used unless completely necessary - usually to reduce the size of # a CRD to below the Kubernetes CRD size limit. # # $supportedFrom: <version> # Gives the version number of the first release of ASO that provides # support for this resource. # Note: If the resource is renamed via $exportAs, $supportedFrom won't # work if you put it in the same section as $exportAs; you instead need # to place $supportedFrom in a section using the name specified by $exportAs # # $isResource: <bool> # Configures if the given type is a resource or not. This can be used to # mark types that are labelled as a resources in the Swagger as normal (non-resource) types. # This is needed especially for compute and networking groups whose SubResource incorrectly labels # many resource references as resources instead. # # $resourceEmbeddedInParent: <resource name> # Labels the given type as a resource in some contexts, while not in others. # In particular this caters to pseudo-resources which have ARM IDs associated with them # and have GET APIs but cannot be created except as part of their parent. This enables # the generator to prune these resources from all contexts except their creation context. # A concrete example of this can be seen on LoadBalancer with "resources" like LoadBalancingRule. # # ======================= # Property modifiers # ======================= # # $description: <string> # Overrides the property description with the provided value. # # $importConfigMapMode: <optional|required> # Specifies that the property can be imported from a config map. # Optional: The property may be specified as string or imported from a config map. # To achieve this in a non-breaking way, a new property is added to the object living alongside # the existing property. The new property is called <propName>FromConfig. # Required: The property must be specified from a config map, it cannot be given as a raw string. # # $isSecret: <bool> # Specifies that the property references a secret # Secrets are string values read from a secure storage by ASO when needed. # Set to `true` to flag this property as a secret. This is an override for when the Swagger # is incomplete. If you specify $isSecret: true, you should also open a PR to update the # upstream Swagger repo spec with the x-ms-secret annotation. # Here's a reference PR: https://github.com/Azure/azure-rest-api-specs/pull/19399 # # $nameInNextVersion: <string> # Gives the name this property has in the next version of the resource # Establishes a connection between the two properties allowing for proper # forward and backward conversion. # # $referenceType: string # Indicates whether this property is an ARM reference to another resource or some other kind # of reference. # o Set to 'arm' to confirm the property is an ARM reference. # o Set to 'simple' to indicate this is a simple value not requiring special handling. This is # used disable our heuristics if a property is incorrectly identified as an ARM reference. # # $resourceLifecycleOwnedByParent: <string> # Specifies that the property references a misbehaving embedded resource, one whose parent # resource owns the lifecycle of the child resource. # These resources are embedded resources which are overwritten when their parent resource # is changed. For example see https://github.com/Azure/azure-service-operator/issues/1944. # The value should be the name of the parent resource which owns the lifecycle of the # sub-resource. # # $renameTo: <string> # Changes the name of the property. # # The name in the serialized ARM payload does NOT change. This only changes the name of the property # in the ASO types. The shape serialized to ARM uses the original name. # objectModelConfiguration: alertsmanagement: 2021-04-01: SmartDetectorAlertRule: $export: true $supportedFrom: v2.11.0 AlertRuleProperties: Scope: $referenceType: arm ActionGroupsInformation: GroupIds: $referenceType: arm Detector: Id: $referenceType: simple 2023-03-01: PrometheusRuleGroup: $export: true $supportedFrom: v2.8.0 PrometheusRuleGroupProperties: Scopes: $referenceType: arm PrometheusRuleGroupAction: ActionGroupId: $referenceType: arm apimanagement: 2022-08-01: AdditionalLocation: PublicIpAddressId: $referenceType: arm ApiCreateOrUpdateProperties: ApiVersionSetId: $referenceType: arm SourceApiId: $referenceType: arm ApiVersionSetContractDetails: Id: $referenceType: arm ApiManagementServiceProperties: PublicIpAddressId: $referenceType: arm AuthorizationAccessPolicyContractProperties: TenantId: $importConfigMapMode: optional ObjectId: $importConfigMapMode: optional AuthorizationContractProperties: Parameters: $isSecret: true AuthorizationProviderOAuth2GrantTypes: AuthorizationCode: $isSecret: true ClientCredentials: $isSecret: true BackendContractProperties: ResourceId: $referenceType: arm BackendProxyContract: Password: $isSecret: true CertificateInformation: Expiry: $importConfigMapMode: optional Subject: $importConfigMapMode: optional Thumbprint: $importConfigMapMode: optional CertificateConfiguration: CertificatePassword: $isSecret: true HostnameConfiguration: CertificatePassword: $isSecret: true IdentityClientId: $importConfigMapMode: optional KeyVaultContractCreateProperties: IdentityClientId: $importConfigMapMode: optional Service: $export: true $supportedFrom: v2.4.0 Service_Api: $exportAs: Api $supportedFrom: v2.4.0 Service_ApiVersionSet: $exportAs: ApiVersionSet $supportedFrom: v2.4.0 Service_AuthorizationProvider: $exportAs: AuthorizationProvider $supportedFrom: v2.6.0 Service_AuthorizationProviders_Authorization: $exportAs: AuthorizationProvidersAuthorization $supportedFrom: v2.6.0 Service_AuthorizationProviders_Authorizations_AccessPolicy: $exportAs: AuthorizationProvidersAuthorizationsAccessPolicy $supportedFrom: v2.6.0 Service_Backend: $exportAs: Backend $supportedFrom: v2.4.0 Service_NamedValue: $exportAs: NamedValue $supportedFrom: v2.4.0 Service_Policy: $exportAs: Policy $supportedFrom: v2.4.0 Service_PolicyFragment: $exportAs: PolicyFragment $supportedFrom: v2.4.0 Service_Product: $exportAs: Product $supportedFrom: v2.4.0 Service_Products_Api: $exportAs: ProductApi $supportedFrom: v2.6.0 Service_Products_Policy: $exportAs: ProductPolicy $supportedFrom: v2.6.0 Service_Subscription: $exportAs: Subscription $supportedFrom: v2.4.0 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey SubscriptionCreateParameterProperties: PrimaryKey: $isSecret: true SecondaryKey: $isSecret: true OwnerId: $referenceType: arm VirtualNetworkConfiguration: SubnetResourceId: $referenceType: arm 2023-05-01-preview: AdditionalLocation: PublicIpAddressId: $referenceType: arm ApiCreateOrUpdateProperties: ApiVersionSetId: $referenceType: arm SourceApiId: $referenceType: arm ApiVersionSetContractDetails: Id: $referenceType: arm ApiManagementServiceProperties: PublicIpAddressId: $referenceType: arm AuthorizationAccessPolicyContractProperties: TenantId: $importConfigMapMode: optional ObjectId: $importConfigMapMode: optional AuthorizationContractProperties: Parameters: $isSecret: true AuthorizationProviderOAuth2GrantTypes: AuthorizationCode: $isSecret: true ClientCredentials: $isSecret: true BackendContractProperties: ResourceId: $referenceType: arm BackendProxyContract: Password: $isSecret: true CertificateInformation: Expiry: $importConfigMapMode: optional Subject: $importConfigMapMode: optional Thumbprint: $importConfigMapMode: optional CertificateConfiguration: CertificatePassword: $isSecret: true HostnameConfiguration: CertificatePassword: $isSecret: true IdentityClientId: $importConfigMapMode: optional KeyVaultContractCreateProperties: IdentityClientId: $importConfigMapMode: optional Service: $export: true $supportedFrom: v2.6.0 Service_Api: $exportAs: Api $supportedFrom: v2.6.0 Service_ApiVersionSet: $exportAs: ApiVersionSet $supportedFrom: v2.6.0 Service_AuthorizationProvider: $exportAs: AuthorizationProvider $supportedFrom: v2.6.0 Service_AuthorizationProviders_Authorization: $exportAs: AuthorizationProvidersAuthorization $supportedFrom: v2.6.0 Service_AuthorizationProviders_Authorizations_AccessPolicy: $exportAs: AuthorizationProvidersAuthorizationsAccessPolicy $supportedFrom: v2.6.0 Service_Backend: $exportAs: Backend $supportedFrom: v2.6.0 Service_NamedValue: $exportAs: NamedValue $supportedFrom: v2.6.0 Service_Policy: $exportAs: Policy $supportedFrom: v2.6.0 Service_PolicyFragment: $exportAs: PolicyFragment $supportedFrom: v2.6.0 Service_Product: $exportAs: Product $supportedFrom: v2.6.0 Service_Products_Api: $exportAs: ProductApi $supportedFrom: v2.6.0 Service_Products_Policy: $exportAs: ProductPolicy $supportedFrom: v2.6.0 Service_Subscription: $exportAs: Subscription $supportedFrom: v2.6.0 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey SubscriptionCreateParameterProperties: PrimaryKey: $isSecret: true SecondaryKey: $isSecret: true OwnerId: $referenceType: arm VirtualNetworkConfiguration: SubnetResourceId: $referenceType: arm app: 2024-03-01: ContainerApp: $export: true $supportedFrom: v2.12.0 $generatedConfigs: EventStreamEndpoint: $.Status.EventStreamEndpoint Fqdn: $.Status.LatestRevisionFqdn ContainerApps_AuthConfig: $exportAs: AuthConfig $supportedFrom: v2.12.0 RegistryCredentials: passwordSecretRef: $isSecret: false Identity: $referenceType: arm ServiceBind: ServiceId: $referenceType: arm Secret: Identity: $referenceType: arm ContainerApp_Spec: ManagedBy: $referenceType: arm ContainerApp_Properties_Spec: EnvironmentId: $referenceType: arm ManagedEnvironmentId: $referenceType: arm CustomDomain: CertificateId: $referenceType: arm OpenIdConnectConfig: TokenEndpoint: $isSecret: false ManagedEnvironment: $export: true $supportedFrom: v2.12.0 VnetConfiguration: InfrastructureSubnetId: $referenceType: arm Job: $export: true $supportedFrom: v2.12.0 Job_Properties_Spec: EnvironmentId: $referenceType: arm appconfiguration: 2022-05-01: ConfigurationStore: $export: true $supportedFrom: v2.0.0-beta.3 $azureGeneratedSecrets: - PrimaryKeyID - PrimaryKey - PrimaryConnectionString - SecondaryKeyID - SecondaryKey - SecondaryConnectionString - PrimaryReadOnlyKeyID - PrimaryReadOnlyKey - PrimaryReadOnlyConnectionString - SecondaryReadOnlyKeyID - SecondaryReadOnlyKey - SecondaryReadOnlyConnectionString PrivateEndpointConnectionReference_STATUS: # This is a subresource but it's not labelled as one in their Swagger, instead there's a duplicate entity # shaped the same called PrivateEndpointConnection which is labelled as a resource. We want to prune this. $isResource: true authorization: 2020-08-01-preview: RoleAssignment: $export: true $supportedFrom: v2.0.0-alpha.2 $defaultAzureName: false $operatorSpecProperties: - name: NamingConvention type: string description: The uuid generation technique to use for any role without an explicit AzureName. One of 'stable' or 'random'. <br> +kubebuilder:validation:Enum={"random","stable"} RoleAssignmentProperties: DelegatedManagedIdentityResourceId: $referenceType: arm RoleDefinitionId: $referenceType: arm PrincipalId: $importConfigMapMode: optional 2022-04-01: RoleAssignment: $export: true $supportedFrom: v2.4.0 $defaultAzureName: false $operatorSpecProperties: - name: NamingConvention type: string description: The uuid generation technique to use for any role without an explicit AzureName. One of 'stable' or 'random'. <br> +kubebuilder:validation:Enum={"random","stable"} RoleAssignmentProperties: DelegatedManagedIdentityResourceId: $referenceType: arm RoleDefinitionId: $referenceType: arm PrincipalId: $importConfigMapMode: optional RoleDefinition: $export: true $supportedFrom: v2.8.0 $defaultAzureName: false $operatorSpecProperties: - name: NamingConvention type: string description: The uuid generation technique to use for any role without an explicit AzureName. One of 'stable' or 'random'. <br> +kubebuilder:validation:Enum={"random","stable"} RoleDefinitionProperties: AssignableScopes: $referenceType: arm batch: 2021-01-01: BatchAccount: $export: true $supportedFrom: v2.0.0-alpha.1 cache: 2020-12-01: Redis: $export: true $supportedFrom: v2.0.0-alpha.4 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - HostName - Port - SSLPort # TODO: Does this need to be uncommented # RedisCreateProperties: # SubnetId: # $referenceType: arm Redis_FirewallRule: $exportAs: RedisFirewallRule $supportedFrom: v2.0.0-alpha.4 Redis_LinkedServer: $exportAs: RedisLinkedServer $supportedFrom: v2.0.0-alpha.4 Redis_PatchSchedule: $exportAs: RedisPatchSchedule $supportedFrom: v2.0.0-alpha.4 2021-03-01: RedisEnterprise: $export: true $supportedFrom: v2.0.0-alpha.4 RedisEnterprise_Database: $exportAs: RedisEnterpriseDatabase $supportedFrom: v2.0.0-alpha.4 2023-04-01: Redis: $export: true $supportedFrom: v2.3.0 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - HostName - Port - SSLPort # TODO: Does this need to be uncommented # RedisCreateProperties: # SubnetId: # $referenceType: arm Redis_FirewallRule: $exportAs: RedisFirewallRule $supportedFrom: v2.3.0 Redis_LinkedServer: $exportAs: RedisLinkedServer $supportedFrom: v2.3.0 Redis_PatchSchedule: $exportAs: RedisPatchSchedule $supportedFrom: v2.3.0 2023-07-01: RedisEnterprise: $export: true $supportedFrom: v2.3.0 RedisEnterprise_Database: $exportAs: RedisEnterpriseDatabase $supportedFrom: v2.3.0 2023-08-01: Redis: $export: true $supportedFrom: v2.10.0 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - HostName - Port - SSLPort RedisCreateProperties: SubnetId: $referenceType: arm Redis_FirewallRule: $exportAs: RedisFirewallRule $supportedFrom: v2.10.0 Redis_LinkedServer: $exportAs: RedisLinkedServer $supportedFrom: v2.10.0 RedisLinkedServerCreateProperties: LinkedRedisCacheId: $referenceType: arm Redis_PatchSchedule: $exportAs: RedisPatchSchedule $supportedFrom: v2.10.0 cdn: 2021-06-01: # DeepCreatedOriginGroup actually is a resource, for some CDN SKUs it's required to be specified on the CDN endpoint # while for other SKUs it seems to be optional on the endpoint (or may not be allowed to be set on the endpoint at all, I am not sure). # Given the requirement at least for classic CDNs (Sku == Standard_Microsoft) to specify Origin at the Endpoint scope # we can't treat this purely as a resource. Instead, I think this field is like AKS AgentPools - both embedded and not, and # the author of the ASO resource must choose which makes sense for their context. # This comment applies to all the "DeepCreated*" resources. DeepCreatedOriginGroup: $isResource: false DeepCreatedOriginGroup_STATUS: $isResource: false DeepCreatedOriginGroupProperties: $isResource: false DeepCreatedOriginGroupProperties_STATUS: $isResource: false DeepCreatedOrigin: $isResource: false DeepCreatedOrigin_STATUS: $isResource: false DeepCreatedOriginProperties: $isResource: false PrivateLinkLocation: $referenceType: arm PrivateLinkResourceId: $referenceType: arm DeepCreatedOriginProperties_STATUS: $isResource: false EndpointProperties_WebApplicationFirewallPolicyLink: Id: $referenceType: arm Profile: $export: true $supportedFrom: v2.0.0-beta.1 Profiles_Endpoint: $exportAs: ProfilesEndpoint $supportedFrom: v2.0.0-beta.1 2023-05-01: # DeepCreatedOriginGroup actually is a resource, for some CDN SKUs it's required to be specified on the CDN endpoint # while for other SKUs it seems to be optional on the endpoint (or may not be allowed to be set on the endpoint at all, I am not sure). # Given the requirement at least for classic CDNs (Sku == Standard_Microsoft) to specify Origin at the Endpoint scope # we can't treat this purely as a resource. Instead, I think this field is like AKS AgentPools - both embedded and not, and # the author of the ASO resource must choose which makes sense for their context. # This comment applies to all the "DeepCreated*" resources. DeepCreatedOriginGroup: $isResource: false DeepCreatedOriginGroup_STATUS: $isResource: false DeepCreatedOriginGroupProperties: $isResource: false DeepCreatedOriginGroupProperties_STATUS: $isResource: false DeepCreatedOrigin: $isResource: false DeepCreatedOrigin_STATUS: $isResource: false DeepCreatedOriginProperties_STATUS: $isResource: false DomainValidationProperties: ValidationToken: $isSecret: false # Not a conventional secret; this is the token someone must provide to prove they own the domain Profile: $export: true $supportedFrom: v2.6.0 # The below resources could be exported but are part of "CDN classic". # This part of the CDN/AzureFrontdoor API is confusing but our understanding is that # the "classic" CDN is not preferred compared to AFD, so for now we aren't exporting these. # Profiles_Endpoint: # $exportAs: ProfilesEndpoint # $supportedFrom: v2.6.0 # Profiles_Endpoints_OriginGroup: # $exportAs: OriginGroup # $supportedFrom: v2.6.0 # Profiles_Endpoints_Origin: # $exportAs: Origin # $supportedFrom: v2.6.0 # Profiles_Endpoints_CustomDomain: # $exportAs: CustomDomain # $supportedFrom: v2.6.0 Profiles_CustomDomain: $exportAs: AfdCustomDomain $supportedFrom: v2.6.0 Profiles_AfdEndpoint: $exportAs: AfdEndpoint $supportedFrom: v2.6.0 Profiles_OriginGroup: $exportAs: AfdOriginGroup $supportedFrom: v2.6.0 Profiles_OriginGroups_Origin: $exportAs: AfdOrigin $supportedFrom: v2.6.0 Profiles_AfdEndpoints_Route: $exportAs: Route $supportedFrom: v2.6.0 Profiles_RuleSet: $exportAs: RuleSet $supportedFrom: v2.6.0 Profiles_RuleSets_Rule: $exportAs: Rule $supportedFrom: v2.6.0 Profiles_RuleSets_Rule_Spec: Conditions: $renameTo: RuleConditions # Renamed to not clash with our "Conditions" Profiles_RuleSets_Rule_STATUS: Conditions: $renameTo: RuleConditions # Renamed to not clash with our "Conditions" Profiles_SecurityPolicy: $exportAs: SecurityPolicy $supportedFrom: v2.6.0 Profiles_Secret: $exportAs: Secret $supportedFrom: v2.6.0 AFDOriginProperties: HostName: $importConfigMapMode: optional compute: 2020-09-30: CreationData: SourceResourceId: $referenceType: arm Disk: $export: true $supportedFrom: v2.0.0-alpha.1 DiskProperties: DiskAccessId: $referenceType: arm Encryption: DiskEncryptionSetId: $referenceType: arm ImageDiskReference: Id: $referenceType: arm Snapshot: $export: true $supportedFrom: v2.0.0-alpha.4 SnapshotProperties: DiskAccessId: $referenceType: arm SourceVault: Id: $referenceType: arm 2020-12-01: ApiEntityReference: Id: $referenceType: arm ImageReference: $isResource: false ImageReference_STATUS: $isResource: false ManagedDiskParameters: $isResource: false ManagedDiskParameters_STATUS: $isResource: false NetworkInterfaceReference: $isResource: false NetworkInterfaceReference_STATUS: $isResource: false SshPublicKeySpec: KeyData: $isSecret: false SshPublicKey_STATUS: KeyData: $isSecret: false VirtualMachine: $export: true $supportedFrom: v2.0.0-alpha.1 VirtualMachineExtension_STATUS: $isResource: false # TODO[breaking]: This is actually a resource but we weren't pruning it before VirtualMachineScaleSet: $export: true $supportedFrom: v2.0.0-alpha.1 VirtualMachineScaleSetExtension: $isResource: false VirtualMachineScaleSetExtension_STATUS: $isResource: false VirtualMachineScaleSetIPConfiguration: $isResource: false VirtualMachineScaleSetIPConfiguration_STATUS: $isResource: false VirtualMachineScaleSetNetworkConfiguration: $isResource: false VirtualMachineScaleSetNetworkConfiguration_STATUS: $isResource: false VirtualMachines_Extension: $exportAs: VirtualMachinesExtension $supportedFrom: v2.6.0 VirtualMachineScaleSets_Extension: $exportAs: VirtualMachineScaleSetsExtension $supportedFrom: v2.6.0 VirtualMachineScaleSetExtensionProperties: ProtectedSettings: $isSecret: true VirtualMachineExtensionProperties: ProtectedSettings: $isSecret: true 2021-07-01: Image: $export: true $supportedFrom: v2.0.0-alpha.6 2022-03-01: ApiEntityReference: Id: $referenceType: arm Image: $export: true $supportedFrom: v2.0.0-beta.2 ImageReference: $isResource: false Version: $referenceType: simple ImageReference_STATUS: $isResource: false ManagedDiskParameters: $isResource: false ManagedDiskParameters_STATUS: $isResource: false # NetworkInterfaceConfiguration: # $isResource: false NetworkInterfaceReference: $isResource: false NetworkInterfaceReference_STATUS: $isResource: false NetworkProfile: $isResource: false NetworkProfile_STATUS: $isResource: false SshPublicKeySpec: KeyData: $isSecret: false SshPublicKey_STATUS: KeyData: $isSecret: false VMGalleryApplication: PackageReferenceId: $referenceType: arm VirtualMachine: $export: true $supportedFrom: v2.0.0-beta.2 VirtualMachineExtension_STATUS: $isResource: false # TODO[breaking]: This is actually a resource but we weren't pruning it before VirtualMachineScaleSet: $export: true $supportedFrom: v2.0.0-beta.2 VirtualMachineScaleSetExtension: $isResource: false VirtualMachineScaleSetExtension_STATUS: $isResource: false VirtualMachineScaleSetIPConfiguration: $isResource: false VirtualMachineScaleSetIPConfiguration_STATUS: $isResource: false VirtualMachineScaleSetNetworkConfiguration: $isResource: false VirtualMachineScaleSetNetworkConfiguration_STATUS: $isResource: false VirtualMachines_Extension: $exportAs: VirtualMachinesExtension $supportedFrom: v2.6.0 VirtualMachineScaleSets_Extension: $exportAs: VirtualMachineScaleSetsExtension $supportedFrom: v2.6.0 VirtualMachineScaleSetExtensionProperties: ProtectedSettings: $isSecret: true VirtualMachineExtensionProperties: ProtectedSettings: $isSecret: true 2022-07-02: DiskEncryptionSet: $export: true $supportedFrom: v2.3.0 SourceVault: Id: $referenceType: arm KeyForDiskEncryptionSet: KeyUrl: $importConfigMapMode: optional EncryptionSetProperties: FederatedClientId: $importConfigMapMode: optional 2024-03-02: CreationData: SourceResourceId: $referenceType: arm ElasticSanResourceId: $referenceType: arm Disk: $export: true $supportedFrom: v2.9.0 DiskProperties: DiskAccessId: $referenceType: arm Encryption: DiskEncryptionSetId: $referenceType: arm ImageDiskReference: Id: $referenceType: arm Snapshot: $export: true $supportedFrom: v2.9.0 SnapshotProperties: DiskAccessId: $referenceType: arm SourceVault: Id: $referenceType: arm DiskAccess: $export: true $supportedFrom: v2.9.0 DiskEncryptionSet: $export: true $supportedFrom: v2.9.0 KeyForDiskEncryptionSet: KeyUrl: $importConfigMapMode: optional EncryptionSetProperties: FederatedClientId: $importConfigMapMode: optional # TODO: Reorganize this section # TODO: Confirm that these guys are really ARM IDs DiskSecurityProfile: SecureVMDiskEncryptionSetId: $referenceType: arm containerinstance: 2021-10-01: ContainerGroup: $export: true $supportedFrom: v2.0.0-beta.1 ContainerGroupSubnetId: Id: $referenceType: arm LogAnalytics: WorkspaceResourceId: $referenceType: arm containerregistry: 2021-09-01: IdentityProperties: PrincipalId: $referenceType: simple Registry: $export: true $supportedFrom: v2.0.0-alpha.6 2023-07-01: KeyVaultProperties: Identity: $importConfigMapMode: optional Registry: $export: true $supportedFrom: v2.12.0 Registries_Replication: $exportAs: RegistryReplication $supportedFrom: v2.12.0 containerservice: $payloadType: explicitCollections 2021-05-01: ContainerServiceSshPublicKey: KeyData: $isSecret: false ContainerServiceSshPublicKey_STATUS: KeyData: $isSecret: false ManagedCluster: $export: true $supportedFrom: v2.0.0-alpha.1 $stripDocumentation: true $azureGeneratedSecrets: - AdminCredentials - UserCredentials ManagedCluster_Spec: Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfile: ProximityPlacementGroupID: $referenceType: simple # This is true in the next version and we have custom conversion to make round-tripping work NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusters_AgentPool: $exportAs: ManagedClustersAgentPool $supportedFrom: v2.0.0-alpha.1 ManagedClusterAgentPoolProfileProperties: ProximityPlacementGroupID: $referenceType: simple # This is true in the next version and we have custom conversion to make round-tripping work NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusterServicePrincipalProfile: Secret: $isSecret: true ManagedClusterWindowsProfile: AdminPassword: $isSecret: true PrivateLinkResource: Id: $referenceType: arm 2023-02-01: ContainerServiceSshPublicKey: KeyData: $isSecret: false ContainerServiceSshPublicKey_STATUS: KeyData: $isSecret: false ManagedCluster: $export: true $supportedFrom: v2.0.0 $stripDocumentation: true $azureGeneratedSecrets: - AdminCredentials - UserCredentials $generatedConfigs: OIDCIssuerProfile: $.Status.OidcIssuerProfile.IssuerURL PrincipalId: $.Status.Identity.PrincipalId ManagedCluster_Spec: Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfile: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfileProperties: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusters_AgentPool: $exportAs: ManagedClustersAgentPool $supportedFrom: v2.0.0 ManagedClusterServicePrincipalProfile: Secret: $isSecret: true ManagedClusterWindowsProfile: AdminPassword: $isSecret: true PrivateLinkResource: Id: $referenceType: arm 2023-03-15-preview: Fleet: $export: true $supportedFrom: v2.4.0 $azureGeneratedSecrets: - UserCredentials Fleets_Member: $exportAs: FleetsMember $supportedFrom: v2.4.0 Fleets_UpdateRun: $exportAs: FleetsUpdateRun $supportedFrom: v2.4.0 2023-10-01: ContainerServiceNetworkProfile_NetworkPlugin: $renameTo: NetworkPlugin ContainerServiceSshPublicKey: KeyData: $isSecret: false DelegatedResource: ResourceId: $referenceType: arm ManagedCluster: $export: true $supportedFrom: v2.5.0 $azureGeneratedSecrets: - AdminCredentials - UserCredentials $generatedConfigs: OIDCIssuerProfile: $.Status.OidcIssuerProfile.IssuerURL PrincipalId: $.Status.Identity.PrincipalId ManagedCluster_Spec: Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfile: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfileProperties: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusters_AgentPool: $exportAs: ManagedClustersAgentPool $supportedFrom: v2.5.0 ManagedClusterServicePrincipalProfile: Secret: $isSecret: true ManagedClusterWindowsProfile: AdminPassword: $isSecret: true ManagedClusters_TrustedAccessRoleBinding: $exportAs: TrustedAccessRoleBinding $supportedFrom: v2.8.0 PrivateLinkResource: Id: $referenceType: arm 2023-11-02-preview: ContainerServiceSshPublicKey: KeyData: $isSecret: false ContainerServiceSshPublicKey_STATUS: KeyData: $isSecret: false DelegatedResource: ResourceId: $referenceType: arm ManagedCluster: $export: true $supportedFrom: v2.6.0 $stripDocumentation: true $azureGeneratedSecrets: - AdminCredentials - UserCredentials $generatedConfigs: OIDCIssuerProfile: $.Status.OidcIssuerProfile.IssuerURL ManagedCluster_Spec: Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfile: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfileProperties: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusters_AgentPool: $exportAs: ManagedClustersAgentPool $supportedFrom: v2.6.0 ManagedClusterServicePrincipalProfile: Secret: $isSecret: true ManagedClusterWindowsProfile: AdminPassword: $isSecret: true PrivateLinkResource: Id: $referenceType: arm 2024-04-02-preview: ContainerServiceSshPublicKey: KeyData: $isSecret: false ContainerServiceSshPublicKey_STATUS: KeyData: $isSecret: false DelegatedResource: ResourceId: $referenceType: arm ManagedCluster: $export: true $supportedFrom: v2.8.0 $azureGeneratedSecrets: - AdminCredentials - UserCredentials $generatedConfigs: OIDCIssuerProfile: $.Status.OidcIssuerProfile.IssuerURL ManagedCluster_Spec: Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfile: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfileProperties: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusters_AgentPool: $exportAs: ManagedClustersAgentPool $supportedFrom: v2.8.0 ManagedClusterServicePrincipalProfile: Secret: $isSecret: true ManagedClusterWindowsProfile: AdminPassword: $isSecret: true ManagedClusters_TrustedAccessRoleBinding: $exportAs: TrustedAccessRoleBinding $supportedFrom: v2.8.0 PrivateLinkResource: Id: $referenceType: arm 2024-09-01: ContainerServiceSshPublicKey: KeyData: $isSecret: false ContainerServiceSshPublicKey_STATUS: KeyData: $isSecret: false DelegatedResource: ResourceId: $referenceType: arm ManagedCluster: $export: true $supportedFrom: v2.11.0 $azureGeneratedSecrets: - AdminCredentials - UserCredentials $generatedConfigs: OIDCIssuerProfile: $.Status.OidcIssuerProfile.IssuerURL ManagedCluster_Spec: Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfile: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusterAgentPoolProfileProperties: NodeLabels: $payloadType: explicitEmptyCollections NodeTaints: $payloadType: explicitEmptyCollections Tags: $payloadType: explicitEmptyCollections ManagedClusters_AgentPool: $exportAs: ManagedClustersAgentPool $supportedFrom: v2.11.0 ManagedClusterServicePrincipalProfile: Secret: $isSecret: true ManagedClusterWindowsProfile: AdminPassword: $isSecret: true PrivateLinkResource: Id: $referenceType: arm ManagedClusters_TrustedAccessRoleBinding: $exportAs: TrustedAccessRoleBinding $supportedFrom: v2.11.0 ManagedClusters_MaintenanceConfiguration: $exportAs: MaintenanceConfiguration $supportedFrom: v2.11.0 datafactory: 2018-06-01: PurviewConfiguration: PurviewResourceId: $referenceType: arm CMKIdentityDefinition: UserAssignedIdentity: $referenceType: arm Factory: $export: true $supportedFrom: v2.1.0 dataprotection: 2023-01-01: BackupVault: $export: true $supportedFrom: v2.2.0 $generatedConfigs: PrincipalId: $.Status.Identity.PrincipalId BackupVaults_BackupPolicy: $exportAs: BackupVaultsBackupPolicy $supportedFrom: v2.2.0 2023-11-01: BackupVault: $export: true $supportedFrom: v2.7.0 $generatedConfigs: PrincipalId: $.Status.Identity.PrincipalId BackupVaults_BackupPolicy: $exportAs: BackupVaultsBackupPolicy $supportedFrom: v2.7.0 BackupVaults_BackupInstance: $exportAs: BackupVaultsBackupInstance $supportedFrom: v2.7.0 DatasourceSet: ResourceID: $referenceType: arm Datasource: ResourceID: $referenceType: arm PolicyInfo: PolicyId: $referenceType: arm AzureOperationalStoreParameters: ResourceGroupId: $referenceType: arm dbformariadb: 2018-06-01: Server: $export: true $supportedFrom: v2.0.0-beta.1 $azureGeneratedSecrets: - FullyQualifiedDomainName Servers_Configuration: $exportAs: Configuration $supportedFrom: v2.0.0-beta.1 Servers_Database: $exportAs: Database $supportedFrom: v2.0.0-beta.1 dbformysql: v1: # Handcrafted User: $supportedFrom: v2.0.0 2021-05-01: DataEncryption: GeoBackupUserAssignedIdentityId: $referenceType: arm PrimaryUserAssignedIdentityId: $referenceType: arm FlexibleServer: $export: true $supportedFrom: v2.0.0-alpha.2 $azureGeneratedSecrets: - FullyQualifiedDomainName $generatedConfigs: FullyQualifiedDomainName: $.Status.FullyQualifiedDomainName AdministratorLogin: $.Status.AdministratorLogin FlexibleServers_Database: $exportAs: FlexibleServersDatabase $supportedFrom: v2.0.0-alpha.2 FlexibleServers_FirewallRule: $exportAs: FlexibleServersFirewallRule $supportedFrom: v2.0.0-alpha.2 Identity: $nameInNextVersion: MySQLServerIdentity Identity_STATUS: $nameInNextVersion: MySQLServerIdentity_STATUS Sku: $nameInNextVersion: MySQLServerSku Sku_STATUS: $nameInNextVersion: MySQLServerSku_STATUS ServerProperties: SourceServerResourceId: $referenceType: simple # Actually, this *IS* a resource id, but we want to avoid breaking changes so we're fibbing here 2022-01-01: FlexibleServers_Administrator: $exportAs: FlexibleServersAdministrator $supportedFrom: v2.1.0 AdministratorProperties: IdentityResourceId: $referenceType: arm # TODO: Upstream to Swagger Sid: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional FlexibleServers_Configuration: $exportAs: FlexibleServersConfiguration $supportedFrom: v2.1.0 2023-06-30: DataEncryption: GeoBackupUserAssignedIdentityId: $referenceType: arm PrimaryUserAssignedIdentityId: $referenceType: arm FlexibleServer: $export: true $supportedFrom: v2.7.0 $azureGeneratedSecrets: - FullyQualifiedDomainName $generatedConfigs: FullyQualifiedDomainName: $.Status.FullyQualifiedDomainName AdministratorLogin: $.Status.AdministratorLogin FlexibleServers_Administrator: $exportAs: FlexibleServersAdministrator $supportedFrom: v2.7.0 AdministratorProperties: IdentityResourceId: $referenceType: arm # TODO: Upstream to Swagger Sid: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional FlexibleServers_Configuration: $exportAs: FlexibleServersConfiguration $supportedFrom: v2.7.0 FlexibleServers_Database: $exportAs: FlexibleServersDatabase $supportedFrom: v2.7.0 FlexibleServers_FirewallRule: $exportAs: FlexibleServersFirewallRule $supportedFrom: v2.7.0 Network: DelegatedSubnetResourceId: $referenceType: arm PrivateDnsZoneResourceId: $referenceType: arm ServerProperties: SourceServerResourceId: $referenceType: arm 2023-12-30: DataEncryption: GeoBackupUserAssignedIdentityId: $referenceType: arm PrimaryUserAssignedIdentityId: $referenceType: arm FlexibleServer: $export: true $supportedFrom: v2.13.0 $azureGeneratedSecrets: - FullyQualifiedDomainName $generatedConfigs: FullyQualifiedDomainName: $.Status.FullyQualifiedDomainName AdministratorLogin: $.Status.AdministratorLogin FlexibleServers_Administrator: $exportAs: FlexibleServersAdministrator $supportedFrom: v2.13.0 AdministratorProperties: IdentityResourceId: $referenceType: arm # TODO: Upstream to Swagger Sid: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional FlexibleServers_Configuration: $exportAs: FlexibleServersConfiguration $supportedFrom: v2.13.0 FlexibleServers_Database: $exportAs: FlexibleServersDatabase $supportedFrom: v2.13.0 FlexibleServers_FirewallRule: $exportAs: FlexibleServersFirewallRule $supportedFrom: v2.13.0 Network: DelegatedSubnetResourceId: $referenceType: arm PrivateDnsZoneResourceId: $referenceType: arm ServerProperties: SourceServerResourceId: $referenceType: arm dbforpostgresql: v1: # Handcrafted User: $supportedFrom: v2.0.0 2021-06-01: FlexibleServer: $export: true $supportedFrom: v2.0.0-alpha.2 $azureGeneratedSecrets: - FullyQualifiedDomainName FlexibleServers_Configuration: $exportAs: FlexibleServersConfiguration $supportedFrom: v2.0.0-alpha.4 FlexibleServers_Database: $exportAs: FlexibleServersDatabase $supportedFrom: v2.0.0-alpha.2 FlexibleServers_FirewallRule: $exportAs: FlexibleServersFirewallRule $supportedFrom: v2.0.0-alpha.2 2022-01-20-preview: FlexibleServer: $azureGeneratedSecrets: - FullyQualifiedDomainName $export: true $supportedFrom: v2.0.0-beta.4 $generatedConfigs: FullyQualifiedDomainName: $.Status.FullyQualifiedDomainName FlexibleServers_Configuration: $exportAs: FlexibleServersConfiguration $supportedFrom: v2.0.0-beta.4 FlexibleServers_Database: $exportAs: FlexibleServersDatabase $supportedFrom: v2.0.0-beta.4 FlexibleServers_FirewallRule: $exportAs: FlexibleServersFirewallRule $supportedFrom: v2.0.0-beta.4 ServerProperties: SourceServerResourceId: $referenceType: arm Network: DelegatedSubnetResourceId: $referenceType: arm PrivateDnsZoneArmResourceId: $referenceType: arm 2022-12-01: DataEncryption: PrimaryKeyURI: $importConfigMapMode: optional PrimaryUserAssignedIdentityId: $referenceType: arm FlexibleServer: $azureGeneratedSecrets: - FullyQualifiedDomainName $export: true $supportedFrom: v2.5.0 $generatedConfigs: FullyQualifiedDomainName: $.Status.FullyQualifiedDomainName FlexibleServers_Configuration: $exportAs: FlexibleServersConfiguration $supportedFrom: v2.5.0 FlexibleServers_Database: $exportAs: FlexibleServersDatabase $supportedFrom: v2.5.0 FlexibleServers_FirewallRule: $exportAs: FlexibleServersFirewallRule $supportedFrom: v2.5.0 ServerProperties: SourceServerResourceId: $referenceType: arm Network: DelegatedSubnetResourceId: $referenceType: arm PrivateDnsZoneArmResourceId: $referenceType: arm 2023-06-01-preview: DataEncryption: GeoBackupKeyURI: $importConfigMapMode: optional GeoBackupUserAssignedIdentityId: $referenceType: arm PrimaryKeyURI: $importConfigMapMode: optional PrimaryUserAssignedIdentityId: $referenceType: arm FlexibleServer: $azureGeneratedSecrets: - FullyQualifiedDomainName $export: true $supportedFrom: v2.6.0 $generatedConfigs: FullyQualifiedDomainName: $.Status.FullyQualifiedDomainName FlexibleServers_Configuration: $exportAs: FlexibleServersConfiguration $supportedFrom: v2.6.0 FlexibleServers_Database: $exportAs: FlexibleServersDatabase $supportedFrom: v2.6.0 FlexibleServers_FirewallRule: $exportAs: FlexibleServersFirewallRule $supportedFrom: v2.6.0 ServerProperties: SourceServerResourceId: $referenceType: arm Network: DelegatedSubnetResourceId: $referenceType: arm PrivateDnsZoneArmResourceId: $referenceType: arm 2024-08-01: DataEncryption: GeoBackupKeyURI: $importConfigMapMode: optional GeoBackupUserAssignedIdentityId: $referenceType: arm PrimaryKeyURI: $importConfigMapMode: optional PrimaryUserAssignedIdentityId: $referenceType: arm FlexibleServer: $azureGeneratedSecrets: - FullyQualifiedDomainName $export: true $supportedFrom: v2.13.0 $generatedConfigs: FullyQualifiedDomainName: $.Status.FullyQualifiedDomainName FlexibleServers_Configuration: $exportAs: FlexibleServersConfiguration $supportedFrom: v2.13.0 FlexibleServers_Database: $exportAs: FlexibleServersDatabase $supportedFrom: v2.13.0 FlexibleServers_FirewallRule: $exportAs: FlexibleServersFirewallRule $supportedFrom: v2.13.0 FlexibleServers_Backup: # TODO: net new $exportAs: FlexibleServersBackup $supportedFrom: v2.13.0 FlexibleServers_AdvancedThreatProtectionSetting: # TODO: net new $exportAs: FlexibleServersAdvancedThreatProtectionSettings $supportedFrom: v2.13.0 FlexibleServers_VirtualEndpoint: # TODO: net new $exportAs: FlexibleServersVirtualEndpoint $supportedFrom: v2.13.0 ServerProperties: SourceServerResourceId: $referenceType: arm Network: DelegatedSubnetResourceId: $referenceType: arm PrivateDnsZoneArmResourceId: $referenceType: arm devices: 2021-07-02: IotHub: $export: true $supportedFrom: v2.1.0 $azureGeneratedSecrets: - ServicePrimaryKey - ServiceSecondaryKey - IotHubOwnerPrimaryKey - IotHubOwnerSecondaryKey - DevicePrimaryKey - DeviceSecondaryKey - RegistryReadPrimaryKey - RegistryReadSecondaryKey - RegistryReadWritePrimaryKey - RegistryReadWriteSecondaryKey RoutingServiceBusQueueEndpointProperties: Id: $referenceType: arm ConnectionString: $isSecret: true RoutingEventHubProperties: Id: $referenceType: arm ConnectionString: $isSecret: true RoutingServiceBusTopicEndpointProperties: Id: $referenceType: arm ConnectionString: $isSecret: true RoutingStorageContainerProperties: Id: $referenceType: arm ConnectionString: $isSecret: true StorageEndpointProperties: ConnectionString: $isSecret: true documentdb: 2021-05-15: DatabaseAccount: $export: true $supportedFrom: v2.0.0-alpha.1 $azureGeneratedSecrets: - PrimaryMasterKey - SecondaryMasterKey - PrimaryReadonlyMasterKey - SecondaryReadonlyMasterKey - DocumentEndpoint DatabaseAccountCreateUpdateProperties: NetworkAclBypassResourceIds: $referenceType: simple # TODO[breaking]: Change this to true DatabaseAccounts_MongodbDatabase: $exportAs: MongodbDatabase $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_MongodbDatabases_Collection: $exportAs: MongodbDatabaseCollection $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_MongodbDatabases_Collections_ThroughputSetting: $exportAs: MongodbDatabaseCollectionThroughputSetting $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_MongodbDatabases_ThroughputSetting: $exportAs: MongodbDatabaseThroughputSetting $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_SqlDatabase: $exportAs: SqlDatabase $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_SqlDatabases_Container: $exportAs: SqlDatabaseContainer $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_SqlDatabases_Containers_StoredProcedure: $exportAs: SqlDatabaseContainerStoredProcedure $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_SqlDatabases_Containers_ThroughputSetting: $exportAs: SqlDatabaseContainerThroughputSetting $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_SqlDatabases_Containers_Trigger: $exportAs: SqlDatabaseContainerTrigger $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_SqlDatabases_Containers_UserDefinedFunction: $exportAs: SqlDatabaseContainerUserDefinedFunction $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_SqlDatabases_ThroughputSetting: $exportAs: SqlDatabaseThroughputSetting $supportedFrom: v2.0.0-alpha.2 DatabaseAccounts_SqlRoleAssignment: $exportAs: SqlRoleAssignment $supportedFrom: v2.0.0-beta.3 $defaultAzureName: false MongoDBCollectionResource: Id: $referenceType: simple MongoDBDatabaseResource: Id: $referenceType: simple SqlDatabaseResource: Id: $referenceType: simple SqlContainerResource: Id: $referenceType: simple SqlRoleAssignmentResource: PrincipalId: $importConfigMapMode: optional SqlTriggerResource: Id: $referenceType: simple SqlStoredProcedureResource: Id: $referenceType: simple SqlUserDefinedFunctionResource: Id: $referenceType: simple 2023-11-15: DatabaseAccount: $export: true $supportedFrom: v2.8.0 $azureGeneratedSecrets: - PrimaryMasterKey - SecondaryMasterKey - PrimaryReadonlyMasterKey - SecondaryReadonlyMasterKey - DocumentEndpoint DatabaseAccountCreateUpdateProperties: NetworkAclBypassResourceIds: $referenceType: arm DatabaseAccounts_MongodbDatabase: $exportAs: MongodbDatabase $supportedFrom: v2.8.0 DatabaseAccounts_MongodbDatabases_Collection: $exportAs: MongodbDatabaseCollection $supportedFrom: v2.8.0 DatabaseAccounts_MongodbDatabases_Collections_ThroughputSetting: $exportAs: MongodbDatabaseCollectionThroughputSetting $supportedFrom: v2.8.0 DatabaseAccounts_MongodbDatabases_ThroughputSetting: $exportAs: MongodbDatabaseThroughputSetting $supportedFrom: v2.8.0 DatabaseAccounts_SqlDatabase: $exportAs: SqlDatabase $supportedFrom: v2.8.0 DatabaseAccounts_SqlDatabases_Container: $exportAs: SqlDatabaseContainer $supportedFrom: v2.8.0 DatabaseAccounts_SqlDatabases_Containers_StoredProcedure: $exportAs: SqlDatabaseContainerStoredProcedure $supportedFrom: v2.8.0 DatabaseAccounts_SqlDatabases_Containers_ThroughputSetting: $exportAs: SqlDatabaseContainerThroughputSetting $supportedFrom: v2.8.0 DatabaseAccounts_SqlDatabases_Containers_Trigger: $exportAs: SqlDatabaseContainerTrigger $supportedFrom: v2.8.0 DatabaseAccounts_SqlDatabases_Containers_UserDefinedFunction: $exportAs: SqlDatabaseContainerUserDefinedFunction $supportedFrom: v2.8.0 DatabaseAccounts_SqlDatabases_ThroughputSetting: $exportAs: SqlDatabaseThroughputSetting $supportedFrom: v2.8.0 DatabaseAccounts_SqlRoleAssignment: $exportAs: SqlRoleAssignment $supportedFrom: v2.8.0 $defaultAzureName: false MongoDBCollectionResource: Id: $referenceType: simple MongoDBDatabaseResource: Id: $referenceType: simple SqlDatabaseResource: Id: $referenceType: simple SqlContainerResource: Id: $referenceType: simple SqlRoleAssignmentResource: PrincipalId: $importConfigMapMode: optional SqlTriggerResource: Id: $referenceType: simple SqlStoredProcedureResource: Id: $referenceType: simple SqlUserDefinedFunctionResource: Id: $referenceType: simple 2024-08-15: DatabaseAccount: $export: true $supportedFrom: v2.12.0 $azureGeneratedSecrets: - PrimaryMasterKey - SecondaryMasterKey - PrimaryReadonlyMasterKey - SecondaryReadonlyMasterKey - DocumentEndpoint DatabaseAccountCreateUpdateProperties: NetworkAclBypassResourceIds: $referenceType: arm DatabaseAccounts_MongodbDatabase: $exportAs: MongodbDatabase $supportedFrom: v2.12.0 DatabaseAccounts_MongodbDatabases_Collection: $exportAs: MongodbDatabaseCollection $supportedFrom: v2.12.0 DatabaseAccounts_MongodbDatabases_Collections_ThroughputSetting: $exportAs: MongodbDatabaseCollectionThroughputSetting $supportedFrom: v2.12.0 DatabaseAccounts_MongodbDatabases_ThroughputSetting: $exportAs: MongodbDatabaseThroughputSetting $supportedFrom: v2.12.0 DatabaseAccounts_SqlDatabase: $exportAs: SqlDatabase $supportedFrom: v2.12.0 DatabaseAccounts_SqlDatabases_Container: $exportAs: SqlDatabaseContainer $supportedFrom: v2.12.0 DatabaseAccounts_SqlDatabases_Containers_StoredProcedure: $exportAs: SqlDatabaseContainerStoredProcedure $supportedFrom: v2.12.0 DatabaseAccounts_SqlDatabases_Containers_ThroughputSetting: $exportAs: SqlDatabaseContainerThroughputSetting $supportedFrom: v2.12.0 DatabaseAccounts_SqlDatabases_Containers_Trigger: $exportAs: SqlDatabaseContainerTrigger $supportedFrom: v2.12.0 DatabaseAccounts_SqlDatabases_Containers_UserDefinedFunction: $exportAs: SqlDatabaseContainerUserDefinedFunction $supportedFrom: v2.12.0 DatabaseAccounts_SqlDatabases_ThroughputSetting: $exportAs: SqlDatabaseThroughputSetting $supportedFrom: v2.12.0 DatabaseAccounts_SqlRoleAssignment: $exportAs: SqlRoleAssignment $supportedFrom: v2.12.0 $defaultAzureName: false DatabaseAccounts_MongodbUserDefinition: $exportAs: MongodbUserDefinition $supportedFrom: v2.12.0 MongoDBCollectionResource: Id: $referenceType: simple MongoDBDatabaseResource: Id: $referenceType: simple SqlDatabaseResource: Id: $referenceType: simple SqlContainerResource: Id: $referenceType: simple SqlRoleAssignmentResource: PrincipalId: $importConfigMapMode: optional SqlTriggerResource: Id: $referenceType: simple SqlStoredProcedureResource: Id: $referenceType: simple SqlUserDefinedFunctionResource: Id: $referenceType: simple MongoUserDefinitionResource: password: $isSecret: true eventgrid: 2020-06-01: Domain: $export: true $supportedFrom: v2.0.0-alpha.5 Domains_Topic: $exportAs: DomainsTopic $supportedFrom: v2.0.0-alpha.5 EventSubscription: $export: true $supportedFrom: v2.0.0-alpha.5 Topic: $export: true $supportedFrom: v2.0.0-alpha.3 $azureGeneratedSecrets: - Key1 - Key2 $generatedConfigs: Endpoint: $.Status.Endpoint eventhub: 2021-11-01: Destination_Properties: StorageAccountResourceId: $referenceType: arm Namespace: $export: true $supportedFrom: v2.0.0-alpha.1 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - PrimaryConnectionString - SecondaryConnectionString Namespaces_AuthorizationRule: $exportAs: NamespacesAuthorizationRule $supportedFrom: v2.0.0-alpha.2 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - PrimaryConnectionString - SecondaryConnectionString Namespaces_Eventhub: $exportAs: NamespacesEventhub $supportedFrom: v2.0.0-alpha.3 Namespaces_Eventhubs_AuthorizationRule: $exportAs: NamespacesEventhubsAuthorizationRule $supportedFrom: v2.0.0-alpha.3 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - PrimaryConnectionString - SecondaryConnectionString Namespaces_Eventhubs_Consumergroup: $exportAs: NamespacesEventhubsConsumerGroup $supportedFrom: v2.0.0-alpha.1 Namespace_Properties_Spec: ClusterArmId: $referenceType: arm # TODO: I think this has been (correctly) pruned now # PrivateEndpoint: # Id: # $referenceType: arm UserAssignedIdentityProperties: UserAssignedIdentity: $referenceType: arm 2024-01-01: Destination_Properties: StorageAccountResourceId: $referenceType: arm CaptureIdentity: UserAssignedIdentity: $referenceType: arm Namespace: $export: true $supportedFrom: v2.12.0 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - PrimaryConnectionString - SecondaryConnectionString Namespaces_AuthorizationRule: $exportAs: NamespacesAuthorizationRule $supportedFrom: v2.12.0 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - PrimaryConnectionString - SecondaryConnectionString Namespaces_Eventhub: $exportAs: NamespacesEventhub $supportedFrom: v2.12.0 Namespaces_Eventhubs_AuthorizationRule: $exportAs: NamespacesEventhubsAuthorizationRule $supportedFrom: v2.12.0 $azureGeneratedSecrets: - PrimaryKey - SecondaryKey - PrimaryConnectionString - SecondaryConnectionString Namespaces_Eventhubs_Consumergroup: $exportAs: NamespacesEventhubsConsumerGroup $supportedFrom: v2.12.0 Namespace_Properties_Spec: ClusterArmId: $referenceType: arm UserAssignedIdentityProperties: UserAssignedIdentity: $referenceType: arm insights: 2018-05-01-preview: Webtest: $export: true $supportedFrom: v2.0.0-alpha.4 WebTestGeolocation: Id: $referenceType: simple 2020-02-02: ApplicationInsightsComponentProperties: HockeyAppToken: $isSecret: false WorkspaceResourceId: $referenceType: arm Component: $export: true $supportedFrom: v2.0.0-alpha.2 $generatedConfigs: ConnectionString: $.Status.ConnectionString InstrumentationKey: $.Status.InstrumentationKey 2023-01-01: ActionGroup: $export: true $supportedFrom: v2.4.0 AutomationRunbookReceiver: WebhookResourceId: $referenceType: arm AzureFunctionReceiver: FunctionAppResourceId: $referenceType: arm LogicAppReceiver: ResourceId: $referenceType: arm 2022-10-01: Autoscalesetting: $exportAs: AutoscaleSetting $supportedFrom: v2.4.0 AutoscaleSettingProperties: TargetResourceUri: $referenceType: arm MetricTrigger: MetricResourceUri: $referenceType: arm 2018-03-01: MetricAlert: $export: true $supportedFrom: v2.4.0 WebtestLocationAvailabilityCriteria: ComponentId: $referenceType: arm MetricAlertProperties: Scopes: $referenceType: arm 2022-06-15: ScheduledQueryRule: $export: true $supportedFrom: v2.4.0 Actions: ActionGroups: $referenceType: arm Condition: ResourceIdColumn: $referenceType: arm ScheduledQueryRuleProperties: Scopes: $referenceType: arm Webtest: $export: true $supportedFrom: v2.7.0 WebTestGeolocation: Id: $referenceType: simple 2021-05-01-preview: DiagnosticSetting: $export: true $supportedFrom: v2.11.0 DiagnosticSettings: MarketplacePartnerId: $referenceType: arm WorkspaceId: $referenceType: arm EventHubAuthorizationRuleId: $referenceType: arm StorageAccountId: $referenceType: arm 2024-01-01-preview: ScheduledQueryRule: $export: true $supportedFrom: v2.12.0 Actions: ActionGroups: $referenceType: arm Condition: ResourceIdColumn: $referenceType: arm ScheduledQueryRuleProperties: Scopes: $referenceType: arm keyvault: 2021-04-01-preview: Vault: $export: true $supportedFrom: v2.0.0-beta.1 VaultProperties: TenantId: $importConfigMapMode: optional AccessPolicyEntry: TenantId: $importConfigMapMode: optional ApplicationId: $importConfigMapMode: optional ObjectId: $importConfigMapMode: optional VirtualNetworkRule: Id: $referenceType: arm 2023-07-01: Vault: $export: true $supportedFrom: v2.5.0 VaultProperties: TenantId: $importConfigMapMode: optional AccessPolicyEntry: TenantId: $importConfigMapMode: optional ApplicationId: $importConfigMapMode: optional ObjectId: $importConfigMapMode: optional VirtualNetworkRule: Id: $referenceType: arm kubernetesconfiguration: 2023-05-01: Extension: $export: true $supportedFrom: v2.4.0 $generatedConfigs: PrincipalId: $.Status.AksAssignedIdentity.PrincipalId FluxConfiguration: $export: true $supportedFrom: v2.10.0 ServicePrincipalDefinition: ClientId: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional BucketDefinition: AccessKey: $isSecret: true GitRepositoryDefinition: HttpsCACert: $isSecret: true 2024-11-01: Extension: $export: true $supportedFrom: v2.13.0 $generatedConfigs: PrincipalId: $.Status.AksAssignedIdentity.PrincipalId FluxConfiguration: $export: true $supportedFrom: v2.13.0 ServicePrincipalDefinition: ClientId: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional BucketDefinition: AccessKey: $isSecret: true GitRepositoryDefinition: HttpsCACert: $isSecret: true kusto: 2023-08-15: Cluster: $export: true $supportedFrom: v2.13.0 VirtualNetworkConfiguration: DataManagementPublicIpId: $referenceType: arm SubnetId: $referenceType: arm EnginePublicIpId: $referenceType: arm KeyVaultProperties: UserIdentity: $referenceType: arm Clusters_Database: $exportAs: Database $supportedFrom: v2.13.0 ReadWriteDatabase: $resourceEmbeddedInParent: Clusters_Database ReadWriteDatabase_STATUS: $resourceEmbeddedInParent: Clusters_Database Clusters_Databases_DataConnection: $exportAs: DataConnection $supportedFrom: v2.13.0 CosmosDbDataConnection: $resourceEmbeddedInParent: Clusters_Databases_DataConnection CosmosDbDataConnection_STATUS: $resourceEmbeddedInParent: Clusters_Databases_DataConnection CosmosDbDataConnectionProperties: ManagedIdentityResourceId: $referenceType: arm CosmosDbAccountResourceId: $referenceType: arm EventGridDataConnection: $resourceEmbeddedInParent: Clusters_Databases_DataConnection EventGridDataConnection_STATUS: $resourceEmbeddedInParent: Clusters_Databases_DataConnection EventGridConnectionProperties: EventGridResourceId: $referenceType: arm ManagedIdentityResourceId: $referenceType: arm EventHubResourceId: $referenceType: arm StorageAccountResourceId: $referenceType: arm EventHubDataConnection: $resourceEmbeddedInParent: Clusters_Databases_DataConnection EventHubDataConnection_STATUS: $resourceEmbeddedInParent: Clusters_Databases_DataConnection EventHubConnectionProperties: EventHubResourceId: $referenceType: arm ManagedIdentityResourceId: $referenceType: arm IotHubDataConnection: $resourceEmbeddedInParent: Clusters_Databases_DataConnection IotHubDataConnection_STATUS: $resourceEmbeddedInParent: Clusters_Databases_DataConnection IotHubConnectionProperties: IotHubResourceId: $referenceType: arm managedidentity: 2018-11-30: UserAssignedIdentity: $export: true $supportedFrom: v2.0.0-alpha.1 $generatedConfigs: ClientId: $.Status.ClientId PrincipalId: $.Status.PrincipalId TenantId: $.Status.TenantId 2022-01-31-preview: # Not adding UserAssignedIdentity here because it's identical to the one in 2018 UserAssignedIdentities_FederatedIdentityCredential: $exportAs: FederatedIdentityCredential $supportedFrom: v2.0.0-beta.3 FederatedIdentityCredentialProperties: Issuer: $importConfigMapMode: optional Subject: $importConfigMapMode: optional 2023-01-31: UserAssignedIdentity: $export: true $supportedFrom: v2.5.0 $azureGeneratedSecrets: - ClientId - PrincipalId - TenantId $generatedConfigs: ClientId: $.Status.ClientId PrincipalId: $.Status.PrincipalId TenantId: $.Status.TenantId UserAssignedIdentities_FederatedIdentityCredential: $exportAs: FederatedIdentityCredential $supportedFrom: v2.5.0 FederatedIdentityCredentialProperties: Issuer: $importConfigMapMode: optional Subject: $importConfigMapMode: optional machinelearningservices: 2021-07-01: AksNetworkingConfiguration: SubnetId: $referenceType: arm IdentityForCmk: UserAssignedIdentity: $referenceType: simple # Actually, this *IS* a resource id, but we want to avoid breaking changes so we're fibbing here KeyVaultProperties: $nameInNextVersion: EncryptionKeyVaultProperties KeyVaultArmId: $referenceType: simple # Actually, this *IS* a resource id, but we want to avoid breaking changes so we're fibbing here Kubernetes: ResourceId: $referenceType: arm Workspace: $export: true $supportedFrom: v2.0.0-beta.2 $azureGeneratedSecrets: - AppInsightsInstrumentationKey - ContainerRegistryUserName - ContainerRegistryPassword - ContainerRegistryPassword2 - PrimaryNotebookAccessKey - SecondaryNotebookAccessKey - UserStorageKey WorkspaceProperties: ApplicationInsights: $referenceType: arm ContainerRegistry: $referenceType: arm KeyVault: $referenceType: arm PrimaryUserAssignedIdentity: $referenceType: arm StorageAccount: $referenceType: arm SharedPrivateLinkResourceProperty: PrivateLinkResourceId: $referenceType: arm Workspaces_Compute: $exportAs: WorkspacesCompute $supportedFrom: v2.0.0-beta.2 HDInsight: ResourceId: $referenceType: arm DataFactory: ResourceId: $referenceType: arm DataLakeAnalytics: ResourceId: $referenceType: arm Databricks: ResourceId: $referenceType: arm DatabricksProperties: DatabricksAccessToken: $isSecret: true AKS: ResourceId: $referenceType: arm ComputeInstance: ResourceId: $referenceType: arm SynapseSpark: ResourceId: $referenceType: arm AmlCompute: ResourceId: $referenceType: arm VirtualMachine: ResourceId: $referenceType: arm VirtualMachineImage: Id: $referenceType: arm UserAccountCredentials: AdminUserPassword: $isSecret: true AdminUserSshPublicKey: $isSecret: true VirtualMachineSshCredentials: Password: $isSecret: true PrivateKeyData: $isSecret: true PublicKeyData: $isSecret: true Workspaces_Connection: $exportAs: WorkspacesConnection $supportedFrom: v2.0.0-beta.2 Identity: $nameInNextVersion: ManagedServiceIdentity KeyVaultProperties_STATUS: $nameInNextVersion: EncryptionKeyVaultProperties_STATUS Identity_STATUS: $nameInNextVersion: ManagedServiceIdentity_STATUS SslConfiguration: Key: $isSecret: true Cert: $isSecret: true 2024-04-01: AksNetworkingConfiguration: SubnetId: $referenceType: arm IdentityForCmk: UserAssignedIdentity: $referenceType: arm Kubernetes: ResourceId: $referenceType: arm Workspace: $export: true $supportedFrom: v2.10.0 $azureGeneratedSecrets: - AppInsightsInstrumentationKey - ContainerRegistryUserName - ContainerRegistryPassword - ContainerRegistryPassword2 - PrimaryNotebookAccessKey - SecondaryNotebookAccessKey - UserStorageKey WorkspaceConnectionUsernamePassword: Password: $isSecret: true WorkspaceConnectionPersonalAccessToken: Pat: $isSecret: true WorkspaceProperties: HubResourceId: $referenceType: arm ApplicationInsights: $referenceType: arm ContainerRegistry: $referenceType: arm KeyVault: $referenceType: arm PrimaryUserAssignedIdentity: $referenceType: arm StorageAccount: $referenceType: arm WorkspaceConnectionManagedIdentity: ResourceId: $referenceType: arm ClientId: $importConfigMapMode: optional ScheduleBase: Id: $referenceType: arm EncryptionKeyVaultProperties: KeyVaultArmId: $referenceType: arm IdentityClientId: $importConfigMapMode: optional SharedPrivateLinkResourceProperty: PrivateLinkResourceId: $referenceType: arm Workspaces_Compute: $exportAs: WorkspacesCompute $supportedFrom: v2.10.0 HDInsight: ResourceId: $referenceType: arm DataFactory: ResourceId: $referenceType: arm DataLakeAnalytics: ResourceId: $referenceType: arm Databricks: ResourceId: $referenceType: arm AKS: ResourceId: $referenceType: arm ComputeInstance: ResourceId: $referenceType: arm SynapseSpark: ResourceId: $referenceType: arm AmlCompute: ResourceId: $referenceType: arm VirtualMachine: ResourceId: $referenceType: arm VirtualMachineImage: Id: $referenceType: arm UserAccountCredentials: AdminUserPassword: $isSecret: true VirtualMachineSshCredentials: Password: $isSecret: true PrivateKeyData: $isSecret: true Workspaces_Connection: $exportAs: WorkspacesConnection $supportedFrom: v2.10.0 AssignedUser: ObjectId: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional KubernetesProperties: ExtensionPrincipalId: $importConfigMapMode: optional PrivateEndpointDestination: SubresourceTarget: $referenceType: arm AKS_Properties: LoadBalancerSubnet: $referenceType: arm DatabricksProperties: DatabricksAccessToken: $isSecret: true WorkspaceConnectionAccessKey: SecretAccessKey: $isSecret: true WorkspaceConnectionApiKey: Key: $isSecret: true CustomKeys: Keys: $isSecret: true WorkspaceConnectionSharedAccessSignature: Sas: $isSecret: true WorkspaceConnectionOAuth2: ClientId: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional WorkspaceConnectionServicePrincipal: ClientId: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional Registry: $export: true $supportedFrom: v2.10.0 $generatedConfigs: DiscoveryUrl: $.Status.DiscoveryUrl MlFlowRegistryUri: $.Status.MlFlowRegistryUri PrivateEndpointResource: SubnetArmId: $referenceType: arm ArmResourceId: ResourceId: $referenceType: arm RegistryPrivateEndpointConnection: Id: $referenceType: arm monitor: 2023-04-03: Account: $export: true $supportedFrom: v2.8.0 network: 2018-05-01: DnsZone: $export: true $supportedFrom: v2.1.0 DnsZones_A: $exportAs: DnsZonesARecord $supportedFrom: v2.1.0 DnsZones_AAAA: $exportAs: DnsZonesAAAARecord $supportedFrom: v2.1.0 DnsZones_CAA: $exportAs: DnsZonesCAARecord $supportedFrom: v2.1.0 DnsZones_CNAME: $exportAs: DnsZonesCNAMERecord $supportedFrom: v2.1.0 DnsZones_MX: $exportAs: DnsZonesMXRecord $supportedFrom: v2.1.0 DnsZones_NS: $exportAs: DnsZonesNSRecord $supportedFrom: v2.1.0 DnsZones_SRV: $exportAs: DnsZonesSRVRecord $supportedFrom: v2.1.0 DnsZones_PTR: $exportAs: DnsZonesPTRRecord $supportedFrom: v2.1.0 DnsZones_TXT: $exportAs: DnsZonesTXTRecord $supportedFrom: v2.1.0 SubResource: Id: $referenceType: arm 2018-09-01: PrivateDnsZone: $export: true $supportedFrom: v2.0.0-beta.2 2020-06-01: PrivateDnsZones_VirtualNetworkLink: $exportAs: PrivateDnsZonesVirtualNetworkLink $supportedFrom: v2.0.0 PrivateDnsZones_A: $exportAs: PrivateDnsZonesARecord $supportedFrom: v2.0.0 PrivateDnsZones_AAAA: $exportAs: PrivateDnsZonesAAAARecord $supportedFrom: v2.0.0 PrivateDnsZones_CNAME: $exportAs: PrivateDnsZonesCNAMERecord $supportedFrom: v2.0.0 PrivateDnsZones_MX: $exportAs: PrivateDnsZonesMXRecord $supportedFrom: v2.0.0 PrivateDnsZones_SRV: $exportAs: PrivateDnsZonesSRVRecord $supportedFrom: v2.0.0 PrivateDnsZones_PTR: $exportAs: PrivateDnsZonesPTRRecord $supportedFrom: v2.0.0 PrivateDnsZones_TXT: $exportAs: PrivateDnsZonesTXTRecord $supportedFrom: v2.0.0 2020-11-01: BackendAddressPool: # TODO[breaking]: This is actually a real resource that can be created as a child of a loadbalancer, # but we didn't model it that way initially, so marking it as not a resource for now to maintain backcompat $resourceEmbeddedInParent: LoadBalancer BackendAddressPool_STATUS: $resourceEmbeddedInParent: LoadBalancer Delegation: $isResource: false #$resourceEmbeddedInParent: VirtualNetworks_Subnet Delegation_STATUS: $isResource: false #$resourceEmbeddedInParent: VirtualNetworks_Subnet FrontendIPConfiguration: $resourceEmbeddedInParent: LoadBalancer # Can GET (has ID) but can't create FrontendIPConfiguration_STATUS: $resourceEmbeddedInParent: LoadBalancer LoadBalancers_InboundNatRule: # TODO: There must always be a parent and child in the same API version. See https://github.com/Azure/azure-service-operator/issues/3002 $exportAs: LoadBalancersInboundNatRule $supportedFrom: v2.1.0 InboundNatRule: # TODO[breaking]: This is actually a real resource that can be created as a child of a loadbalancer, # but we didn't model it that way initially, so marking it as not a resource for now to maintain backcompat $resourceEmbeddedInParent: LoadBalancer InboundNatRule_STATUS: $resourceEmbeddedInParent: LoadBalancer InboundNatPool: $resourceEmbeddedInParent: LoadBalancer # This is not a real resource InboundNatPool_STATUS: $resourceEmbeddedInParent: LoadBalancer LoadBalancer: $export: true $supportedFrom: v2.0.0-alpha.1 LoadBalancingRule: $resourceEmbeddedInParent: LoadBalancer # This is not a real resource, can GET but can't PUT LoadBalancingRule_STATUS: $resourceEmbeddedInParent: LoadBalancer NetworkInterface: $export: true $supportedFrom: v2.0.0-alpha.3 NetworkInterfaceIPConfiguration: $resourceEmbeddedInParent: NetworkInterface # Not a real resource, can GET but not PUT NetworkInterfaceIPConfiguration_STATUS: $resourceEmbeddedInParent: NetworkInterface NetworkSecurityGroup: $export: true $supportedFrom: v2.0.0-alpha.1 NetworkSecurityGroups_SecurityRule: $exportAs: NetworkSecurityGroupsSecurityRule $supportedFrom: v2.0.0-alpha.1 NetworkSecurityGroupPropertiesFormat: SecurityRules: $resourceLifecycleOwnedByParent: NetworkSecurityGroup OutboundRule: $resourceEmbeddedInParent: LoadBalancer # Not a real resource, can GET but not PUT OutboundRule_STATUS: $resourceEmbeddedInParent: LoadBalancer Probe: $resourceEmbeddedInParent: LoadBalancer # Not a real resource, can GET but not PUT Probe_STATUS: $resourceEmbeddedInParent: LoadBalancer PublicIPAddress: $exportAs: PublicIPAddress $supportedFrom: v2.0.0-alpha.1 RouteTable: $export: true $supportedFrom: v2.0.0-beta.1 RouteTablePropertiesFormat: Routes: $resourceLifecycleOwnedByParent: RouteTable RouteTables_Route: # TODO: There must always be a parent and child in the same API version. See https://github.com/Azure/azure-service-operator/issues/3002 $exportAs: RouteTablesRoute $supportedFrom: v2.0.0-beta.1 # SecurityRule_NetworkInterface_SubResourceEmbedded: # Id: # $referenceType: arm # SecurityRule_VirtualNetworksSubnet_SubResourceEmbedded: # Id: # $referenceType: arm # Subnet_VirtualNetwork_SubResourceEmbedded: # Id: # $referenceType: arm VirtualNetwork: $export: true $supportedFrom: v2.0.0-alpha.1 VirtualNetworkGateway: $export: true $supportedFrom: v2.0.0-alpha.1 VirtualNetworkGatewayPropertiesFormat: VNetExtendedLocationResourceId: $referenceType: arm VirtualNetworkGateway_STATUS: $nameInNextVersion: VirtualNetworkGateway_STATUS_VirtualNetworkGateway_SubResourceEmbedded # TODO: See if we can get rid of this VirtualNetworkGatewayIPConfiguration: $resourceEmbeddedInParent: VirtualNetworkGateway VirtualNetworkGatewayIPConfiguration_STATUS: $resourceEmbeddedInParent: VirtualNetworkGateway VpnClientRevokedCertificate: $resourceEmbeddedInParent: VirtualNetworkGateway VpnClientRevokedCertificate_STATUS: $resourceEmbeddedInParent: VirtualNetworkGateway VpnClientRootCertificate: $resourceEmbeddedInParent: VirtualNetworkGateway VpnClientRootCertificate_STATUS: $resourceEmbeddedInParent: VirtualNetworkGateway VirtualNetworkPropertiesFormat: Subnets: $resourceLifecycleOwnedByParent: VirtualNetwork VirtualNetworkPeerings: # Technically this resource behaves fine (updating the vnet doesn't delete these if they # aren't included in the payload). Marking it here so that the pruning takes effect. $resourceLifecycleOwnedByParent: VirtualNetwork VirtualNetworks_Subnet: # TODO: There must always be a parent and child in the same API version. See https://github.com/Azure/azure-service-operator/issues/3002 $exportAs: VirtualNetworksSubnet $supportedFrom: v2.0.0-alpha.1 VirtualNetworksSubnet_STATUS: IpConfigurations: $description: "An array of references to the network interface IP configurations using subnet. This field is not included if there are more than 2000 entries." VirtualNetworks_VirtualNetworkPeering: $exportAs: VirtualNetworksVirtualNetworkPeering $supportedFrom: v2.0.0-alpha.1 2022-04-01: # Note that this is versioned separately from other networking resources (https://github.com/Azure/azure-rest-api-specs/tree/main/specification/trafficmanager/resource-manager/Microsoft.Network/stable) TrafficManagerProfile: # Hacking around here to use camel case. Normally the resource gets exported as Trafficmanagerprofile $exportAs: TrafficManagerProfile $supportedFrom: v2.4.0 $generatedConfigs: DnsConfigFqdn: $.Status.DnsConfig.Fqdn TrafficManagerProfiles_AzureEndpoint: $exportAs: TrafficManagerProfilesAzureEndpoint $supportedFrom: v2.4.0 TrafficManagerProfiles_ExternalEndpoint: $exportAs: TrafficManagerProfilesExternalEndpoint $supportedFrom: v2.4.0 TrafficManagerProfiles_NestedEndpoint: $exportAs: TrafficManagerProfilesNestedEndpoint $supportedFrom: v2.4.0 EndpointProperties: TargetResourceId: $referenceType: arm 2022-07-01: ApplicationGateway: $export: true $supportedFrom: v2.4.0 ApplicationGatewayBackendAddressPool: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayBackendHttpSettings: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayBackendSettings: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayFrontendIPConfiguration: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayFrontendPort: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayIPConfiguration: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayHttpListener: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayListener: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayLoadDistributionPolicy: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayPrivateLinkConfiguration: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayProbe: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayRedirectConfiguration: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayRequestRoutingRule: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayRewriteRuleSet: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayRoutingRule: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewaySslCertificate: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewaySslCertificatePropertiesFormat: Data: $isSecret: true Password: $isSecret: true ApplicationGatewaySslProfile: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayTrustedClientCertificate: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayTrustedClientCertificatePropertiesFormat: Data: $isSecret: true ApplicationGatewayTrustedRootCertificate: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayTrustedRootCertificatePropertiesFormat: Data: $isSecret: true ApplicationGatewayUrlPathMap: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayAuthenticationCertificate: $resourceEmbeddedInParent: ApplicationGateway ApplicationGatewayAuthenticationCertificatePropertiesFormat: Data: $isSecret: true BastionHost: # This technically supports 2022-09-01 API version too, but it's identical to the 2022-07-01 version # so limiting proliferation of APIVersions and using 2022-07-01 for it $export: true $supportedFrom: v2.1.0 BastionHostIPConfiguration: $resourceEmbeddedInParent: BastionHost # DNSResolver and related resources are versioned differently than main networking resources, see https://github.com/Azure/azure-rest-api-specs/tree/main/specification/dnsresolver/resource-manager/Microsoft.Network DnsResolver: $export: true $supportedFrom: v2.2.0 DnsResolvers_InboundEndpoint: $exportAs: DnsResolversInboundEndpoint $supportedFrom: v2.2.0 DnsResolvers_OutboundEndpoint: $exportAs: DnsResolversOutboundEndpoint $supportedFrom: v2.2.0 DnsForwardingRuleSet: $export: true $supportedFrom: v2.2.0 DnsForwardingRuleSets_ForwardingRule: $exportAs: DnsForwardingRuleSetsForwardingRule $supportedFrom: v2.2.0 DnsForwardingRuleSets_VirtualNetworkLink: $exportAs: DnsForwardingRuleSetsVirtualNetworkLink $supportedFrom: v2.10.0 TargetDnsServer: IpAddress: $importConfigMapMode: optional NatGateway: $export: true $supportedFrom: v2.1.0 PublicIPPrefix: $export: true $supportedFrom: v2.1.0 PrivateEndpoint: $export: true $supportedFrom: v2.0.0 $manualConfigs: - PrimaryNicPrivateIpAddress PrivateLinkService: $export: true $supportedFrom: v2.0.0 $generatedConfigs: Alias: $.Status.Alias PrivateLinkServiceConnection: $resourceEmbeddedInParent: PrivateEndpoint PrivateLinkServiceConnection_STATUS: $resourceEmbeddedInParent: PrivateEndpoint PrivateLinkServiceConnectionProperties: PrivateLinkServiceId: $referenceType: arm PrivateLinkServiceIpConfiguration: $resourceEmbeddedInParent: PrivateLinkService PrivateLinkServiceIpConfiguration_STATUS: $resourceEmbeddedInParent: PrivateLinkService PrivateEndpoints_PrivateDnsZoneGroup: $exportAs: PrivateEndpointsPrivateDnsZoneGroup $supportedFrom: v2.0.0 PrivateDnsZonePropertiesFormat: PrivateDnsZoneId: $referenceType: arm 2024-01-01: ApplicationGatewayWebApplicationFirewallPolicy: $exportAs: WebApplicationFirewallPolicy $supportedFrom: v2.10.0 ApplicationSecurityGroup: $export: true $supportedFrom: v2.10.0 2024-03-01: BastionHost: $export: true $supportedFrom: v2.11.0 BastionHostIPConfiguration: $resourceEmbeddedInParent: BastionHost NatGateway: $export: true $supportedFrom: v2.11.0 PublicIPPrefix: $export: true $supportedFrom: v2.11.0 PrivateEndpoint: $export: true $supportedFrom: v2.11.0 $manualConfigs: - PrimaryNicPrivateIpAddress PrivateLinkService: $export: true $supportedFrom: v2.11.0 $generatedConfigs: Alias: $.Status.Alias PrivateLinkServiceConnection: $resourceEmbeddedInParent: PrivateEndpoint PrivateLinkServiceConnection_STATUS: $resourceEmbeddedInParent: PrivateEndpoint PrivateLinkServiceConnectionProperties: PrivateLinkServiceId: $referenceType: arm PrivateLinkServiceIpConfiguration: $resourceEmbeddedInParent: PrivateLinkService PrivateLinkServiceIpConfiguration_STATUS: $resourceEmbeddedInParent: PrivateLinkService PrivateEndpoints_PrivateDnsZoneGroup: $exportAs: PrivateEndpointsPrivateDnsZoneGroup $supportedFrom: v2.11.0 PrivateDnsZonePropertiesFormat: PrivateDnsZoneId: $referenceType: arm BackendAddressPool: # TODO[breaking]: This is actually a real resource that can be created as a child of a loadbalancer, # but we didn't model it that way initially, so marking it as not a resource for now to maintain backcompat $resourceEmbeddedInParent: LoadBalancer BackendAddressPool_STATUS: $resourceEmbeddedInParent: LoadBalancer Delegation: $isResource: false #$resourceEmbeddedInParent: VirtualNetworks_Subnet Delegation_STATUS: $isResource: false #$resourceEmbeddedInParent: VirtualNetworks_Subnet FrontendIPConfiguration: $resourceEmbeddedInParent: LoadBalancer # Can GET (has ID) but can't create FrontendIPConfiguration_STATUS: $resourceEmbeddedInParent: LoadBalancer LoadBalancers_InboundNatRule: # TODO: There must always be a parent and child in the same API version. See https://github.com/Azure/azure-service-operator/issues/3002 $exportAs: LoadBalancersInboundNatRule $supportedFrom: v2.11.0 InboundNatRule: # TODO[breaking]: This is actually a real resource that can be created as a child of a loadbalancer, # but we didn't model it that way initially, so marking it as not a resource for now to maintain backcompat $resourceEmbeddedInParent: LoadBalancer InboundNatRule_STATUS: $resourceEmbeddedInParent: LoadBalancer InboundNatPool: $resourceEmbeddedInParent: LoadBalancer # This is not a real resource InboundNatPool_STATUS: $resourceEmbeddedInParent: LoadBalancer LoadBalancer: $export: true $supportedFrom: v2.11.0 LoadBalancingRule: $resourceEmbeddedInParent: LoadBalancer # This is not a real resource, can GET but can't PUT LoadBalancingRule_STATUS: $resourceEmbeddedInParent: LoadBalancer NetworkInterface: $export: true $supportedFrom: v2.11.0 NetworkInterfaceIPConfiguration: $resourceEmbeddedInParent: NetworkInterface # Not a real resource, can GET but not PUT NetworkInterfaceIPConfiguration_STATUS: $resourceEmbeddedInParent: NetworkInterface NetworkSecurityGroup: $export: true $supportedFrom: v2.11.0 NetworkSecurityGroups_SecurityRule: $exportAs: NetworkSecurityGroupsSecurityRule $supportedFrom: v2.11.0 NetworkSecurityGroupPropertiesFormat: SecurityRules: $resourceLifecycleOwnedByParent: NetworkSecurityGroup NetworkSecurityGroupPropertiesFormat_STATUS: FlowLogs: $resourceLifecycleOwnedByParent: NetworkSecurityGroup OutboundRule: $resourceEmbeddedInParent: LoadBalancer # Not a real resource, can GET but not PUT OutboundRule_STATUS: $resourceEmbeddedInParent: LoadBalancer Probe: $resourceEmbeddedInParent: LoadBalancer # Not a real resource, can GET but not PUT Probe_STATUS: $resourceEmbeddedInParent: LoadBalancer PublicIPAddress: $exportAs: PublicIPAddress $supportedFrom: v2.11.0 RouteTable: $export: true $supportedFrom: v2.11.0 RouteTablePropertiesFormat: Routes: $resourceLifecycleOwnedByParent: RouteTable RouteTables_Route: # TODO: There must always be a parent and child in the same API version. See https://github.com/Azure/azure-service-operator/issues/3002 $exportAs: RouteTablesRoute $supportedFrom: v2.11.0 VirtualNetwork: $export: true $supportedFrom: v2.11.0 VirtualNetworkGateway: $export: true $supportedFrom: v2.11.0 VirtualNetworkGatewayPropertiesFormat: VNetExtendedLocationResourceId: $referenceType: arm VirtualNetworkGatewayIPConfiguration: $resourceEmbeddedInParent: VirtualNetworkGateway VirtualNetworkGatewayIPConfiguration_STATUS: $resourceEmbeddedInParent: VirtualNetworkGateway VpnClientRevokedCertificate: $resourceEmbeddedInParent: VirtualNetworkGateway VpnClientRevokedCertificate_STATUS: $resourceEmbeddedInParent: VirtualNetworkGateway VpnClientRootCertificate: $resourceEmbeddedInParent: VirtualNetworkGateway VpnClientRootCertificate_STATUS: $resourceEmbeddedInParent: VirtualNetworkGateway VirtualNetworkGatewayNatRule: # TODO: New resource, should add? $resourceEmbeddedInParent: VirtualNetworkGateway VirtualNetworkGatewayNatRule_STATUS: $resourceEmbeddedInParent: VirtualNetworkGateway VirtualNetworkGatewayPolicyGroup: # TODO: New resource, should add? $resourceEmbeddedInParent: VirtualNetworkGateway VirtualNetworkGatewayPolicyGroup_STATUS: $resourceEmbeddedInParent: VirtualNetworkGateway VirtualNetworkPropertiesFormat: Subnets: $resourceLifecycleOwnedByParent: VirtualNetwork VirtualNetworkPeerings: # Technically this resource behaves fine (updating the vnet doesn't delete these if they # aren't included in the payload). Marking it here so that the pruning takes effect. $resourceLifecycleOwnedByParent: VirtualNetwork VirtualNetworks_Subnet: # TODO: There must always be a parent and child in the same API version. See https://github.com/Azure/azure-service-operator/issues/3002 $exportAs: VirtualNetworksSubnet $supportedFrom: v2.11.0 VirtualNetworksSubnet_STATUS: IpConfigurations: $description: "An array of references to the network interface IP configurations using subnet. This field is not included if there are more than 2000 entries." VirtualNetworks_VirtualNetworkPeering: $exportAs: VirtualNetworksVirtualNetworkPeering $supportedFrom: v2.11.0 2024-06-01: # Private DNS Zone + related -- this is versioned separately than most of the rest of Microsoft.Network (https://github.com/Azure/azure-rest-api-specs/tree/main/specification/privatedns/resource-manager/Microsoft.Network/stable) PrivateDnsZone: $export: true $supportedFrom: v2.11.0 PrivateDnsZones_VirtualNetworkLink: $exportAs: PrivateDnsZonesVirtualNetworkLink $supportedFrom: v2.11.0 PrivateDnsZones_A: $exportAs: PrivateDnsZonesARecord $supportedFrom: v2.11.0 PrivateDnsZones_AAAA: $exportAs: PrivateDnsZonesAAAARecord $supportedFrom: v2.11.0 PrivateDnsZones_CNAME: $exportAs: PrivateDnsZonesCNAMERecord $supportedFrom: v2.11.0 PrivateDnsZones_MX: $exportAs: PrivateDnsZonesMXRecord $supportedFrom: v2.11.0 PrivateDnsZones_SRV: $exportAs: PrivateDnsZonesSRVRecord $supportedFrom: v2.11.0 PrivateDnsZones_PTR: $exportAs: PrivateDnsZonesPTRRecord $supportedFrom: v2.11.0 PrivateDnsZones_TXT: $exportAs: PrivateDnsZonesTXTRecord $supportedFrom: v2.11.0 network.frontdoor: 2022-05-01: FrontDoorWebApplicationFirewallPolicy: $exportAs: WebApplicationFirewallPolicy $supportedFrom: v2.6.0 notificationhubs: 2023-09-01: Namespace: $export: true $supportedFrom: v2.12.0 $azureGeneratedSecrets: - PrimaryConnectionString - SecondaryConnectionString - PrimaryKey - SecondaryKey $generatedConfigs: ServiceBusEndpoint: $.Status.Properties.ServiceBusEndpoint Namespaces_AuthorizationRule: $exportAs: NamespacesAuthorizationRule $supportedFrom: v2.12.0 Namespaces_NotificationHub: $exportAs: NotificationHub $supportedFrom: v2.12.0 $azureGeneratedSecrets: - PrimaryConnectionString - SecondaryConnectionString - PrimaryKey - SecondaryKey Namespaces_NotificationHubs_AuthorizationRule: $exportAs: NotificationHubsAuthorizationRule $supportedFrom: v2.12.0 NotificationHubProperties: AuthorizationRules: $isSecret: false operationalinsights: 2021-06-01: Workspace: $export: true $supportedFrom: v2.0.0-alpha.4 WorkspaceFeatures: ClusterResourceId: $referenceType: arm resources: 2020-06-01: ResourceGroup: $export: true $supportedFrom: v2.0.0-alpha.1 redhatopenshift: 2023-11-22: OpenShiftCluster: $export: true $supportedFrom: v2.9.0 $azureGeneratedSecrets: - AdminCredentials - Username - Password WorkerProfile: SubnetId: $referenceType: arm DiskEncryptionSetId: $referenceType: arm MasterProfile: SubnetId: $referenceType: arm DiskEncryptionSetId: $referenceType: arm ClusterProfile: PullSecret: $isSecret: true ServicePrincipalProfile: ClientSecret: $isSecret: true ClientId: $importConfigMapMode: optional search: 2022-09-01: SearchService: $export: true $supportedFrom: v2.1.0 $azureGeneratedSecrets: - AdminPrimaryKey - AdminSecondaryKey - QueryKey servicebus: 2021-01-01-preview: DictionaryValue_STATUS: $nameInNextVersion: UserAssignedIdentity_STATUS Namespace: $export: true $supportedFrom: v2.0.0-alpha.1 $azureGeneratedSecrets: - Endpoint - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString Namespaces_AuthorizationRule: $exportAs: NamespacesAuthorizationRule $supportedFrom: v2.1.0 $azureGeneratedSecrets: - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString Namespaces_Queue: $exportAs: NamespacesQueue $supportedFrom: v2.0.0-alpha.1 Namespaces_Topic: $exportAs: NamespacesTopic $supportedFrom: v2.0.0-alpha.1 UserAssignedIdentityProperties: UserAssignedIdentity: $referenceType: arm Namespaces_Topics_Subscription: $exportAs: NamespacesTopicsSubscription $supportedFrom: v2.0.0-beta.3 Namespaces_Topics_Subscriptions_Rule: $exportAs: NamespacesTopicsSubscriptionsRule $supportedFrom: v2.0.0-beta.3 2021-11-01: Namespace: $export: true $supportedFrom: v2.3.0 $azureGeneratedSecrets: - Endpoint - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString Namespaces_AuthorizationRule: $exportAs: NamespacesAuthorizationRule $supportedFrom: v2.3.0 $azureGeneratedSecrets: - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString Namespaces_Queue: $exportAs: NamespacesQueue $supportedFrom: v2.3.0 Namespaces_Topic: $exportAs: NamespacesTopic $supportedFrom: v2.3.0 UserAssignedIdentityProperties: UserAssignedIdentity: $referenceType: arm Namespaces_Topics_Subscription: $exportAs: NamespacesTopicsSubscription $supportedFrom: v2.3.0 Namespaces_Topics_Subscriptions_Rule: $exportAs: NamespacesTopicsSubscriptionsRule $supportedFrom: v2.3.0 2022-10-01-preview: Namespace: $export: true $supportedFrom: v2.3.0 $azureGeneratedSecrets: - Endpoint - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString Namespaces_AuthorizationRule: $exportAs: NamespacesAuthorizationRule $supportedFrom: v2.3.0 $azureGeneratedSecrets: - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString Namespaces_Queue: $exportAs: NamespacesQueue $supportedFrom: v2.3.0 Namespaces_Topic: $exportAs: NamespacesTopic $supportedFrom: v2.3.0 UserAssignedIdentityProperties: UserAssignedIdentity: $referenceType: arm Namespaces_Topics_Subscription: $exportAs: NamespacesTopicsSubscription $supportedFrom: v2.3.0 Namespaces_Topics_Subscriptions_Rule: $exportAs: NamespacesTopicsSubscriptionsRule $supportedFrom: v2.3.0 2024-01-01: Namespace: $export: true $supportedFrom: v2.12.0 $azureGeneratedSecrets: - Endpoint - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString Namespaces_AuthorizationRule: $exportAs: NamespacesAuthorizationRule $supportedFrom: v2.12.0 $azureGeneratedSecrets: - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString Namespaces_Queue: $exportAs: NamespacesQueue $supportedFrom: v2.12.0 Namespaces_Topic: $exportAs: NamespacesTopic $supportedFrom: v2.12.0 UserAssignedIdentityProperties: UserAssignedIdentity: $referenceType: arm Namespaces_Topics_Subscription: $exportAs: NamespacesTopicsSubscription $supportedFrom: v2.12.0 Namespaces_Topics_Subscriptions_Rule: $exportAs: NamespacesTopicsSubscriptionsRule $supportedFrom: v2.12.0 Namespaces_Topics_AuthorizationRule: $exportAs: TopicAuthorizationRule $supportedFrom: v2.13.0 Namespaces_Topics_AuthorizationRule_Properties_Rights_Spec: $renameTo: TopicAuthorizationRuleRights_Spec Namespaces_Topics_AuthorizationRule_Properties_Rights_STATUS: $renameTo: TopicAuthorizationRuleRights_STATUS signalrservice: 2021-10-01: SignalR: $export: true $supportedFrom: v2.0.0-alpha.4 $azureGeneratedSecrets: - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString 2024-03-01: SignalR: $export: true $supportedFrom: v2.12.0 $azureGeneratedSecrets: - PrimaryKey - PrimaryConnectionString - SecondaryKey - SecondaryConnectionString SignalR_Replica: $exportAs: Replica $supportedFrom: v2.12.0 SignalR_CustomDomain: $exportAs: CustomDomain $supportedFrom: v2.12.0 SignalR_CustomCertificate: $exportAs: CustomCertificate $supportedFrom: v2.12.0 CustomCertificateProperties: KeyVaultBaseURI: $importConfigMapMode: optional ResourceReference: Id: $referenceType: arm sql: v1: # Handcrafted User: $supportedFrom: v2.0.0 2021-11-01: # Note that there are a few commented out resources which we are not exporting for sql. They're commented out as # they seem of questionable value to users, but if we get an ask for them we can add them in. Server: $export: true $supportedFrom: v2.0.0 $generatedConfigs: FullyQualifiedDomainName: $.Status.FullyQualifiedDomainName Servers_Administrator: $exportAs: ServersAdministrator $supportedFrom: v2.0.0 AdministratorProperties: Sid: $importConfigMapMode: optional TenantId: $importConfigMapMode: optional Servers_SecurityAlertPolicy: $exportAs: ServersSecurityAlertPolicy $supportedFrom: v2.0.0 Servers_AdvancedThreatProtectionSetting: $exportAs: ServersAdvancedThreatProtectionSetting $supportedFrom: v2.0.0 Servers_AuditingSetting: $exportAs: ServersAuditingSetting $supportedFrom: v2.0.0 Servers_AzureADOnlyAuthentication: $exportAs: ServersAzureADOnlyAuthentication $supportedFrom: v2.0.0 Servers_ConnectionPolicy: $exportAs: ServersConnectionPolicy $supportedFrom: v2.0.0 # Servers_DnsAliase: # TODO: Not sure how this works - it has no properties but name? # $exportAs: ServersDnsAliases # $supportedFrom: v2.0.0 Servers_ElasticPool: $exportAs: ServersElasticPool $supportedFrom: v2.0.0 Servers_FailoverGroup: $exportAs: ServersFailoverGroup $supportedFrom: v2.0.0 Servers_FirewallRule: $exportAs: ServersFirewallRule $supportedFrom: v2.0.0 Servers_Ipv6FirewallRule: $exportAs: ServersIPV6FirewallRule $supportedFrom: v2.0.0 # Servers_JobAgent: # $exportAs: ServersJobAgent # $supportedFrom: v2.0.0 Servers_OutboundFirewallRule: $exportAs: ServersOutboundFirewallRule $supportedFrom: v2.0.0 # Servers_SyncAgent: # $exportAs: ServersSyncAgent # $supportedFrom: v2.0.0 Servers_VirtualNetworkRule: $exportAs: ServersVirtualNetworkRule $supportedFrom: v2.0.0 Servers_VulnerabilityAssessment: $exportAs: ServersVulnerabilityAssessment $supportedFrom: v2.0.0 ServerVulnerabilityAssessmentProperties: StorageContainerPath: $importConfigMapMode: optional Servers_Database: $exportAs: ServersDatabase $supportedFrom: v2.0.0 Servers_Databases_BackupLongTermRetentionPolicy: $exportAs: ServersDatabasesBackupLongTermRetentionPolicy $supportedFrom: v2.0.0 Servers_Databases_BackupShortTermRetentionPolicy: $exportAs: ServersDatabasesBackupShortTermRetentionPolicy $supportedFrom: v2.0.0 Servers_Databases_AdvancedThreatProtectionSetting: $exportAs: ServersDatabasesAdvancedThreatProtectionSetting $supportedFrom: v2.0.0 Servers_Databases_AuditingSetting: $exportAs: ServersDatabasesAuditingSetting $supportedFrom: v2.0.0 # Servers_Databases_DataMaskingPolicy: # there's also a "Rules" subresource here # $exportAs: ServersDatabasesDataMaskingPolicy # $supportedFrom: v2.0.0 # Servers_Databases_ExtendedAuditingSetting: # TODO: Not sure what the difference is between this and the normal auditing setting # $exportAs: ServersDatabasesExtendedAuditingSetting # $supportedFrom: v2.0.0 # Servers_Databases_GeoBackupPolicy: # TODO: Not actually supported in ARM at the moment # $exportAs: ServersDatabasesGeoBackupPolicy # $supportedFrom: v2.0.0 # Servers_Databases_MaintenanceWindow: # TODO: Seems to have name Servers_Databases_MaintenanceWindows_Current, not sure why # $exportAs: ServersDatabasesMaintenanceWindow # $supportedFrom: v2.0.0 Servers_Databases_SecurityAlertPolicy: $exportAs: ServersDatabasesSecurityAlertPolicy $supportedFrom: v2.0.0 # Servers_Databases_SyncGroup: # $exportAs: ServersDatabasesSyncGroups # $supportedFrom: v2.0.0 # Servers_Databases_SyncGroups_SyncMember: # $exportAs: ServersDatabasesSyncGroupsSyncMember # $supportedFrom: v2.0.0 Servers_Databases_TransparentDataEncryption: $exportAs: ServersDatabasesTransparentDataEncryption $supportedFrom: v2.0.0 Servers_Databases_VulnerabilityAssessment: $exportAs: ServersDatabasesVulnerabilityAssessment $supportedFrom: v2.0.0 DatabaseVulnerabilityAssessmentsDatabaseVulnerabilityAssessmentProperties: StorageContainerPath: $importConfigMapMode: optional # Servers_Databases_WorkloadGroup: # $exportAs: ServersDatabasesWorkloadGroup # $supportedFrom: v2.0.0 # Servers_Databases_WorkloadGroups_WorkloadClassifier: # $exportAs: ServersDatabasesWorkloadGroupsWorkloadClassifier # $supportedFrom: v2.0.0 storage: $payloadType: explicitCollections 2021-04-01: EncryptionIdentity: UserAssignedIdentity: $referenceType: arm ResourceAccessRule: ResourceId: $referenceType: arm StorageAccount: $export: true $supportedFrom: v2.0.0-alpha.1 $azureGeneratedSecrets: - Key1 - Key2 - WebEndpoint - BlobEndpoint - FileEndpoint - QueueEndpoint - TableEndpoint - DfsEndpoint $generatedConfigs: WebEndpoint: $.Status.PrimaryEndpoints.Web BlobEndpoint: $.Status.PrimaryEndpoints.Blob FileEndpoint: $.Status.PrimaryEndpoints.File QueueEndpoint: $.Status.PrimaryEndpoints.Queue TableEndpoint: $.Status.PrimaryEndpoints.Table DfsEndpoint: $.Status.PrimaryEndpoints.Dfs StorageAccounts_BlobService: $exportAs: StorageAccountsBlobService $supportedFrom: v2.0.0-alpha.1 StorageAccounts_BlobServices_Container: $exportAs: StorageAccountsBlobServicesContainer $supportedFrom: v2.0.0-alpha.1 StorageAccounts_QueueService: $exportAs: StorageAccountsQueueService $supportedFrom: v2.0.0-alpha.5 StorageAccounts_QueueServices_Queue: $exportAs: StorageAccountsQueueServicesQueue $supportedFrom: v2.0.0-alpha.5 StorageAccounts_ManagementPolicy: $exportAs: StorageAccountsManagementPolicy $supportedFrom: v2.0.0-alpha.6 VirtualNetworkRule: Id: $referenceType: arm 2022-09-01: StorageAccount: $export: true $supportedFrom: v2.1.0 $azureGeneratedSecrets: - Key1 - Key2 - WebEndpoint - BlobEndpoint - FileEndpoint - QueueEndpoint - TableEndpoint - DfsEndpoint $generatedConfigs: WebEndpoint: $.Status.PrimaryEndpoints.Web BlobEndpoint: $.Status.PrimaryEndpoints.Blob FileEndpoint: $.Status.PrimaryEndpoints.File QueueEndpoint: $.Status.PrimaryEndpoints.Queue TableEndpoint: $.Status.PrimaryEndpoints.Table DfsEndpoint: $.Status.PrimaryEndpoints.Dfs StorageAccounts_BlobService: $exportAs: StorageAccountsBlobService $supportedFrom: v2.1.0 StorageAccounts_BlobServices_Container: $exportAs: StorageAccountsBlobServicesContainer $supportedFrom: v2.1.0 StorageAccounts_QueueService: $exportAs: StorageAccountsQueueService $supportedFrom: v2.1.0 StorageAccounts_QueueServices_Queue: $exportAs: StorageAccountsQueueServicesQueue $supportedFrom: v2.1.0 StorageAccounts_ManagementPolicy: $exportAs: StorageAccountsManagementPolicy $supportedFrom: v2.1.0 VirtualNetworkRule: Id: $referenceType: arm EncryptionIdentity: UserAssignedIdentity: $referenceType: arm ResourceAccessRule: ResourceId: $referenceType: arm StorageAccounts_TableService: $exportAs: StorageAccountsTableService $supportedFrom: v2.1.0 StorageAccounts_TableServices_Table: $exportAs: StorageAccountsTableServicesTable $supportedFrom: v2.1.0 TableSignedIdentifier: Id: $referenceType: arm StorageAccounts_FileService: $exportAs: StorageAccountsFileService $supportedFrom: v2.1.0 StorageAccounts_FileServices_Share: $exportAs: StorageAccountsFileServicesShare $supportedFrom: v2.1.0 SignedIdentifier: Id: $referenceType: arm 2023-01-01: StorageAccount: $export: true $supportedFrom: v2.5.0 $azureGeneratedSecrets: - Key1 - Key2 - WebEndpoint - BlobEndpoint - FileEndpoint - QueueEndpoint - TableEndpoint - DfsEndpoint $generatedConfigs: WebEndpoint: $.Status.PrimaryEndpoints.Web BlobEndpoint: $.Status.PrimaryEndpoints.Blob FileEndpoint: $.Status.PrimaryEndpoints.File QueueEndpoint: $.Status.PrimaryEndpoints.Queue TableEndpoint: $.Status.PrimaryEndpoints.Table DfsEndpoint: $.Status.PrimaryEndpoints.Dfs StorageAccounts_BlobService: $exportAs: StorageAccountsBlobService $supportedFrom: v2.5.0 StorageAccounts_BlobServices_Container: $exportAs: StorageAccountsBlobServicesContainer $supportedFrom: v2.5.0 StorageAccounts_QueueService: $exportAs: StorageAccountsQueueService $supportedFrom: v2.5.0 StorageAccounts_QueueServices_Queue: $exportAs: StorageAccountsQueueServicesQueue $supportedFrom: v2.5.0 StorageAccounts_ManagementPolicy: $exportAs: StorageAccountsManagementPolicy $supportedFrom: v2.5.0 VirtualNetworkRule: Id: $referenceType: arm EncryptionIdentity: UserAssignedIdentity: $referenceType: arm ResourceAccessRule: ResourceId: $referenceType: arm StorageAccounts_TableService: $exportAs: StorageAccountsTableService $supportedFrom: v2.5.0 StorageAccounts_TableServices_Table: $exportAs: StorageAccountsTableServicesTable $supportedFrom: v2.5.0 TableSignedIdentifier: Id: $referenceType: arm StorageAccounts_FileService: $exportAs: StorageAccountsFileService $supportedFrom: v2.5.0 StorageAccounts_FileServices_Share: $exportAs: StorageAccountsFileServicesShare $supportedFrom: v2.5.0 SignedIdentifier: Id: $referenceType: arm subscription: 2021-10-01: Alias: $export: true $supportedFrom: v2.0.0-beta.2 synapse: 2021-06-01: KekIdentityProperties: UserAssignedIdentity: $referenceType: arm DataLakeStorageAccountDetails: ResourceId: $referenceType: arm AccountUrl: $importConfigMapMode: optional PurviewConfiguration: PurviewResourceId: $referenceType: arm Workspace: $export: true $supportedFrom: v2.0.0 WorkspaceProperties: SqlAdministratorLoginPassword: $isSecret: true Workspaces_BigDataPool: $export: true $exportAs: WorkspacesBigDataPool $supportedFrom: v2.0.0 web: 2022-03-01: ApiManagementConfig: Id: $referenceType: arm CloningInfo: TrafficManagerProfileId: $referenceType: arm SourceWebAppId: $referenceType: arm HostingEnvironmentProfile: Id: $referenceType: arm IpSecurityRestriction: VnetSubnetResourceId: $referenceType: arm KubeEnvironmentProfile: Id: $referenceType: arm PushSettings: # This actually is a resource I think, but as far as I can tell in the context it's used # here as part of SitesConfig it has to be embedded as there is no writable ID field $isResource: false PushSettings_STATUS: $isResource: false ServerFarm: $exportAs: ServerFarm $supportedFrom: v2.0.0-beta.3 Site: $export: true $supportedFrom: v2.0.0-beta.3 Site_Properties_Spec: ServerFarmId: $referenceType: arm VirtualNetworkSubnetId: $referenceType: arm Sites_Sourcecontrol: $exportAs: SitesSourcecontrol $supportedFrom: v2.12.0