Metadata pertaining to creation and last modification of the resource.
Metadata pertaining to creation and last modification of the resource.
@@ -26731,6 +27024,237 @@ SystemData_LastModifiedByType_STATUS
+
TrustedAccessRoleBinding
+
+
+
Generator information:
+- Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2023-02-02-preview/managedClusters.json
+- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/trustedAccessRoleBindings/{trustedAccessRoleBindingName}p>
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+
+
+
+spec
+
+
+ManagedClusters_TrustedAccessRoleBinding_Spec
+
+
+ |
+
+
+
+
+
+
+azureName
+
+string
+
+ |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
+doesn’t have to be.
+ |
+
+
+
+owner
+
+
+genruntime.KnownResourceReference
+
+
+ |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
+controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
+reference to a containerservice.azure.com/ManagedCluster resource
+ |
+
+
+
+roles
+
+[]string
+
+ |
+
+ Roles: A list of roles to bind, each item is a resource type qualified role name. For example:
+‘Microsoft.MachineLearningServices/workspaces/reader’.
+ |
+
+
+
+sourceResourceReference
+
+
+genruntime.ResourceReference
+
+
+ |
+
+ SourceResourceReference: The ARM resource ID of source resource that trusted access is configured for.
+ |
+
+
+ |
+
+
+
+status
+
+
+ManagedClusters_TrustedAccessRoleBinding_STATUS
+
+
+ |
+
+ |
+
+
+
+
TrustedAccessRoleBindingProperties_ARM
+
+
+(Appears on:ManagedClusters_TrustedAccessRoleBinding_Spec_ARM)
+
+
+
Properties for trusted access role binding
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+roles
+
+[]string
+
+ |
+
+ Roles: A list of roles to bind, each item is a resource type qualified role name. For example:
+‘Microsoft.MachineLearningServices/workspaces/reader’.
+ |
+
+
+
+sourceResourceId
+
+string
+
+ |
+
+ |
+
+
+
+
TrustedAccessRoleBindingProperties_ProvisioningState_STATUS
+(string
alias)
+
+(Appears on:ManagedClusters_TrustedAccessRoleBinding_STATUS, TrustedAccessRoleBindingProperties_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Canceled" |
+ |
+
"Deleting" |
+ |
+
"Failed" |
+ |
+
"Succeeded" |
+ |
+
"Updating" |
+ |
+
+
+
TrustedAccessRoleBindingProperties_STATUS_ARM
+
+
+(Appears on:ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM)
+
+
+
Properties for trusted access role binding
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+provisioningState
+
+
+TrustedAccessRoleBindingProperties_ProvisioningState_STATUS
+
+
+ |
+
+ ProvisioningState: The current provisioning state of trusted access role binding.
+ |
+
+
+
+roles
+
+[]string
+
+ |
+
+ Roles: A list of roles to bind, each item is a resource type qualified role name. For example:
+‘Microsoft.MachineLearningServices/workspaces/reader’.
+ |
+
+
+
+sourceResourceId
+
+string
+
+ |
+
+ SourceResourceId: The ARM resource ID of source resource that trusted access is configured for.
+ |
+
+
+
UpgradeOverrideSettings
diff --git a/docs/hugo/content/reference/dataprotection/_index.md b/docs/hugo/content/reference/dataprotection/_index.md
index 61be6f2ffd..6cc0375b3e 100644
--- a/docs/hugo/content/reference/dataprotection/_index.md
+++ b/docs/hugo/content/reference/dataprotection/_index.md
@@ -8,8 +8,8 @@ no_list: true
Development of these new resources is complete and they will be available in the next release of ASO.
-| Resource | ARM Version | CRD Version | Supported From | Sample |
-|--------------------------|-------------|---------------|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
-| BackupVault | 2023-01-01 | v1api20230101 | v2.2.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/dataprotection/v1api/v1api20230101_backupvault.yaml) |
-| BackupVaultsBackupPolicy | 2023-01-01 | v1api20230101 | v2.2.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/dataprotection/v1api/v1api20230101_backupvaultsbackuppolicy.yaml) |
+| Resource | ARM Version | CRD Version | Supported From | Sample |
+|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------|---------------|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
+| [BackupVault](https://azure.github.io/azure-service-operator/reference/dataprotection/v1api20230101/#dataprotection.azure.com/v1api20230101.BackupVault) | 2023-01-01 | v1api20230101 | v2.2.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/dataprotection/v1api/v1api20230101_backupvault.yaml) |
+| [BackupVaultsBackupPolicy](https://azure.github.io/azure-service-operator/reference/dataprotection/v1api20230101/#dataprotection.azure.com/v1api20230101.BackupVaultsBackupPolicy) | 2023-01-01 | v1api20230101 | v2.2.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/dataprotection/v1api/v1api20230101_backupvaultsbackuppolicy.yaml) |
diff --git a/docs/hugo/content/reference/dataprotection/v1api20230101.md b/docs/hugo/content/reference/dataprotection/v1api20230101.md
new file mode 100644
index 0000000000..f5398ce1a1
--- /dev/null
+++ b/docs/hugo/content/reference/dataprotection/v1api20230101.md
@@ -0,0 +1,8784 @@
+---
+title: dataprotection.azure.com/v1api20230101
+---
+
dataprotection.azure.com/v1api20230101
+
+
Package v1api20230101 contains API Schema definitions for the dataprotection v1api20230101 API group
+
+Resource Types:
+
+
APIVersion
+(string
alias)
+
+
+
+
+
+Value |
+Description |
+
+
+"2023-01-01" |
+ |
+
+
+
AbsoluteDeleteOption
+
+
+(Appears on:DeleteOption)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+duration
+
+string
+
+ |
+
+ Duration: Duration of deletion after given timespan
+ |
+
+
+
+objectType
+
+
+AbsoluteDeleteOption_ObjectType
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
AbsoluteDeleteOption_ARM
+
+
+(Appears on:DeleteOption_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+duration
+
+string
+
+ |
+
+ Duration: Duration of deletion after given timespan
+ |
+
+
+
+objectType
+
+
+AbsoluteDeleteOption_ObjectType
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
AbsoluteDeleteOption_ObjectType
+(string
alias)
+
+(Appears on:AbsoluteDeleteOption, AbsoluteDeleteOption_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AbsoluteDeleteOption" |
+ |
+
+
+
AbsoluteDeleteOption_ObjectType_STATUS
+(string
alias)
+
+(Appears on:AbsoluteDeleteOption_STATUS, AbsoluteDeleteOption_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AbsoluteDeleteOption" |
+ |
+
+
+
AbsoluteDeleteOption_STATUS
+
+
+(Appears on:DeleteOption_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+duration
+
+string
+
+ |
+
+ Duration: Duration of deletion after given timespan
+ |
+
+
+
+objectType
+
+
+AbsoluteDeleteOption_ObjectType_STATUS
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
AbsoluteDeleteOption_STATUS_ARM
+
+
+(Appears on:DeleteOption_STATUS_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+duration
+
+string
+
+ |
+
+ Duration: Duration of deletion after given timespan
+ |
+
+
+
+objectType
+
+
+AbsoluteDeleteOption_ObjectType_STATUS
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
AdhocBasedTaggingCriteria
+
+
+(Appears on:AdhocBasedTriggerContext)
+
+
+
Adhoc backup tagging criteria
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+tagInfo
+
+
+RetentionTag
+
+
+ |
+
+ TagInfo: Retention tag information
+ |
+
+
+
+
AdhocBasedTaggingCriteria_ARM
+
+
+(Appears on:AdhocBasedTriggerContext_ARM)
+
+
+
Adhoc backup tagging criteria
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+tagInfo
+
+
+RetentionTag_ARM
+
+
+ |
+
+ TagInfo: Retention tag information
+ |
+
+
+
+
AdhocBasedTaggingCriteria_STATUS
+
+
+(Appears on:AdhocBasedTriggerContext_STATUS)
+
+
+
Adhoc backup tagging criteria
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+tagInfo
+
+
+RetentionTag_STATUS
+
+
+ |
+
+ TagInfo: Retention tag information
+ |
+
+
+
+
AdhocBasedTaggingCriteria_STATUS_ARM
+
+
+(Appears on:AdhocBasedTriggerContext_STATUS_ARM)
+
+
+
Adhoc backup tagging criteria
+
+
+
AdhocBasedTriggerContext
+
+
+(Appears on:TriggerContext)
+
+
+
+
+
AdhocBasedTriggerContext_ARM
+
+
+(Appears on:TriggerContext_ARM)
+
+
+
+
+
AdhocBasedTriggerContext_ObjectType
+(string
alias)
+
+(Appears on:AdhocBasedTriggerContext, AdhocBasedTriggerContext_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AdhocBasedTriggerContext" |
+ |
+
+
+
AdhocBasedTriggerContext_ObjectType_STATUS
+(string
alias)
+
+(Appears on:AdhocBasedTriggerContext_STATUS, AdhocBasedTriggerContext_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AdhocBasedTriggerContext" |
+ |
+
+
+
AdhocBasedTriggerContext_STATUS
+
+
+(Appears on:TriggerContext_STATUS)
+
+
+
+
+
AdhocBasedTriggerContext_STATUS_ARM
+
+
+(Appears on:TriggerContext_STATUS_ARM)
+
+
+
+
+
AzureBackupParams
+
+
+(Appears on:BackupParameters)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+backupType
+
+string
+
+ |
+
+ BackupType: BackupType ; Full/Incremental etc
+ |
+
+
+
+objectType
+
+
+AzureBackupParams_ObjectType
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
AzureBackupParams_ARM
+
+
+(Appears on:BackupParameters_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+backupType
+
+string
+
+ |
+
+ BackupType: BackupType ; Full/Incremental etc
+ |
+
+
+
+objectType
+
+
+AzureBackupParams_ObjectType
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
AzureBackupParams_ObjectType
+(string
alias)
+
+(Appears on:AzureBackupParams, AzureBackupParams_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AzureBackupParams" |
+ |
+
+
+
AzureBackupParams_ObjectType_STATUS
+(string
alias)
+
+(Appears on:AzureBackupParams_STATUS, AzureBackupParams_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AzureBackupParams" |
+ |
+
+
+
AzureBackupParams_STATUS
+
+
+(Appears on:BackupParameters_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+backupType
+
+string
+
+ |
+
+ BackupType: BackupType ; Full/Incremental etc
+ |
+
+
+
+objectType
+
+
+AzureBackupParams_ObjectType_STATUS
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
AzureBackupParams_STATUS_ARM
+
+
+(Appears on:BackupParameters_STATUS_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+backupType
+
+string
+
+ |
+
+ BackupType: BackupType ; Full/Incremental etc
+ |
+
+
+
+objectType
+
+
+AzureBackupParams_ObjectType_STATUS
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
AzureBackupRule
+
+
+(Appears on:BasePolicyRule)
+
+
+
+
+
AzureBackupRule_ARM
+
+
+(Appears on:BasePolicyRule_ARM)
+
+
+
+
+
AzureBackupRule_ObjectType
+(string
alias)
+
+(Appears on:AzureBackupRule, AzureBackupRule_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AzureBackupRule" |
+ |
+
+
+
AzureBackupRule_ObjectType_STATUS
+(string
alias)
+
+(Appears on:AzureBackupRule_STATUS, AzureBackupRule_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AzureBackupRule" |
+ |
+
+
+
AzureBackupRule_STATUS
+
+
+(Appears on:BasePolicyRule_STATUS)
+
+
+
+
+
AzureBackupRule_STATUS_ARM
+
+
+(Appears on:BasePolicyRule_STATUS_ARM)
+
+
+
+
+
AzureMonitorAlertSettings
+
+
+(Appears on:MonitoringSettings)
+
+
+
Settings for Azure Monitor based alerts
+
+
+
AzureMonitorAlertSettings_ARM
+
+
+(Appears on:MonitoringSettings_ARM)
+
+
+
Settings for Azure Monitor based alerts
+
+
+
AzureMonitorAlertSettings_AlertsForAllJobFailures
+(string
alias)
+
+(Appears on:AzureMonitorAlertSettings, AzureMonitorAlertSettings_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Disabled" |
+ |
+
"Enabled" |
+ |
+
+
+
AzureMonitorAlertSettings_AlertsForAllJobFailures_STATUS
+(string
alias)
+
+(Appears on:AzureMonitorAlertSettings_STATUS, AzureMonitorAlertSettings_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Disabled" |
+ |
+
"Enabled" |
+ |
+
+
+
AzureMonitorAlertSettings_STATUS
+
+
+(Appears on:MonitoringSettings_STATUS)
+
+
+
Settings for Azure Monitor based alerts
+
+
+
AzureMonitorAlertSettings_STATUS_ARM
+
+
+(Appears on:MonitoringSettings_STATUS_ARM)
+
+
+
Settings for Azure Monitor based alerts
+
+
+
AzureRetentionRule
+
+
+(Appears on:BasePolicyRule)
+
+
+
+
+
AzureRetentionRule_ARM
+
+
+(Appears on:BasePolicyRule_ARM)
+
+
+
+
+
AzureRetentionRule_ObjectType
+(string
alias)
+
+(Appears on:AzureRetentionRule, AzureRetentionRule_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AzureRetentionRule" |
+ |
+
+
+
AzureRetentionRule_ObjectType_STATUS
+(string
alias)
+
+(Appears on:AzureRetentionRule_STATUS, AzureRetentionRule_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AzureRetentionRule" |
+ |
+
+
+
AzureRetentionRule_STATUS
+
+
+(Appears on:BasePolicyRule_STATUS)
+
+
+
+
+
AzureRetentionRule_STATUS_ARM
+
+
+(Appears on:BasePolicyRule_STATUS_ARM)
+
+
+
+
+
BackupCriteria
+
+
+(Appears on:TaggingCriteria)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+scheduleBasedBackupCriteria
+
+
+ScheduleBasedBackupCriteria
+
+
+ |
+
+ ScheduleBasedBackupCriteria: Mutually exclusive with all other properties
+ |
+
+
+
+
BackupCriteria_ARM
+
+
+(Appears on:TaggingCriteria_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+scheduleBasedBackupCriteria
+
+
+ScheduleBasedBackupCriteria_ARM
+
+
+ |
+
+ ScheduleBasedBackupCriteria: Mutually exclusive with all other properties
+ |
+
+
+
+
BackupCriteria_STATUS
+
+
+(Appears on:TaggingCriteria_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+scheduleBasedBackupCriteria
+
+
+ScheduleBasedBackupCriteria_STATUS
+
+
+ |
+
+ ScheduleBasedBackupCriteria: Mutually exclusive with all other properties
+ |
+
+
+
+
BackupCriteria_STATUS_ARM
+
+
+(Appears on:TaggingCriteria_STATUS_ARM)
+
+
+
+
+
BackupParameters
+
+
+(Appears on:AzureBackupRule)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureBackupParams
+
+
+AzureBackupParams
+
+
+ |
+
+ AzureBackupParams: Mutually exclusive with all other properties
+ |
+
+
+
+
BackupParameters_ARM
+
+
+(Appears on:AzureBackupRule_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureBackupParams
+
+
+AzureBackupParams_ARM
+
+
+ |
+
+ AzureBackupParams: Mutually exclusive with all other properties
+ |
+
+
+
+
BackupParameters_STATUS
+
+
+(Appears on:AzureBackupRule_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureBackupParams
+
+
+AzureBackupParams_STATUS
+
+
+ |
+
+ AzureBackupParams: Mutually exclusive with all other properties
+ |
+
+
+
+
BackupParameters_STATUS_ARM
+
+
+(Appears on:AzureBackupRule_STATUS_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureBackupParams
+
+
+AzureBackupParams_STATUS_ARM
+
+
+ |
+
+ AzureBackupParams: Mutually exclusive with all other properties
+ |
+
+
+
+
BackupPolicy
+
+
+(Appears on:BaseBackupPolicy)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+datasourceTypes
+
+[]string
+
+ |
+
+ DatasourceTypes: Type of datasource for the backup management
+ |
+
+
+
+objectType
+
+
+BackupPolicy_ObjectType
+
+
+ |
+
+ |
+
+
+
+policyRules
+
+
+[]BasePolicyRule
+
+
+ |
+
+ PolicyRules: Policy rule dictionary that contains rules for each backuptype i.e Full/Incremental/Logs etc
+ |
+
+
+
+
BackupPolicy_ARM
+
+
+(Appears on:BaseBackupPolicy_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+datasourceTypes
+
+[]string
+
+ |
+
+ DatasourceTypes: Type of datasource for the backup management
+ |
+
+
+
+objectType
+
+
+BackupPolicy_ObjectType
+
+
+ |
+
+ |
+
+
+
+policyRules
+
+
+[]BasePolicyRule_ARM
+
+
+ |
+
+ PolicyRules: Policy rule dictionary that contains rules for each backuptype i.e Full/Incremental/Logs etc
+ |
+
+
+
+
BackupPolicy_ObjectType
+(string
alias)
+
+(Appears on:BackupPolicy, BackupPolicy_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"BackupPolicy" |
+ |
+
+
+
BackupPolicy_ObjectType_STATUS
+(string
alias)
+
+(Appears on:BackupPolicy_STATUS, BackupPolicy_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"BackupPolicy" |
+ |
+
+
+
BackupPolicy_STATUS
+
+
+(Appears on:BaseBackupPolicy_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+datasourceTypes
+
+[]string
+
+ |
+
+ DatasourceTypes: Type of datasource for the backup management
+ |
+
+
+
+objectType
+
+
+BackupPolicy_ObjectType_STATUS
+
+
+ |
+
+ |
+
+
+
+policyRules
+
+
+[]BasePolicyRule_STATUS
+
+
+ |
+
+ PolicyRules: Policy rule dictionary that contains rules for each backuptype i.e Full/Incremental/Logs etc
+ |
+
+
+
+
BackupPolicy_STATUS_ARM
+
+
+(Appears on:BaseBackupPolicy_STATUS_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+datasourceTypes
+
+[]string
+
+ |
+
+ DatasourceTypes: Type of datasource for the backup management
+ |
+
+
+
+objectType
+
+
+BackupPolicy_ObjectType_STATUS
+
+
+ |
+
+ |
+
+
+
+policyRules
+
+
+[]BasePolicyRule_STATUS_ARM
+
+
+ |
+
+ PolicyRules: Policy rule dictionary that contains rules for each backuptype i.e Full/Incremental/Logs etc
+ |
+
+
+
+
BackupSchedule
+
+
+(Appears on:ScheduleBasedTriggerContext)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+repeatingTimeIntervals
+
+[]string
+
+ |
+
+ RepeatingTimeIntervals: ISO 8601 repeating time interval format
+ |
+
+
+
+timeZone
+
+string
+
+ |
+
+ TimeZone: Time zone for a schedule. Example: Pacific Standard Time
+ |
+
+
+
+
BackupSchedule_ARM
+
+
+(Appears on:ScheduleBasedTriggerContext_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+repeatingTimeIntervals
+
+[]string
+
+ |
+
+ RepeatingTimeIntervals: ISO 8601 repeating time interval format
+ |
+
+
+
+timeZone
+
+string
+
+ |
+
+ TimeZone: Time zone for a schedule. Example: Pacific Standard Time
+ |
+
+
+
+
BackupSchedule_STATUS
+
+
+(Appears on:ScheduleBasedTriggerContext_STATUS)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+repeatingTimeIntervals
+
+[]string
+
+ |
+
+ RepeatingTimeIntervals: ISO 8601 repeating time interval format
+ |
+
+
+
+timeZone
+
+string
+
+ |
+
+ TimeZone: Time zone for a schedule. Example: Pacific Standard Time
+ |
+
+
+
+
BackupSchedule_STATUS_ARM
+
+
+(Appears on:ScheduleBasedTriggerContext_STATUS_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+repeatingTimeIntervals
+
+[]string
+
+ |
+
+ RepeatingTimeIntervals: ISO 8601 repeating time interval format
+ |
+
+
+
+timeZone
+
+string
+
+ |
+
+ TimeZone: Time zone for a schedule. Example: Pacific Standard Time
+ |
+
+
+
+
BackupVault
+
+
+
Generator information:
+- Generated from: /dataprotection/resource-manager/Microsoft.DataProtection/stable/2023-01-01/dataprotection.json
+- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}p>
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+
+
+
+spec
+
+
+BackupVault_Spec
+
+
+ |
+
+
+
+
+
+
+azureName
+
+string
+
+ |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
+doesn’t have to be.
+ |
+
+
+
+identity
+
+
+DppIdentityDetails
+
+
+ |
+
+ Identity: Input Managed Identity Details
+ |
+
+
+
+location
+
+string
+
+ |
+
+ Location: Resource location.
+ |
+
+
+
+owner
+
+
+genruntime.KnownResourceReference
+
+
+ |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
+controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
+reference to a resources.azure.com/ResourceGroup resource
+ |
+
+
+
+properties
+
+
+BackupVaultSpec
+
+
+ |
+
+ Properties: BackupVaultResource properties
+ |
+
+
+
+tags
+
+map[string]string
+
+ |
+
+ Tags: Resource tags.
+ |
+
+
+ |
+
+
+
+status
+
+
+BackupVaultResource_STATUS
+
+
+ |
+
+ |
+
+
+
+
BackupVaultResource_STATUS
+
+
+(Appears on:BackupVault)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+conditions
+
+
+[]genruntime/conditions.Condition
+
+
+ |
+
+ Conditions: The observed state of the resource
+ |
+
+
+
+eTag
+
+string
+
+ |
+
+ ETag: Optional ETag.
+ |
+
+
+
+id
+
+string
+
+ |
+
+ Id: Resource Id represents the complete path to the resource.
+ |
+
+
+
+identity
+
+
+DppIdentityDetails_STATUS
+
+
+ |
+
+ Identity: Input Managed Identity Details
+ |
+
+
+
+location
+
+string
+
+ |
+
+ Location: Resource location.
+ |
+
+
+
+name
+
+string
+
+ |
+
+ Name: Resource name associated with the resource.
+ |
+
+
+
+properties
+
+
+BackupVault_STATUS
+
+
+ |
+
+ Properties: BackupVaultResource properties
+ |
+
+
+
+systemData
+
+
+SystemData_STATUS
+
+
+ |
+
+ SystemData: Metadata pertaining to creation and last modification of the resource.
+ |
+
+
+
+tags
+
+map[string]string
+
+ |
+
+ Tags: Resource tags.
+ |
+
+
+
+type
+
+string
+
+ |
+
+ Type: Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/…
+ |
+
+
+
+
BackupVaultResource_STATUS_ARM
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+eTag
+
+string
+
+ |
+
+ ETag: Optional ETag.
+ |
+
+
+
+id
+
+string
+
+ |
+
+ Id: Resource Id represents the complete path to the resource.
+ |
+
+
+
+identity
+
+
+DppIdentityDetails_STATUS_ARM
+
+
+ |
+
+ Identity: Input Managed Identity Details
+ |
+
+
+
+location
+
+string
+
+ |
+
+ Location: Resource location.
+ |
+
+
+
+name
+
+string
+
+ |
+
+ Name: Resource name associated with the resource.
+ |
+
+
+
+properties
+
+
+BackupVault_STATUS_ARM
+
+
+ |
+
+ Properties: BackupVaultResource properties
+ |
+
+
+
+systemData
+
+
+SystemData_STATUS_ARM
+
+
+ |
+
+ SystemData: Metadata pertaining to creation and last modification of the resource.
+ |
+
+
+
+tags
+
+map[string]string
+
+ |
+
+ Tags: Resource tags.
+ |
+
+
+
+type
+
+string
+
+ |
+
+ Type: Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/…
+ |
+
+
+
+
BackupVaultSpec
+
+
+(Appears on:BackupVault_Spec)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+featureSettings
+
+
+FeatureSettings
+
+
+ |
+
+ FeatureSettings: Feature Settings
+ |
+
+
+
+monitoringSettings
+
+
+MonitoringSettings
+
+
+ |
+
+ MonitoringSettings: Monitoring Settings
+ |
+
+
+
+securitySettings
+
+
+SecuritySettings
+
+
+ |
+
+ SecuritySettings: Security Settings
+ |
+
+
+
+storageSettings
+
+
+[]StorageSetting
+
+
+ |
+
+ StorageSettings: Storage Settings
+ |
+
+
+
+
BackupVaultSpec_ARM
+
+
+(Appears on:BackupVault_Spec_ARM)
+
+
+
+
BackupVault_ProvisioningState_STATUS
+(string
alias)
+
+(Appears on:BackupVault_STATUS, BackupVault_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Failed" |
+ |
+
"Provisioning" |
+ |
+
"Succeeded" |
+ |
+
"Unknown" |
+ |
+
"Updating" |
+ |
+
+
+
BackupVault_ResourceMoveState_STATUS
+(string
alias)
+
+(Appears on:BackupVault_STATUS, BackupVault_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"CommitFailed" |
+ |
+
"CommitTimedout" |
+ |
+
"CriticalFailure" |
+ |
+
"Failed" |
+ |
+
"InProgress" |
+ |
+
"MoveSucceeded" |
+ |
+
"PartialSuccess" |
+ |
+
"PrepareFailed" |
+ |
+
"PrepareTimedout" |
+ |
+
"Unknown" |
+ |
+
+
+
BackupVault_STATUS
+
+
+(Appears on:BackupVaultResource_STATUS)
+
+
+
+
BackupVault_STATUS_ARM
+
+
+(Appears on:BackupVaultResource_STATUS_ARM)
+
+
+
+
BackupVault_Spec
+
+
+(Appears on:BackupVault)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureName
+
+string
+
+ |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
+doesn’t have to be.
+ |
+
+
+
+identity
+
+
+DppIdentityDetails
+
+
+ |
+
+ Identity: Input Managed Identity Details
+ |
+
+
+
+location
+
+string
+
+ |
+
+ Location: Resource location.
+ |
+
+
+
+owner
+
+
+genruntime.KnownResourceReference
+
+
+ |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
+controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
+reference to a resources.azure.com/ResourceGroup resource
+ |
+
+
+
+properties
+
+
+BackupVaultSpec
+
+
+ |
+
+ Properties: BackupVaultResource properties
+ |
+
+
+
+tags
+
+map[string]string
+
+ |
+
+ Tags: Resource tags.
+ |
+
+
+
+
BackupVault_Spec_ARM
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+identity
+
+
+DppIdentityDetails_ARM
+
+
+ |
+
+ Identity: Input Managed Identity Details
+ |
+
+
+
+location
+
+string
+
+ |
+
+ Location: Resource location.
+ |
+
+
+
+name
+
+string
+
+ |
+
+ |
+
+
+
+properties
+
+
+BackupVaultSpec_ARM
+
+
+ |
+
+ Properties: BackupVaultResource properties
+ |
+
+
+
+tags
+
+map[string]string
+
+ |
+
+ Tags: Resource tags.
+ |
+
+
+
+
BackupVaultsBackupPolicy
+
+
+
Generator information:
+- Generated from: /dataprotection/resource-manager/Microsoft.DataProtection/stable/2023-01-01/dataprotection.json
+- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{backupPolicyName}p>
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+
+
+
+spec
+
+
+BackupVaults_BackupPolicy_Spec
+
+
+ |
+
+
+
+
+
+
+azureName
+
+string
+
+ |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
+doesn’t have to be.
+ |
+
+
+
+owner
+
+
+genruntime.KnownResourceReference
+
+
+ |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
+controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
+reference to a dataprotection.azure.com/BackupVault resource
+ |
+
+
+
+properties
+
+
+BaseBackupPolicy
+
+
+ |
+
+ Properties: BaseBackupPolicyResource properties
+ |
+
+
+ |
+
+
+
+status
+
+
+BackupVaults_BackupPolicy_STATUS
+
+
+ |
+
+ |
+
+
+
+
BackupVaults_BackupPolicy_STATUS
+
+
+(Appears on:BackupVaultsBackupPolicy)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+conditions
+
+
+[]genruntime/conditions.Condition
+
+
+ |
+
+ Conditions: The observed state of the resource
+ |
+
+
+
+id
+
+string
+
+ |
+
+ Id: Resource Id represents the complete path to the resource.
+ |
+
+
+
+name
+
+string
+
+ |
+
+ Name: Resource name associated with the resource.
+ |
+
+
+
+properties
+
+
+BaseBackupPolicy_STATUS
+
+
+ |
+
+ Properties: BaseBackupPolicyResource properties
+ |
+
+
+
+systemData
+
+
+SystemData_STATUS
+
+
+ |
+
+ SystemData: Metadata pertaining to creation and last modification of the resource.
+ |
+
+
+
+type
+
+string
+
+ |
+
+ Type: Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/…
+ |
+
+
+
+
BackupVaults_BackupPolicy_STATUS_ARM
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+id
+
+string
+
+ |
+
+ Id: Resource Id represents the complete path to the resource.
+ |
+
+
+
+name
+
+string
+
+ |
+
+ Name: Resource name associated with the resource.
+ |
+
+
+
+properties
+
+
+BaseBackupPolicy_STATUS_ARM
+
+
+ |
+
+ Properties: BaseBackupPolicyResource properties
+ |
+
+
+
+systemData
+
+
+SystemData_STATUS_ARM
+
+
+ |
+
+ SystemData: Metadata pertaining to creation and last modification of the resource.
+ |
+
+
+
+type
+
+string
+
+ |
+
+ Type: Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/…
+ |
+
+
+
+
BackupVaults_BackupPolicy_Spec
+
+
+(Appears on:BackupVaultsBackupPolicy)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureName
+
+string
+
+ |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
+doesn’t have to be.
+ |
+
+
+
+owner
+
+
+genruntime.KnownResourceReference
+
+
+ |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
+controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
+reference to a dataprotection.azure.com/BackupVault resource
+ |
+
+
+
+properties
+
+
+BaseBackupPolicy
+
+
+ |
+
+ Properties: BaseBackupPolicyResource properties
+ |
+
+
+
+
BackupVaults_BackupPolicy_Spec_ARM
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+name
+
+string
+
+ |
+
+ |
+
+
+
+properties
+
+
+BaseBackupPolicy_ARM
+
+
+ |
+
+ Properties: BaseBackupPolicyResource properties
+ |
+
+
+
+
BaseBackupPolicy
+
+
+(Appears on:BackupVaults_BackupPolicy_Spec)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+backupPolicy
+
+
+BackupPolicy
+
+
+ |
+
+ BackupPolicy: Mutually exclusive with all other properties
+ |
+
+
+
+
BaseBackupPolicy_ARM
+
+
+(Appears on:BackupVaults_BackupPolicy_Spec_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+backupPolicy
+
+
+BackupPolicy_ARM
+
+
+ |
+
+ BackupPolicy: Mutually exclusive with all other properties
+ |
+
+
+
+
BaseBackupPolicy_STATUS
+
+
+(Appears on:BackupVaults_BackupPolicy_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+backupPolicy
+
+
+BackupPolicy_STATUS
+
+
+ |
+
+ BackupPolicy: Mutually exclusive with all other properties
+ |
+
+
+
+
BaseBackupPolicy_STATUS_ARM
+
+
+(Appears on:BackupVaults_BackupPolicy_STATUS_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+backupPolicy
+
+
+BackupPolicy_STATUS_ARM
+
+
+ |
+
+ BackupPolicy: Mutually exclusive with all other properties
+ |
+
+
+
+
BasePolicyRule
+
+
+(Appears on:BackupPolicy)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureBackupRule
+
+
+AzureBackupRule
+
+
+ |
+
+ AzureBackup: Mutually exclusive with all other properties
+ |
+
+
+
+azureRetentionRule
+
+
+AzureRetentionRule
+
+
+ |
+
+ AzureRetention: Mutually exclusive with all other properties
+ |
+
+
+
+
BasePolicyRule_ARM
+
+
+(Appears on:BackupPolicy_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureBackupRule
+
+
+AzureBackupRule_ARM
+
+
+ |
+
+ AzureBackup: Mutually exclusive with all other properties
+ |
+
+
+
+azureRetentionRule
+
+
+AzureRetentionRule_ARM
+
+
+ |
+
+ AzureRetention: Mutually exclusive with all other properties
+ |
+
+
+
+
BasePolicyRule_STATUS
+
+
+(Appears on:BackupPolicy_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureBackupRule
+
+
+AzureBackupRule_STATUS
+
+
+ |
+
+ AzureBackup: Mutually exclusive with all other properties
+ |
+
+
+
+azureRetentionRule
+
+
+AzureRetentionRule_STATUS
+
+
+ |
+
+ AzureRetention: Mutually exclusive with all other properties
+ |
+
+
+
+
BasePolicyRule_STATUS_ARM
+
+
+(Appears on:BackupPolicy_STATUS_ARM)
+
+
+
+
+
CopyOnExpiryOption
+
+
+(Appears on:CopyOption)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+objectType
+
+
+CopyOnExpiryOption_ObjectType
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
CopyOnExpiryOption_ARM
+
+
+(Appears on:CopyOption_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+objectType
+
+
+CopyOnExpiryOption_ObjectType
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
CopyOnExpiryOption_ObjectType
+(string
alias)
+
+(Appears on:CopyOnExpiryOption, CopyOnExpiryOption_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"CopyOnExpiryOption" |
+ |
+
+
+
CopyOnExpiryOption_ObjectType_STATUS
+(string
alias)
+
+(Appears on:CopyOnExpiryOption_STATUS, CopyOnExpiryOption_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"CopyOnExpiryOption" |
+ |
+
+
+
CopyOnExpiryOption_STATUS
+
+
+(Appears on:CopyOption_STATUS)
+
+
+
+
+
CopyOnExpiryOption_STATUS_ARM
+
+
+(Appears on:CopyOption_STATUS_ARM)
+
+
+
+
+
CopyOption
+
+
+(Appears on:TargetCopySetting)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+copyOnExpiryOption
+
+
+CopyOnExpiryOption
+
+
+ |
+
+ CopyOnExpiry: Mutually exclusive with all other properties
+ |
+
+
+
+customCopyOption
+
+
+CustomCopyOption
+
+
+ |
+
+ CustomCopy: Mutually exclusive with all other properties
+ |
+
+
+
+immediateCopyOption
+
+
+ImmediateCopyOption
+
+
+ |
+
+ ImmediateCopy: Mutually exclusive with all other properties
+ |
+
+
+
+
CopyOption_ARM
+
+
+(Appears on:TargetCopySetting_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+copyOnExpiryOption
+
+
+CopyOnExpiryOption_ARM
+
+
+ |
+
+ CopyOnExpiry: Mutually exclusive with all other properties
+ |
+
+
+
+customCopyOption
+
+
+CustomCopyOption_ARM
+
+
+ |
+
+ CustomCopy: Mutually exclusive with all other properties
+ |
+
+
+
+immediateCopyOption
+
+
+ImmediateCopyOption_ARM
+
+
+ |
+
+ ImmediateCopy: Mutually exclusive with all other properties
+ |
+
+
+
+
CopyOption_STATUS
+
+
+(Appears on:TargetCopySetting_STATUS)
+
+
+
+
+
CopyOption_STATUS_ARM
+
+
+(Appears on:TargetCopySetting_STATUS_ARM)
+
+
+
+
+
CrossSubscriptionRestoreSettings
+
+
+(Appears on:FeatureSettings)
+
+
+
CrossSubscriptionRestore Settings
+
+
+
CrossSubscriptionRestoreSettings_ARM
+
+
+(Appears on:FeatureSettings_ARM)
+
+
+
CrossSubscriptionRestore Settings
+
+
+
CrossSubscriptionRestoreSettings_STATUS
+
+
+(Appears on:FeatureSettings_STATUS)
+
+
+
CrossSubscriptionRestore Settings
+
+
+
CrossSubscriptionRestoreSettings_STATUS_ARM
+
+
+(Appears on:FeatureSettings_STATUS_ARM)
+
+
+
CrossSubscriptionRestore Settings
+
+
+
CrossSubscriptionRestoreSettings_State
+(string
alias)
+
+(Appears on:CrossSubscriptionRestoreSettings, CrossSubscriptionRestoreSettings_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Disabled" |
+ |
+
"Enabled" |
+ |
+
"PermanentlyDisabled" |
+ |
+
+
+
CrossSubscriptionRestoreSettings_State_STATUS
+(string
alias)
+
+(Appears on:CrossSubscriptionRestoreSettings_STATUS, CrossSubscriptionRestoreSettings_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Disabled" |
+ |
+
"Enabled" |
+ |
+
"PermanentlyDisabled" |
+ |
+
+
+
CustomCopyOption
+
+
+(Appears on:CopyOption)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+duration
+
+string
+
+ |
+
+ Duration: Data copied after given timespan
+ |
+
+
+
+objectType
+
+
+CustomCopyOption_ObjectType
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
CustomCopyOption_ARM
+
+
+(Appears on:CopyOption_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+duration
+
+string
+
+ |
+
+ Duration: Data copied after given timespan
+ |
+
+
+
+objectType
+
+
+CustomCopyOption_ObjectType
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
CustomCopyOption_ObjectType
+(string
alias)
+
+(Appears on:CustomCopyOption, CustomCopyOption_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"CustomCopyOption" |
+ |
+
+
+
CustomCopyOption_ObjectType_STATUS
+(string
alias)
+
+(Appears on:CustomCopyOption_STATUS, CustomCopyOption_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"CustomCopyOption" |
+ |
+
+
+
CustomCopyOption_STATUS
+
+
+(Appears on:CopyOption_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+duration
+
+string
+
+ |
+
+ Duration: Data copied after given timespan
+ |
+
+
+
+objectType
+
+
+CustomCopyOption_ObjectType_STATUS
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
CustomCopyOption_STATUS_ARM
+
+
+(Appears on:CopyOption_STATUS_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+duration
+
+string
+
+ |
+
+ Duration: Data copied after given timespan
+ |
+
+
+
+objectType
+
+
+CustomCopyOption_ObjectType_STATUS
+
+
+ |
+
+ ObjectType: Type of the specific object - used for deserializing
+ |
+
+
+
+
DataStoreInfoBase
+
+
+(Appears on:AzureBackupRule, SourceLifeCycle, TargetCopySetting)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+dataStoreType
+
+
+DataStoreInfoBase_DataStoreType
+
+
+ |
+
+ DataStoreType: type of datastore; Operational/Vault/Archive
+ |
+
+
+
+objectType
+
+string
+
+ |
+
+ ObjectType: Type of Datasource object, used to initialize the right inherited type
+ |
+
+
+
+
DataStoreInfoBase_ARM
+
+
+(Appears on:AzureBackupRule_ARM, SourceLifeCycle_ARM, TargetCopySetting_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+dataStoreType
+
+
+DataStoreInfoBase_DataStoreType
+
+
+ |
+
+ DataStoreType: type of datastore; Operational/Vault/Archive
+ |
+
+
+
+objectType
+
+string
+
+ |
+
+ ObjectType: Type of Datasource object, used to initialize the right inherited type
+ |
+
+
+
+
DataStoreInfoBase_DataStoreType
+(string
alias)
+
+(Appears on:DataStoreInfoBase, DataStoreInfoBase_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ArchiveStore" |
+ |
+
"OperationalStore" |
+ |
+
"VaultStore" |
+ |
+
+
+
DataStoreInfoBase_DataStoreType_STATUS
+(string
alias)
+
+(Appears on:DataStoreInfoBase_STATUS, DataStoreInfoBase_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ArchiveStore" |
+ |
+
"OperationalStore" |
+ |
+
"VaultStore" |
+ |
+
+
+
DataStoreInfoBase_STATUS
+
+
+(Appears on:AzureBackupRule_STATUS, SourceLifeCycle_STATUS, TargetCopySetting_STATUS)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+dataStoreType
+
+
+DataStoreInfoBase_DataStoreType_STATUS
+
+
+ |
+
+ DataStoreType: type of datastore; Operational/Vault/Archive
+ |
+
+
+
+objectType
+
+string
+
+ |
+
+ ObjectType: Type of Datasource object, used to initialize the right inherited type
+ |
+
+
+
+
DataStoreInfoBase_STATUS_ARM
+
+
+(Appears on:AzureBackupRule_STATUS_ARM, SourceLifeCycle_STATUS_ARM, TargetCopySetting_STATUS_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+dataStoreType
+
+
+DataStoreInfoBase_DataStoreType_STATUS
+
+
+ |
+
+ DataStoreType: type of datastore; Operational/Vault/Archive
+ |
+
+
+
+objectType
+
+string
+
+ |
+
+ ObjectType: Type of Datasource object, used to initialize the right inherited type
+ |
+
+
+
+
Day
+
+
+(Appears on:ScheduleBasedBackupCriteria)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+date
+
+int
+
+ |
+
+ Date: Date of the month
+ |
+
+
+
+isLast
+
+bool
+
+ |
+
+ IsLast: Whether Date is last date of month
+ |
+
+
+
+
Day_ARM
+
+
+(Appears on:ScheduleBasedBackupCriteria_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+date
+
+int
+
+ |
+
+ Date: Date of the month
+ |
+
+
+
+isLast
+
+bool
+
+ |
+
+ IsLast: Whether Date is last date of month
+ |
+
+
+
+
Day_STATUS
+
+
+(Appears on:ScheduleBasedBackupCriteria_STATUS)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+date
+
+int
+
+ |
+
+ Date: Date of the month
+ |
+
+
+
+isLast
+
+bool
+
+ |
+
+ IsLast: Whether Date is last date of month
+ |
+
+
+
+
Day_STATUS_ARM
+
+
+(Appears on:ScheduleBasedBackupCriteria_STATUS_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+date
+
+int
+
+ |
+
+ Date: Date of the month
+ |
+
+
+
+isLast
+
+bool
+
+ |
+
+ IsLast: Whether Date is last date of month
+ |
+
+
+
+
DeleteOption
+
+
+(Appears on:SourceLifeCycle)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+absoluteDeleteOption
+
+
+AbsoluteDeleteOption
+
+
+ |
+
+ AbsoluteDeleteOption: Mutually exclusive with all other properties
+ |
+
+
+
+
DeleteOption_ARM
+
+
+(Appears on:SourceLifeCycle_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+absoluteDeleteOption
+
+
+AbsoluteDeleteOption_ARM
+
+
+ |
+
+ AbsoluteDeleteOption: Mutually exclusive with all other properties
+ |
+
+
+
+
DeleteOption_STATUS
+
+
+(Appears on:SourceLifeCycle_STATUS)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+absoluteDeleteOption
+
+
+AbsoluteDeleteOption_STATUS
+
+
+ |
+
+ AbsoluteDeleteOption: Mutually exclusive with all other properties
+ |
+
+
+
+
DeleteOption_STATUS_ARM
+
+
+(Appears on:SourceLifeCycle_STATUS_ARM)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+absoluteDeleteOption
+
+
+AbsoluteDeleteOption_STATUS_ARM
+
+
+ |
+
+ AbsoluteDeleteOption: Mutually exclusive with all other properties
+ |
+
+
+
+
DppIdentityDetails
+
+
+(Appears on:BackupVault_Spec)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+type
+
+string
+
+ |
+
+ Type: The identityType which can be either SystemAssigned or None
+ |
+
+
+
+
DppIdentityDetails_ARM
+
+
+(Appears on:BackupVault_Spec_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+type
+
+string
+
+ |
+
+ Type: The identityType which can be either SystemAssigned or None
+ |
+
+
+
+
DppIdentityDetails_STATUS
+
+
+(Appears on:BackupVaultResource_STATUS)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+principalId
+
+string
+
+ |
+
+ PrincipalId: The object ID of the service principal object for the managed identity that is used to grant role-based
+access to an Azure resource.
+ |
+
+
+
+tenantId
+
+string
+
+ |
+
+ TenantId: A Globally Unique Identifier (GUID) that represents the Azure AD tenant where the resource is now a member.
+ |
+
+
+
+type
+
+string
+
+ |
+
+ Type: The identityType which can be either SystemAssigned or None
+ |
+
+
+
+
DppIdentityDetails_STATUS_ARM
+
+
+(Appears on:BackupVaultResource_STATUS_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+principalId
+
+string
+
+ |
+
+ PrincipalId: The object ID of the service principal object for the managed identity that is used to grant role-based
+access to an Azure resource.
+ |
+
+
+
+tenantId
+
+string
+
+ |
+
+ TenantId: A Globally Unique Identifier (GUID) that represents the Azure AD tenant where the resource is now a member.
+ |
+
+
+
+type
+
+string
+
+ |
+
+ Type: The identityType which can be either SystemAssigned or None
+ |
+
+
+
+
FeatureSettings
+
+
+(Appears on:BackupVaultSpec)
+
+
+
Class containing feature settings of vault
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+crossSubscriptionRestoreSettings
+
+
+CrossSubscriptionRestoreSettings
+
+
+ |
+
+ CrossSubscriptionRestoreSettings: CrossSubscriptionRestore Settings
+ |
+
+
+
+
FeatureSettings_ARM
+
+
+(Appears on:BackupVaultSpec_ARM)
+
+
+
Class containing feature settings of vault
+
+
+
FeatureSettings_STATUS
+
+
+(Appears on:BackupVault_STATUS)
+
+
+
Class containing feature settings of vault
+
+
+
FeatureSettings_STATUS_ARM
+
+
+(Appears on:BackupVault_STATUS_ARM)
+
+
+
Class containing feature settings of vault
+
+
+
+
+(Appears on:CopyOption)
+
+
+
+
+
+
+(Appears on:CopyOption_ARM)
+
+
+
+
+
+
+(Appears on:ImmediateCopyOption, ImmediateCopyOption_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ImmediateCopyOption" |
+ |
+
+
+
+
+(Appears on:ImmediateCopyOption_STATUS, ImmediateCopyOption_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ImmediateCopyOption" |
+ |
+
+
+
+
+(Appears on:CopyOption_STATUS)
+
+
+
+
+
+
+(Appears on:CopyOption_STATUS_ARM)
+
+
+
+
+
ImmutabilitySettings
+
+
+(Appears on:SecuritySettings)
+
+
+
Immutability Settings at vault level
+
+
+
ImmutabilitySettings_ARM
+
+
+(Appears on:SecuritySettings_ARM)
+
+
+
Immutability Settings at vault level
+
+
+
ImmutabilitySettings_STATUS
+
+
+(Appears on:SecuritySettings_STATUS)
+
+
+
Immutability Settings at vault level
+
+
+
ImmutabilitySettings_STATUS_ARM
+
+
+(Appears on:SecuritySettings_STATUS_ARM)
+
+
+
Immutability Settings at vault level
+
+
+
ImmutabilitySettings_State
+(string
alias)
+
+(Appears on:ImmutabilitySettings, ImmutabilitySettings_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Disabled" |
+ |
+
"Locked" |
+ |
+
"Unlocked" |
+ |
+
+
+
ImmutabilitySettings_State_STATUS
+(string
alias)
+
+(Appears on:ImmutabilitySettings_STATUS, ImmutabilitySettings_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Disabled" |
+ |
+
"Locked" |
+ |
+
"Unlocked" |
+ |
+
+
+
MonitoringSettings
+
+
+(Appears on:BackupVaultSpec)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureMonitorAlertSettings
+
+
+AzureMonitorAlertSettings
+
+
+ |
+
+ AzureMonitorAlertSettings: Settings for Azure Monitor based alerts
+ |
+
+
+
+
MonitoringSettings_ARM
+
+
+(Appears on:BackupVaultSpec_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureMonitorAlertSettings
+
+
+AzureMonitorAlertSettings_ARM
+
+
+ |
+
+ AzureMonitorAlertSettings: Settings for Azure Monitor based alerts
+ |
+
+
+
+
MonitoringSettings_STATUS
+
+
+(Appears on:BackupVault_STATUS)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+azureMonitorAlertSettings
+
+
+AzureMonitorAlertSettings_STATUS
+
+
+ |
+
+ AzureMonitorAlertSettings: Settings for Azure Monitor based alerts
+ |
+
+
+
+
MonitoringSettings_STATUS_ARM
+
+
+(Appears on:BackupVault_STATUS_ARM)
+
+
+
+
ResourceMoveDetails_STATUS
+
+
+(Appears on:BackupVault_STATUS)
+
+
+
ResourceMoveDetails will be returned in response to GetResource call from ARM
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+completionTimeUtc
+
+string
+
+ |
+
+ CompletionTimeUtc: Completion time in UTC of latest ResourceMove operation attempted. ISO 8601 format.
+ |
+
+
+
+operationId
+
+string
+
+ |
+
+ OperationId: CorrelationId of latest ResourceMove operation attempted
+ |
+
+
+
+sourceResourcePath
+
+string
+
+ |
+
+ SourceResourcePath: ARM resource path of source resource
+ |
+
+
+
+startTimeUtc
+
+string
+
+ |
+
+ StartTimeUtc: Start time in UTC of latest ResourceMove operation attempted. ISO 8601 format.
+ |
+
+
+
+targetResourcePath
+
+string
+
+ |
+
+ TargetResourcePath: ARM resource path of target resource used in latest ResourceMove operation
+ |
+
+
+
+
ResourceMoveDetails_STATUS_ARM
+
+
+(Appears on:BackupVault_STATUS_ARM)
+
+
+
ResourceMoveDetails will be returned in response to GetResource call from ARM
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+completionTimeUtc
+
+string
+
+ |
+
+ CompletionTimeUtc: Completion time in UTC of latest ResourceMove operation attempted. ISO 8601 format.
+ |
+
+
+
+operationId
+
+string
+
+ |
+
+ OperationId: CorrelationId of latest ResourceMove operation attempted
+ |
+
+
+
+sourceResourcePath
+
+string
+
+ |
+
+ SourceResourcePath: ARM resource path of source resource
+ |
+
+
+
+startTimeUtc
+
+string
+
+ |
+
+ StartTimeUtc: Start time in UTC of latest ResourceMove operation attempted. ISO 8601 format.
+ |
+
+
+
+targetResourcePath
+
+string
+
+ |
+
+ TargetResourcePath: ARM resource path of target resource used in latest ResourceMove operation
+ |
+
+
+
+
RetentionTag
+
+
+(Appears on:AdhocBasedTaggingCriteria, TaggingCriteria)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+tagName
+
+string
+
+ |
+
+ TagName: Retention Tag Name to relate it to retention rule.
+ |
+
+
+
+
RetentionTag_ARM
+
+
+(Appears on:AdhocBasedTaggingCriteria_ARM, TaggingCriteria_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+tagName
+
+string
+
+ |
+
+ TagName: Retention Tag Name to relate it to retention rule.
+ |
+
+
+
+
RetentionTag_STATUS
+
+
+(Appears on:AdhocBasedTaggingCriteria_STATUS, TaggingCriteria_STATUS)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+eTag
+
+string
+
+ |
+
+ ETag: Retention Tag version.
+ |
+
+
+
+id
+
+string
+
+ |
+
+ Id: Retention Tag version.
+ |
+
+
+
+tagName
+
+string
+
+ |
+
+ TagName: Retention Tag Name to relate it to retention rule.
+ |
+
+
+
+
RetentionTag_STATUS_ARM
+
+
+(Appears on:AdhocBasedTaggingCriteria_STATUS_ARM, TaggingCriteria_STATUS_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+eTag
+
+string
+
+ |
+
+ ETag: Retention Tag version.
+ |
+
+
+
+id
+
+string
+
+ |
+
+ Id: Retention Tag version.
+ |
+
+
+
+tagName
+
+string
+
+ |
+
+ TagName: Retention Tag Name to relate it to retention rule.
+ |
+
+
+
+
ScheduleBasedBackupCriteria
+
+
+(Appears on:BackupCriteria)
+
+
+
+
+
ScheduleBasedBackupCriteria_ARM
+
+
+(Appears on:BackupCriteria_ARM)
+
+
+
+
+
ScheduleBasedBackupCriteria_AbsoluteCriteria
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria, ScheduleBasedBackupCriteria_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AllBackup" |
+ |
+
"FirstOfDay" |
+ |
+
"FirstOfMonth" |
+ |
+
"FirstOfWeek" |
+ |
+
"FirstOfYear" |
+ |
+
+
+
ScheduleBasedBackupCriteria_AbsoluteCriteria_STATUS
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria_STATUS, ScheduleBasedBackupCriteria_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AllBackup" |
+ |
+
"FirstOfDay" |
+ |
+
"FirstOfMonth" |
+ |
+
"FirstOfWeek" |
+ |
+
"FirstOfYear" |
+ |
+
+
+
ScheduleBasedBackupCriteria_DaysOfTheWeek
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria, ScheduleBasedBackupCriteria_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Friday" |
+ |
+
"Monday" |
+ |
+
"Saturday" |
+ |
+
"Sunday" |
+ |
+
"Thursday" |
+ |
+
"Tuesday" |
+ |
+
"Wednesday" |
+ |
+
+
+
ScheduleBasedBackupCriteria_DaysOfTheWeek_STATUS
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria_STATUS, ScheduleBasedBackupCriteria_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Friday" |
+ |
+
"Monday" |
+ |
+
"Saturday" |
+ |
+
"Sunday" |
+ |
+
"Thursday" |
+ |
+
"Tuesday" |
+ |
+
"Wednesday" |
+ |
+
+
+
ScheduleBasedBackupCriteria_MonthsOfYear
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria, ScheduleBasedBackupCriteria_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"April" |
+ |
+
"August" |
+ |
+
"December" |
+ |
+
"February" |
+ |
+
"January" |
+ |
+
"July" |
+ |
+
"June" |
+ |
+
"March" |
+ |
+
"May" |
+ |
+
"November" |
+ |
+
"October" |
+ |
+
"September" |
+ |
+
+
+
ScheduleBasedBackupCriteria_MonthsOfYear_STATUS
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria_STATUS, ScheduleBasedBackupCriteria_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"April" |
+ |
+
"August" |
+ |
+
"December" |
+ |
+
"February" |
+ |
+
"January" |
+ |
+
"July" |
+ |
+
"June" |
+ |
+
"March" |
+ |
+
"May" |
+ |
+
"November" |
+ |
+
"October" |
+ |
+
"September" |
+ |
+
+
+
ScheduleBasedBackupCriteria_ObjectType
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria, ScheduleBasedBackupCriteria_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ScheduleBasedBackupCriteria" |
+ |
+
+
+
ScheduleBasedBackupCriteria_ObjectType_STATUS
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria_STATUS, ScheduleBasedBackupCriteria_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ScheduleBasedBackupCriteria" |
+ |
+
+
+
ScheduleBasedBackupCriteria_STATUS
+
+
+(Appears on:BackupCriteria_STATUS)
+
+
+
+
+
ScheduleBasedBackupCriteria_STATUS_ARM
+
+
+(Appears on:BackupCriteria_STATUS_ARM)
+
+
+
+
+
ScheduleBasedBackupCriteria_WeeksOfTheMonth
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria, ScheduleBasedBackupCriteria_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"First" |
+ |
+
"Fourth" |
+ |
+
"Last" |
+ |
+
"Second" |
+ |
+
"Third" |
+ |
+
+
+
ScheduleBasedBackupCriteria_WeeksOfTheMonth_STATUS
+(string
alias)
+
+(Appears on:ScheduleBasedBackupCriteria_STATUS, ScheduleBasedBackupCriteria_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"First" |
+ |
+
"Fourth" |
+ |
+
"Last" |
+ |
+
"Second" |
+ |
+
"Third" |
+ |
+
+
+
ScheduleBasedTriggerContext
+
+
+(Appears on:TriggerContext)
+
+
+
+
+
ScheduleBasedTriggerContext_ARM
+
+
+(Appears on:TriggerContext_ARM)
+
+
+
+
+
ScheduleBasedTriggerContext_ObjectType
+(string
alias)
+
+(Appears on:ScheduleBasedTriggerContext, ScheduleBasedTriggerContext_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ScheduleBasedTriggerContext" |
+ |
+
+
+
ScheduleBasedTriggerContext_ObjectType_STATUS
+(string
alias)
+
+(Appears on:ScheduleBasedTriggerContext_STATUS, ScheduleBasedTriggerContext_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ScheduleBasedTriggerContext" |
+ |
+
+
+
ScheduleBasedTriggerContext_STATUS
+
+
+(Appears on:TriggerContext_STATUS)
+
+
+
+
+
ScheduleBasedTriggerContext_STATUS_ARM
+
+
+(Appears on:TriggerContext_STATUS_ARM)
+
+
+
+
+
SecuritySettings
+
+
+(Appears on:BackupVaultSpec)
+
+
+
Class containing security settings of vault
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+immutabilitySettings
+
+
+ImmutabilitySettings
+
+
+ |
+
+ ImmutabilitySettings: Immutability Settings at vault level
+ |
+
+
+
+softDeleteSettings
+
+
+SoftDeleteSettings
+
+
+ |
+
+ SoftDeleteSettings: Soft delete related settings
+ |
+
+
+
+
SecuritySettings_ARM
+
+
+(Appears on:BackupVaultSpec_ARM)
+
+
+
Class containing security settings of vault
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+immutabilitySettings
+
+
+ImmutabilitySettings_ARM
+
+
+ |
+
+ ImmutabilitySettings: Immutability Settings at vault level
+ |
+
+
+
+softDeleteSettings
+
+
+SoftDeleteSettings_ARM
+
+
+ |
+
+ SoftDeleteSettings: Soft delete related settings
+ |
+
+
+
+
SecuritySettings_STATUS
+
+
+(Appears on:BackupVault_STATUS)
+
+
+
Class containing security settings of vault
+
+
+
SecuritySettings_STATUS_ARM
+
+
+(Appears on:BackupVault_STATUS_ARM)
+
+
+
Class containing security settings of vault
+
+
+
SoftDeleteSettings
+
+
+(Appears on:SecuritySettings)
+
+
+
Soft delete related settings
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+retentionDurationInDays
+
+float64
+
+ |
+
+ RetentionDurationInDays: Soft delete retention duration
+ |
+
+
+
+state
+
+
+SoftDeleteSettings_State
+
+
+ |
+
+ State: State of soft delete
+ |
+
+
+
+
SoftDeleteSettings_ARM
+
+
+(Appears on:SecuritySettings_ARM)
+
+
+
Soft delete related settings
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+retentionDurationInDays
+
+float64
+
+ |
+
+ RetentionDurationInDays: Soft delete retention duration
+ |
+
+
+
+state
+
+
+SoftDeleteSettings_State
+
+
+ |
+
+ State: State of soft delete
+ |
+
+
+
+
SoftDeleteSettings_STATUS
+
+
+(Appears on:SecuritySettings_STATUS)
+
+
+
Soft delete related settings
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+retentionDurationInDays
+
+float64
+
+ |
+
+ RetentionDurationInDays: Soft delete retention duration
+ |
+
+
+
+state
+
+
+SoftDeleteSettings_State_STATUS
+
+
+ |
+
+ State: State of soft delete
+ |
+
+
+
+
SoftDeleteSettings_STATUS_ARM
+
+
+(Appears on:SecuritySettings_STATUS_ARM)
+
+
+
Soft delete related settings
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+retentionDurationInDays
+
+float64
+
+ |
+
+ RetentionDurationInDays: Soft delete retention duration
+ |
+
+
+
+state
+
+
+SoftDeleteSettings_State_STATUS
+
+
+ |
+
+ State: State of soft delete
+ |
+
+
+
+
SoftDeleteSettings_State
+(string
alias)
+
+(Appears on:SoftDeleteSettings, SoftDeleteSettings_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AlwaysOn" |
+ |
+
"Off" |
+ |
+
"On" |
+ |
+
+
+
SoftDeleteSettings_State_STATUS
+(string
alias)
+
+(Appears on:SoftDeleteSettings_STATUS, SoftDeleteSettings_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"AlwaysOn" |
+ |
+
"Off" |
+ |
+
"On" |
+ |
+
+
+
SourceLifeCycle
+
+
+(Appears on:AzureRetentionRule)
+
+
+
+
SourceLifeCycle_ARM
+
+
+(Appears on:AzureRetentionRule_ARM)
+
+
+
+
SourceLifeCycle_STATUS
+
+
+(Appears on:AzureRetentionRule_STATUS)
+
+
+
+
SourceLifeCycle_STATUS_ARM
+
+
+(Appears on:AzureRetentionRule_STATUS_ARM)
+
+
+
+
StorageSetting
+
+
+(Appears on:BackupVaultSpec)
+
+
+
+
StorageSetting_ARM
+
+
+(Appears on:BackupVaultSpec_ARM)
+
+
+
+
StorageSetting_DatastoreType
+(string
alias)
+
+(Appears on:StorageSetting, StorageSetting_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ArchiveStore" |
+ |
+
"OperationalStore" |
+ |
+
"VaultStore" |
+ |
+
+
+
StorageSetting_DatastoreType_STATUS
+(string
alias)
+
+(Appears on:StorageSetting_STATUS, StorageSetting_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"ArchiveStore" |
+ |
+
"OperationalStore" |
+ |
+
"VaultStore" |
+ |
+
+
+
StorageSetting_STATUS
+
+
+(Appears on:BackupVault_STATUS)
+
+
+
+
StorageSetting_STATUS_ARM
+
+
+(Appears on:BackupVault_STATUS_ARM)
+
+
+
+
StorageSetting_Type
+(string
alias)
+
+(Appears on:StorageSetting, StorageSetting_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"GeoRedundant" |
+ |
+
"LocallyRedundant" |
+ |
+
"ZoneRedundant" |
+ |
+
+
+
StorageSetting_Type_STATUS
+(string
alias)
+
+(Appears on:StorageSetting_STATUS, StorageSetting_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"GeoRedundant" |
+ |
+
"LocallyRedundant" |
+ |
+
"ZoneRedundant" |
+ |
+
+
+
SystemData_CreatedByType_STATUS
+(string
alias)
+
+(Appears on:SystemData_STATUS, SystemData_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Application" |
+ |
+
"Key" |
+ |
+
"ManagedIdentity" |
+ |
+
"User" |
+ |
+
+
+
SystemData_LastModifiedByType_STATUS
+(string
alias)
+
+(Appears on:SystemData_STATUS, SystemData_STATUS_ARM)
+
+
+
+
+
+
+Value |
+Description |
+
+
+"Application" |
+ |
+
"Key" |
+ |
+
"ManagedIdentity" |
+ |
+
"User" |
+ |
+
+
+
SystemData_STATUS
+
+
+(Appears on:BackupVaultResource_STATUS, BackupVaults_BackupPolicy_STATUS)
+
+
+
Metadata pertaining to creation and last modification of the resource.
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+createdAt
+
+string
+
+ |
+
+ CreatedAt: The timestamp of resource creation (UTC).
+ |
+
+
+
+createdBy
+
+string
+
+ |
+
+ CreatedBy: The identity that created the resource.
+ |
+
+
+
+createdByType
+
+
+SystemData_CreatedByType_STATUS
+
+
+ |
+
+ CreatedByType: The type of identity that created the resource.
+ |
+
+
+
+lastModifiedAt
+
+string
+
+ |
+
+ LastModifiedAt: The timestamp of resource last modification (UTC)
+ |
+
+
+
+lastModifiedBy
+
+string
+
+ |
+
+ LastModifiedBy: The identity that last modified the resource.
+ |
+
+
+
+lastModifiedByType
+
+
+SystemData_LastModifiedByType_STATUS
+
+
+ |
+
+ LastModifiedByType: The type of identity that last modified the resource.
+ |
+
+
+
+
SystemData_STATUS_ARM
+
+
+(Appears on:BackupVaultResource_STATUS_ARM, BackupVaults_BackupPolicy_STATUS_ARM)
+
+
+
Metadata pertaining to creation and last modification of the resource.
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+createdAt
+
+string
+
+ |
+
+ CreatedAt: The timestamp of resource creation (UTC).
+ |
+
+
+
+createdBy
+
+string
+
+ |
+
+ CreatedBy: The identity that created the resource.
+ |
+
+
+
+createdByType
+
+
+SystemData_CreatedByType_STATUS
+
+
+ |
+
+ CreatedByType: The type of identity that created the resource.
+ |
+
+
+
+lastModifiedAt
+
+string
+
+ |
+
+ LastModifiedAt: The timestamp of resource last modification (UTC)
+ |
+
+
+
+lastModifiedBy
+
+string
+
+ |
+
+ LastModifiedBy: The identity that last modified the resource.
+ |
+
+
+
+lastModifiedByType
+
+
+SystemData_LastModifiedByType_STATUS
+
+
+ |
+
+ LastModifiedByType: The type of identity that last modified the resource.
+ |
+
+
+
+
TaggingCriteria
+
+
+(Appears on:ScheduleBasedTriggerContext)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+criteria
+
+
+[]BackupCriteria
+
+
+ |
+
+ Criteria: Criteria which decides whether the tag can be applied to a triggered backup.
+ |
+
+
+
+isDefault
+
+bool
+
+ |
+
+ IsDefault: Specifies if tag is default.
+ |
+
+
+
+tagInfo
+
+
+RetentionTag
+
+
+ |
+
+ TagInfo: Retention tag information
+ |
+
+
+
+taggingPriority
+
+int
+
+ |
+
+ TaggingPriority: Retention Tag priority.
+ |
+
+
+
+
TaggingCriteria_ARM
+
+
+(Appears on:ScheduleBasedTriggerContext_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+criteria
+
+
+[]BackupCriteria_ARM
+
+
+ |
+
+ Criteria: Criteria which decides whether the tag can be applied to a triggered backup.
+ |
+
+
+
+isDefault
+
+bool
+
+ |
+
+ IsDefault: Specifies if tag is default.
+ |
+
+
+
+tagInfo
+
+
+RetentionTag_ARM
+
+
+ |
+
+ TagInfo: Retention tag information
+ |
+
+
+
+taggingPriority
+
+int
+
+ |
+
+ TaggingPriority: Retention Tag priority.
+ |
+
+
+
+
TaggingCriteria_STATUS
+
+
+(Appears on:ScheduleBasedTriggerContext_STATUS)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+criteria
+
+
+[]BackupCriteria_STATUS
+
+
+ |
+
+ Criteria: Criteria which decides whether the tag can be applied to a triggered backup.
+ |
+
+
+
+isDefault
+
+bool
+
+ |
+
+ IsDefault: Specifies if tag is default.
+ |
+
+
+
+tagInfo
+
+
+RetentionTag_STATUS
+
+
+ |
+
+ TagInfo: Retention tag information
+ |
+
+
+
+taggingPriority
+
+int
+
+ |
+
+ TaggingPriority: Retention Tag priority.
+ |
+
+
+
+
TaggingCriteria_STATUS_ARM
+
+
+(Appears on:ScheduleBasedTriggerContext_STATUS_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+criteria
+
+
+[]BackupCriteria_STATUS_ARM
+
+
+ |
+
+ Criteria: Criteria which decides whether the tag can be applied to a triggered backup.
+ |
+
+
+
+isDefault
+
+bool
+
+ |
+
+ IsDefault: Specifies if tag is default.
+ |
+
+
+
+tagInfo
+
+
+RetentionTag_STATUS_ARM
+
+
+ |
+
+ TagInfo: Retention tag information
+ |
+
+
+
+taggingPriority
+
+int
+
+ |
+
+ TaggingPriority: Retention Tag priority.
+ |
+
+
+
+
TargetCopySetting
+
+
+(Appears on:SourceLifeCycle)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+copyAfter
+
+
+CopyOption
+
+
+ |
+
+ CopyAfter: It can be CustomCopyOption or ImmediateCopyOption.
+ |
+
+
+
+dataStore
+
+
+DataStoreInfoBase
+
+
+ |
+
+ DataStore: Info of target datastore
+ |
+
+
+
+
TargetCopySetting_ARM
+
+
+(Appears on:SourceLifeCycle_ARM)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+copyAfter
+
+
+CopyOption_ARM
+
+
+ |
+
+ CopyAfter: It can be CustomCopyOption or ImmediateCopyOption.
+ |
+
+
+
+dataStore
+
+
+DataStoreInfoBase_ARM
+
+
+ |
+
+ DataStore: Info of target datastore
+ |
+
+
+
+
TargetCopySetting_STATUS
+
+
+(Appears on:SourceLifeCycle_STATUS)
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+copyAfter
+
+
+CopyOption_STATUS
+
+
+ |
+
+ CopyAfter: It can be CustomCopyOption or ImmediateCopyOption.
+ |
+
+
+
+dataStore
+
+
+DataStoreInfoBase_STATUS
+
+
+ |
+
+ DataStore: Info of target datastore
+ |
+
+
+
+
TargetCopySetting_STATUS_ARM
+
+
+(Appears on:SourceLifeCycle_STATUS_ARM)
+
+
+
+
TriggerContext
+
+
+(Appears on:AzureBackupRule)
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+
+adhocBasedTriggerContext
+
+
+AdhocBasedTriggerContext
+
+
+ |
+
+ Adhoc: Mutually exclusive with all other properties
+ |
+
+
+
+scheduleBasedTriggerContext
+
+
+ScheduleBasedTriggerContext
+
+
+ |
+
+ Schedule: Mutually exclusive with all other properties
+ |
+
+
+
+
TriggerContext_ARM
+
+
+(Appears on:AzureBackupRule_ARM)
+
+
+
+
+
TriggerContext_STATUS
+
+
+(Appears on:AzureBackupRule_STATUS)
+
+
+
+
+
TriggerContext_STATUS_ARM
+
+
+(Appears on:AzureBackupRule_STATUS_ARM)
+
+
+
+
+
diff --git a/docs/hugo/content/reference/keyvault/v1api20210401preview.md b/docs/hugo/content/reference/keyvault/v1api20210401preview.md
index 07cbae6b7c..f4570f356f 100644
--- a/docs/hugo/content/reference/keyvault/v1api20210401preview.md
+++ b/docs/hugo/content/reference/keyvault/v1api20210401preview.md
@@ -2631,6 +2631,20 @@ string
+tenantIdFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ TenantIdFromConfig: The Azure Active Directory tenant ID that should be used for authenticating requests to the key
+vault.
+ |
+
+
+
vaultUri
string
diff --git a/docs/hugo/content/reference/keyvault/v1beta20210401preview.md b/docs/hugo/content/reference/keyvault/v1beta20210401preview.md
index 513b129e15..48c4716bad 100644
--- a/docs/hugo/content/reference/keyvault/v1beta20210401preview.md
+++ b/docs/hugo/content/reference/keyvault/v1beta20210401preview.md
@@ -2505,6 +2505,18 @@ string
|
+tenantIdFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ |
+
+
+
vaultUri
string
diff --git a/docs/hugo/content/reference/managedidentity/v1api20220131preview.md b/docs/hugo/content/reference/managedidentity/v1api20220131preview.md
index b1ea13037e..167524d5a8 100644
--- a/docs/hugo/content/reference/managedidentity/v1api20220131preview.md
+++ b/docs/hugo/content/reference/managedidentity/v1api20220131preview.md
@@ -100,6 +100,19 @@ string
|
+issuerFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ IssuerFromConfig: The URL of the issuer to be trusted.
+ |
+
+
+
owner
@@ -124,6 +137,19 @@ string
Subject: The identifier of the external identity.
|
+
+
+subjectFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ SubjectFromConfig: The identifier of the external identity.
+ |
+
@@ -452,6 +478,19 @@ string
+issuerFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ IssuerFromConfig: The URL of the issuer to be trusted.
+ |
+
+
+
owner
@@ -476,6 +515,19 @@ string
Subject: The identifier of the external identity.
|
+
+
+subjectFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ SubjectFromConfig: The identifier of the external identity.
+ |
+
UserAssignedIdentities_FederatedIdentityCredential_Spec_ARM
diff --git a/docs/hugo/content/reference/managedidentity/v1beta20220131preview.md b/docs/hugo/content/reference/managedidentity/v1beta20220131preview.md
index 124faf0f13..ee9ad71653 100644
--- a/docs/hugo/content/reference/managedidentity/v1beta20220131preview.md
+++ b/docs/hugo/content/reference/managedidentity/v1beta20220131preview.md
@@ -97,6 +97,18 @@ string
+issuerFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ |
+
+
+
owner
@@ -120,6 +132,18 @@ string
|
|
+
+
+subjectFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ |
+
@@ -430,6 +454,18 @@ string
+issuerFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ |
+
+
+
owner
@@ -453,6 +489,18 @@ string
|
|
+
+
+subjectFromConfig
+
+
+genruntime.ConfigMapReference
+
+
+ |
+
+ |
+
UserAssignedIdentities_FederatedIdentityCredential_Spec_ARM
diff --git a/docs/hugo/content/tools/asoctl.md b/docs/hugo/content/tools/asoctl.md
index 990b896d29..5c78661483 100644
--- a/docs/hugo/content/tools/asoctl.md
+++ b/docs/hugo/content/tools/asoctl.md
@@ -28,45 +28,66 @@ Available Commands:
{{< tabpane text=true left=true >}}
{{% tab header="**OS**:" disabled=true /%}}
-{{% tab header="Linux" %}}
+{{% tab header="Linux (incl WSL)" %}}
-AMD64:
+Download for AMD64:
-`curl -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-linux-amd64 -o asoctl`
+``` bash
+$ curl -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-linux-amd64.gz -o asoctl.gz
+$ gunzip asoctl.gz
+```
-ARM64:
+Download for ARM64:
-`curl -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-linux-arm64 -o asoctl`
+``` bash
+$ curl -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-linux-arm64.gz -o asoctl.gz
+$ gunzip asoctl.gz
+```
Install:
-`sudo install -o root -g root -m 0755 asoctl /usr/local/bin/asoctl`
+``` bash
+$ sudo install -o root -g root -m 0755 asoctl /usr/local/bin/asoctl`
+```
{{% /tab %}}
{{% tab header="macOS" %}}
-AMD64:
+Download for AMD64:
-`curl -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-darwin-amd64 -o asoctl`
+``` bash
+$ curl -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-darwin-amd64.gz -o asoctl.gz
+$ gunzip asoctl.gz
+```
-ARM64:
+Download for ARM64:
-`curl -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-darwin-arm64 -o asoctl`
+``` bash
+$ curl -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-darwin-arm64.gz -o asoctl.gz
+$ gunzip asoctl.gz
+```
Make the binary executable:
-`chmod +x ./asoctl`
+``` bash
+$ chmod +x ./asoctl
+```
Move the binary to your PATH:
-`sudo mv ./asoctl /usr/local/bin/asoctl`
+``` bash
+$ sudo mv ./asoctl /usr/local/bin/asoctl
+```
{{% /tab %}}
{{% tab header="Windows" %}}
-Download the latest release to your current directory:
+Using a PowerShell command prompt, download the latest release to your current directory:
-`curl.exe -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-windows-amd64.exe -o asoctl.exe`
+``` Powershell
+$ curl.exe -L https://github.com/Azure/azure-service-operator/releases/latest/download/asoctl-windows-amd64.zip -o asoctl.zip
+$ Expand-Archive asoctl.zip . -Force
+```
Append that directory to your `PATH` if desired.
diff --git a/v2/README.md b/v2/README.md
index 15dcb3e7dc..2dd4bc5944 100644
--- a/v2/README.md
+++ b/v2/README.md
@@ -82,14 +82,14 @@ ASO supports more than 150 different Azure resources, with more added every rele
AZURE_CLIENT_SECRET= # This is the password from the service principal we created.
```
-3. Install [the latest **v2+** Helm chart](https://github.com/Azure/azure-service-operator/tree/main/charts):
+3. Install [the latest **v2+** Helm chart](https://github.com/Azure/azure-service-operator/tree/main/v2/charts):
```
helm repo add aso2 https://raw.githubusercontent.com/Azure/azure-service-operator/main/v2/charts
```
```
- helm upgrade --install --devel aso2 aso2/azure-service-operator \
+ helm upgrade --install aso2 aso2/azure-service-operator \
--create-namespace \
--namespace=azureserviceoperator-system \
--set azureSubscriptionID=$AZURE_SUBSCRIPTION_ID \
diff --git a/v2/api/containerservice/customizations/managed_cluster_extensions.go b/v2/api/containerservice/customizations/managed_cluster_extensions.go
index 748b1fb05c..f99932fb98 100644
--- a/v2/api/containerservice/customizations/managed_cluster_extensions.go
+++ b/v2/api/containerservice/customizations/managed_cluster_extensions.go
@@ -18,10 +18,11 @@ import (
"sigs.k8s.io/controller-runtime/pkg/conversion"
containerservice "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201storage"
- "github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
. "github.com/Azure/azure-service-operator/v2/internal/logging"
+
+ "github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
+ "github.com/Azure/azure-service-operator/v2/internal/resolver"
"github.com/Azure/azure-service-operator/v2/internal/set"
- "github.com/Azure/azure-service-operator/v2/internal/util/kubeclient"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/extensions"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/secrets"
@@ -142,7 +143,7 @@ func (ext *ManagedClusterExtension) PreReconcileCheck(
_ context.Context,
obj genruntime.MetaObject,
_ genruntime.MetaObject,
- _ kubeclient.Client,
+ _ *resolver.Resolver,
_ *genericarmclient.GenericClient,
_ logr.Logger,
_ extensions.PreReconcileCheckFunc,
diff --git a/v2/api/containerservice/customizations/managed_clusters_agent_pool_extensions.go b/v2/api/containerservice/customizations/managed_clusters_agent_pool_extensions.go
index 281e61afa3..5e9303a520 100644
--- a/v2/api/containerservice/customizations/managed_clusters_agent_pool_extensions.go
+++ b/v2/api/containerservice/customizations/managed_clusters_agent_pool_extensions.go
@@ -15,9 +15,10 @@ import (
"sigs.k8s.io/controller-runtime/pkg/conversion"
containerservice "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201storage"
+
"github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
+ "github.com/Azure/azure-service-operator/v2/internal/resolver"
"github.com/Azure/azure-service-operator/v2/internal/set"
- "github.com/Azure/azure-service-operator/v2/internal/util/kubeclient"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/extensions"
)
@@ -38,7 +39,7 @@ func (ext *ManagedClustersAgentPoolExtension) PreReconcileCheck(
_ context.Context,
obj genruntime.MetaObject,
owner genruntime.MetaObject,
- _ kubeclient.Client,
+ _ *resolver.Resolver,
_ *genericarmclient.GenericClient,
_ logr.Logger,
_ extensions.PreReconcileCheckFunc,
diff --git a/v2/api/containerservice/customizations/structure.txt b/v2/api/containerservice/customizations/structure.txt
index df2ae99ba2..4172f2b81a 100644
--- a/v2/api/containerservice/customizations/structure.txt
+++ b/v2/api/containerservice/customizations/structure.txt
@@ -1,4 +1,5 @@
// Code generated by azure-service-operator-codegen. DO NOT EDIT.
github.com/Azure/azure-service-operator/v2/api/containerservice/customizations
├── ManagedClusterExtension: Object (0 properties)
-└── ManagedClustersAgentPoolExtension: Object (0 properties)
+├── ManagedClustersAgentPoolExtension: Object (0 properties)
+└── TrustedAccessRoleBindingExtension: Object (0 properties)
diff --git a/v2/api/containerservice/customizations/trusted_access_role_binding_extension_types_gen.go b/v2/api/containerservice/customizations/trusted_access_role_binding_extension_types_gen.go
new file mode 100644
index 0000000000..e6c71d9ef0
--- /dev/null
+++ b/v2/api/containerservice/customizations/trusted_access_role_binding_extension_types_gen.go
@@ -0,0 +1,20 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package customizations
+
+import (
+ v1api20230202p "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview"
+ v1api20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202previewstorage"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime"
+)
+
+type TrustedAccessRoleBindingExtension struct {
+}
+
+// GetExtendedResources Returns the KubernetesResource slice for Resource versions
+func (extension *TrustedAccessRoleBindingExtension) GetExtendedResources() []genruntime.KubernetesResource {
+ return []genruntime.KubernetesResource{
+ &v1api20230202p.TrustedAccessRoleBinding{},
+ &v1api20230202ps.TrustedAccessRoleBinding{}}
+}
diff --git a/v2/api/containerservice/v1api20210501storage/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20210501storage/managed_cluster_types_gen.go
index 81ca40350d..0c700cbbb2 100644
--- a/v2/api/containerservice/v1api20210501storage/managed_cluster_types_gen.go
+++ b/v2/api/containerservice/v1api20210501storage/managed_cluster_types_gen.go
@@ -5320,6 +5320,13 @@ func (operator *ManagedClusterOperatorSpec) AssignProperties_From_ManagedCluster
// Clone the existing property bag
propertyBag := genruntime.NewPropertyBag(source.PropertyBag)
+ // ConfigMaps
+ if source.ConfigMaps != nil {
+ propertyBag.Add("ConfigMaps", *source.ConfigMaps)
+ } else {
+ propertyBag.Remove("ConfigMaps")
+ }
+
// Secrets
if source.Secrets != nil {
var secret ManagedClusterOperatorSecrets
@@ -5357,6 +5364,19 @@ func (operator *ManagedClusterOperatorSpec) AssignProperties_To_ManagedClusterOp
// Clone the existing property bag
propertyBag := genruntime.NewPropertyBag(operator.PropertyBag)
+ // ConfigMaps
+ if propertyBag.Contains("ConfigMaps") {
+ var configMap v1api20230201s.ManagedClusterOperatorConfigMaps
+ err := propertyBag.Pull("ConfigMaps", &configMap)
+ if err != nil {
+ return errors.Wrap(err, "pulling 'ConfigMaps' from propertyBag")
+ }
+
+ destination.ConfigMaps = &configMap
+ } else {
+ destination.ConfigMaps = nil
+ }
+
// Secrets
if operator.Secrets != nil {
var secret v1api20230201s.ManagedClusterOperatorSecrets
diff --git a/v2/api/containerservice/v1api20230201/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20230201/managed_cluster_types_gen.go
index f7cf5619c2..d63bac258c 100644
--- a/v2/api/containerservice/v1api20230201/managed_cluster_types_gen.go
+++ b/v2/api/containerservice/v1api20230201/managed_cluster_types_gen.go
@@ -4,16 +4,21 @@
package v1api20230201
import (
+ "context"
"fmt"
v1api20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201storage"
+ "github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
"github.com/Azure/azure-service-operator/v2/internal/reflecthelpers"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime/configmaps"
+ "github.com/go-logr/logr"
"github.com/pkg/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
kerrors "k8s.io/apimachinery/pkg/util/errors"
+ "sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/conversion"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)
@@ -102,6 +107,25 @@ func (cluster *ManagedCluster) InitializeSpec(status genruntime.ConvertibleStatu
return fmt.Errorf("expected Status of type ManagedCluster_STATUS but received %T instead", status)
}
+var _ genruntime.KubernetesExporter = &ManagedCluster{}
+
+// ExportKubernetesResources defines a resource which can create other resources in Kubernetes.
+func (cluster *ManagedCluster) ExportKubernetesResources(_ context.Context, _ genruntime.MetaObject, _ *genericarmclient.GenericClient, _ logr.Logger) ([]client.Object, error) {
+ collector := configmaps.NewCollector(cluster.Namespace)
+ if cluster.Spec.OperatorSpec != nil && cluster.Spec.OperatorSpec.ConfigMaps != nil {
+ if cluster.Status.OidcIssuerProfile != nil {
+ if cluster.Status.OidcIssuerProfile.IssuerURL != nil {
+ collector.AddValue(cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile, *cluster.Status.OidcIssuerProfile.IssuerURL)
+ }
+ }
+ }
+ result, err := collector.Values()
+ if err != nil {
+ return nil, err
+ }
+ return configmaps.SliceToClientObjectSlice(result), nil
+}
+
var _ genruntime.KubernetesResource = &ManagedCluster{}
// AzureName returns the Azure name of the resource
@@ -225,7 +249,7 @@ func (cluster *ManagedCluster) ValidateUpdate(old runtime.Object) error {
// createValidations validates the creation of the resource
func (cluster *ManagedCluster) createValidations() []func() error {
- return []func() error{cluster.validateResourceReferences, cluster.validateSecretDestinations}
+ return []func() error{cluster.validateResourceReferences, cluster.validateSecretDestinations, cluster.validateConfigMapDestinations}
}
// deleteValidations validates the deletion of the resource
@@ -243,7 +267,24 @@ func (cluster *ManagedCluster) updateValidations() []func(old runtime.Object) er
func(old runtime.Object) error {
return cluster.validateSecretDestinations()
},
+ func(old runtime.Object) error {
+ return cluster.validateConfigMapDestinations()
+ },
+ }
+}
+
+// validateConfigMapDestinations validates there are no colliding genruntime.ConfigMapDestinations's
+func (cluster *ManagedCluster) validateConfigMapDestinations() error {
+ if cluster.Spec.OperatorSpec == nil {
+ return nil
+ }
+ if cluster.Spec.OperatorSpec.ConfigMaps == nil {
+ return nil
+ }
+ toValidate := []*genruntime.ConfigMapDestination{
+ cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile,
}
+ return genruntime.ValidateConfigMapDestinations(toValidate)
}
// validateResourceReferences validates all resource references
@@ -10223,6 +10264,9 @@ func (profile *ManagedClusterOIDCIssuerProfile_STATUS) AssignProperties_To_Manag
// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure
type ManagedClusterOperatorSpec struct {
+ // ConfigMaps: configures where to place operator written ConfigMaps.
+ ConfigMaps *ManagedClusterOperatorConfigMaps `json:"configMaps,omitempty"`
+
// Secrets: configures where to place Azure generated secrets.
Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"`
}
@@ -10230,6 +10274,18 @@ type ManagedClusterOperatorSpec struct {
// AssignProperties_From_ManagedClusterOperatorSpec populates our ManagedClusterOperatorSpec from the provided source ManagedClusterOperatorSpec
func (operator *ManagedClusterOperatorSpec) AssignProperties_From_ManagedClusterOperatorSpec(source *v1api20230201s.ManagedClusterOperatorSpec) error {
+ // ConfigMaps
+ if source.ConfigMaps != nil {
+ var configMap ManagedClusterOperatorConfigMaps
+ err := configMap.AssignProperties_From_ManagedClusterOperatorConfigMaps(source.ConfigMaps)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps")
+ }
+ operator.ConfigMaps = &configMap
+ } else {
+ operator.ConfigMaps = nil
+ }
+
// Secrets
if source.Secrets != nil {
var secret ManagedClusterOperatorSecrets
@@ -10251,6 +10307,18 @@ func (operator *ManagedClusterOperatorSpec) AssignProperties_To_ManagedClusterOp
// Create a new property bag
propertyBag := genruntime.NewPropertyBag()
+ // ConfigMaps
+ if operator.ConfigMaps != nil {
+ var configMap v1api20230201s.ManagedClusterOperatorConfigMaps
+ err := operator.ConfigMaps.AssignProperties_To_ManagedClusterOperatorConfigMaps(&configMap)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps")
+ }
+ destination.ConfigMaps = &configMap
+ } else {
+ destination.ConfigMaps = nil
+ }
+
// Secrets
if operator.Secrets != nil {
var secret v1api20230201s.ManagedClusterOperatorSecrets
@@ -16572,6 +16640,51 @@ func (profile *ManagedClusterNATGatewayProfile_STATUS) AssignProperties_To_Manag
return nil
}
+type ManagedClusterOperatorConfigMaps struct {
+ // OIDCIssuerProfile: indicates where the OIDCIssuerProfile config map should be placed. If omitted, no config map will be
+ // created.
+ OIDCIssuerProfile *genruntime.ConfigMapDestination `json:"oidcIssuerProfile,omitempty"`
+}
+
+// AssignProperties_From_ManagedClusterOperatorConfigMaps populates our ManagedClusterOperatorConfigMaps from the provided source ManagedClusterOperatorConfigMaps
+func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_From_ManagedClusterOperatorConfigMaps(source *v1api20230201s.ManagedClusterOperatorConfigMaps) error {
+
+ // OIDCIssuerProfile
+ if source.OIDCIssuerProfile != nil {
+ oidcIssuerProfile := source.OIDCIssuerProfile.Copy()
+ maps.OIDCIssuerProfile = &oidcIssuerProfile
+ } else {
+ maps.OIDCIssuerProfile = nil
+ }
+
+ // No error
+ return nil
+}
+
+// AssignProperties_To_ManagedClusterOperatorConfigMaps populates the provided destination ManagedClusterOperatorConfigMaps from our ManagedClusterOperatorConfigMaps
+func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_To_ManagedClusterOperatorConfigMaps(destination *v1api20230201s.ManagedClusterOperatorConfigMaps) error {
+ // Create a new property bag
+ propertyBag := genruntime.NewPropertyBag()
+
+ // OIDCIssuerProfile
+ if maps.OIDCIssuerProfile != nil {
+ oidcIssuerProfile := maps.OIDCIssuerProfile.Copy()
+ destination.OIDCIssuerProfile = &oidcIssuerProfile
+ } else {
+ destination.OIDCIssuerProfile = nil
+ }
+
+ // Update the property bag
+ if len(propertyBag) > 0 {
+ destination.PropertyBag = propertyBag
+ } else {
+ destination.PropertyBag = nil
+ }
+
+ // No error
+ return nil
+}
+
type ManagedClusterOperatorSecrets struct {
// AdminCredentials: indicates where the AdminCredentials secret should be placed. If omitted, the secret will not be
// retrieved from Azure.
diff --git a/v2/api/containerservice/v1api20230201/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20230201/managed_cluster_types_gen_test.go
index 0d4957fab1..3443c18647 100644
--- a/v2/api/containerservice/v1api20230201/managed_cluster_types_gen_test.go
+++ b/v2/api/containerservice/v1api20230201/managed_cluster_types_gen_test.go
@@ -3340,6 +3340,7 @@ func ManagedClusterOperatorSpecGenerator() gopter.Gen {
// AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec is a factory method for creating gopter generators
func AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(gens map[string]gopter.Gen) {
+ gens["ConfigMaps"] = gen.PtrOf(ManagedClusterOperatorConfigMapsGenerator())
gens["Secrets"] = gen.PtrOf(ManagedClusterOperatorSecretsGenerator())
}
@@ -6984,6 +6985,103 @@ func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens
gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_STATUSGenerator())
}
+func Test_ManagedClusterOperatorConfigMaps_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MaxSize = 10
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip from ManagedClusterOperatorConfigMaps to ManagedClusterOperatorConfigMaps via AssignProperties_To_ManagedClusterOperatorConfigMaps & AssignProperties_From_ManagedClusterOperatorConfigMaps returns original",
+ prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout))
+}
+
+// RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps tests if a specific instance of ManagedClusterOperatorConfigMaps can be assigned to v1api20230201storage and back losslessly
+func RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string {
+ // Copy subject to make sure assignment doesn't modify it
+ copied := subject.DeepCopy()
+
+ // Use AssignPropertiesTo() for the first stage of conversion
+ var other v1api20230201s.ManagedClusterOperatorConfigMaps
+ err := copied.AssignProperties_To_ManagedClusterOperatorConfigMaps(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Use AssignPropertiesFrom() to convert back to our original type
+ var actual ManagedClusterOperatorConfigMaps
+ err = actual.AssignProperties_From_ManagedClusterOperatorConfigMaps(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for a match
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+func Test_ManagedClusterOperatorConfigMaps_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 100
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusterOperatorConfigMaps via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusterOperatorConfigMaps runs a test to see if a specific instance of ManagedClusterOperatorConfigMaps round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusterOperatorConfigMaps
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusterOperatorConfigMaps instances for property testing - lazily instantiated by
+// ManagedClusterOperatorConfigMapsGenerator()
+var managedClusterOperatorConfigMapsGenerator gopter.Gen
+
+// ManagedClusterOperatorConfigMapsGenerator returns a generator of ManagedClusterOperatorConfigMaps instances for property testing.
+func ManagedClusterOperatorConfigMapsGenerator() gopter.Gen {
+ if managedClusterOperatorConfigMapsGenerator != nil {
+ return managedClusterOperatorConfigMapsGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ managedClusterOperatorConfigMapsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorConfigMaps{}), generators)
+
+ return managedClusterOperatorConfigMapsGenerator
+}
+
func Test_ManagedClusterOperatorSecrets_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
t.Parallel()
parameters := gopter.DefaultTestParameters()
diff --git a/v2/api/containerservice/v1api20230201/structure.txt b/v2/api/containerservice/v1api20230201/structure.txt
index fc20d1f0f0..e45ac7877c 100644
--- a/v2/api/containerservice/v1api20230201/structure.txt
+++ b/v2/api/containerservice/v1api20230201/structure.txt
@@ -288,7 +288,9 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201
│ │ ├── NodeResourceGroup: *string
│ │ ├── OidcIssuerProfile: *Object (1 property)
│ │ │ └── Enabled: *bool
-│ │ ├── OperatorSpec: *Object (1 property)
+│ │ ├── OperatorSpec: *Object (2 properties)
+│ │ │ ├── ConfigMaps: *Object (1 property)
+│ │ │ │ └── OIDCIssuerProfile: *genruntime.ConfigMapDestination
│ │ │ └── Secrets: *Object (2 properties)
│ │ │ ├── AdminCredentials: *genruntime.SecretDestination
│ │ │ └── UserCredentials: *genruntime.SecretDestination
diff --git a/v2/api/containerservice/v1api20230201/zz_generated.deepcopy.go b/v2/api/containerservice/v1api20230201/zz_generated.deepcopy.go
index b5c5017a8c..ff59db4d43 100644
--- a/v2/api/containerservice/v1api20230201/zz_generated.deepcopy.go
+++ b/v2/api/containerservice/v1api20230201/zz_generated.deepcopy.go
@@ -4798,6 +4798,26 @@ func (in *ManagedClusterOIDCIssuerProfile_STATUS_ARM) DeepCopy() *ManagedCluster
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusterOperatorConfigMaps) DeepCopyInto(out *ManagedClusterOperatorConfigMaps) {
+ *out = *in
+ if in.OIDCIssuerProfile != nil {
+ in, out := &in.OIDCIssuerProfile, &out.OIDCIssuerProfile
+ *out = new(genruntime.ConfigMapDestination)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorConfigMaps.
+func (in *ManagedClusterOperatorConfigMaps) DeepCopy() *ManagedClusterOperatorConfigMaps {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusterOperatorConfigMaps)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedClusterOperatorSecrets) DeepCopyInto(out *ManagedClusterOperatorSecrets) {
*out = *in
@@ -4826,6 +4846,11 @@ func (in *ManagedClusterOperatorSecrets) DeepCopy() *ManagedClusterOperatorSecre
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedClusterOperatorSpec) DeepCopyInto(out *ManagedClusterOperatorSpec) {
*out = *in
+ if in.ConfigMaps != nil {
+ in, out := &in.ConfigMaps, &out.ConfigMaps
+ *out = new(ManagedClusterOperatorConfigMaps)
+ (*in).DeepCopyInto(*out)
+ }
if in.Secrets != nil {
in, out := &in.Secrets, &out.Secrets
*out = new(ManagedClusterOperatorSecrets)
diff --git a/v2/api/containerservice/v1api20230201storage/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20230201storage/managed_cluster_types_gen.go
index 2466e8b476..4ef3cfeea2 100644
--- a/v2/api/containerservice/v1api20230201storage/managed_cluster_types_gen.go
+++ b/v2/api/containerservice/v1api20230201storage/managed_cluster_types_gen.go
@@ -4,11 +4,16 @@
package v1api20230201storage
import (
+ "context"
+ "github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime/configmaps"
+ "github.com/go-logr/logr"
"github.com/pkg/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
+ "sigs.k8s.io/controller-runtime/pkg/client"
)
// +kubebuilder:rbac:groups=containerservice.azure.com,resources=managedclusters,verbs=get;list;watch;create;update;patch;delete
@@ -44,6 +49,25 @@ func (cluster *ManagedCluster) SetConditions(conditions conditions.Conditions) {
cluster.Status.Conditions = conditions
}
+var _ genruntime.KubernetesExporter = &ManagedCluster{}
+
+// ExportKubernetesResources defines a resource which can create other resources in Kubernetes.
+func (cluster *ManagedCluster) ExportKubernetesResources(_ context.Context, _ genruntime.MetaObject, _ *genericarmclient.GenericClient, _ logr.Logger) ([]client.Object, error) {
+ collector := configmaps.NewCollector(cluster.Namespace)
+ if cluster.Spec.OperatorSpec != nil && cluster.Spec.OperatorSpec.ConfigMaps != nil {
+ if cluster.Status.OidcIssuerProfile != nil {
+ if cluster.Status.OidcIssuerProfile.IssuerURL != nil {
+ collector.AddValue(cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile, *cluster.Status.OidcIssuerProfile.IssuerURL)
+ }
+ }
+ }
+ result, err := collector.Values()
+ if err != nil {
+ return nil, err
+ }
+ return configmaps.SliceToClientObjectSlice(result), nil
+}
+
var _ genruntime.KubernetesResource = &ManagedCluster{}
// AzureName returns the Azure name of the resource
@@ -621,8 +645,9 @@ type ManagedClusterOIDCIssuerProfile_STATUS struct {
// Storage version of v1api20230201.ManagedClusterOperatorSpec
// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure
type ManagedClusterOperatorSpec struct {
- PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
- Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"`
+ ConfigMaps *ManagedClusterOperatorConfigMaps `json:"configMaps,omitempty"`
+ PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
+ Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"`
}
// Storage version of v1api20230201.ManagedClusterPodIdentityProfile
@@ -970,6 +995,12 @@ type ManagedClusterNATGatewayProfile_STATUS struct {
PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
}
+// Storage version of v1api20230201.ManagedClusterOperatorConfigMaps
+type ManagedClusterOperatorConfigMaps struct {
+ OIDCIssuerProfile *genruntime.ConfigMapDestination `json:"oidcIssuerProfile,omitempty"`
+ PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
+}
+
// Storage version of v1api20230201.ManagedClusterOperatorSecrets
type ManagedClusterOperatorSecrets struct {
AdminCredentials *genruntime.SecretDestination `json:"adminCredentials,omitempty"`
diff --git a/v2/api/containerservice/v1api20230201storage/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20230201storage/managed_cluster_types_gen_test.go
index 63843c1f11..e910940211 100644
--- a/v2/api/containerservice/v1api20230201storage/managed_cluster_types_gen_test.go
+++ b/v2/api/containerservice/v1api20230201storage/managed_cluster_types_gen_test.go
@@ -2083,6 +2083,7 @@ func ManagedClusterOperatorSpecGenerator() gopter.Gen {
// AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec is a factory method for creating gopter generators
func AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(gens map[string]gopter.Gen) {
+ gens["ConfigMaps"] = gen.PtrOf(ManagedClusterOperatorConfigMapsGenerator())
gens["Secrets"] = gen.PtrOf(ManagedClusterOperatorSecretsGenerator())
}
@@ -4325,6 +4326,61 @@ func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens
gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_STATUSGenerator())
}
+func Test_ManagedClusterOperatorConfigMaps_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 100
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusterOperatorConfigMaps via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusterOperatorConfigMaps runs a test to see if a specific instance of ManagedClusterOperatorConfigMaps round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusterOperatorConfigMaps
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusterOperatorConfigMaps instances for property testing - lazily instantiated by
+// ManagedClusterOperatorConfigMapsGenerator()
+var managedClusterOperatorConfigMapsGenerator gopter.Gen
+
+// ManagedClusterOperatorConfigMapsGenerator returns a generator of ManagedClusterOperatorConfigMaps instances for property testing.
+func ManagedClusterOperatorConfigMapsGenerator() gopter.Gen {
+ if managedClusterOperatorConfigMapsGenerator != nil {
+ return managedClusterOperatorConfigMapsGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ managedClusterOperatorConfigMapsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorConfigMaps{}), generators)
+
+ return managedClusterOperatorConfigMapsGenerator
+}
+
func Test_ManagedClusterOperatorSecrets_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
t.Parallel()
parameters := gopter.DefaultTestParameters()
diff --git a/v2/api/containerservice/v1api20230201storage/structure.txt b/v2/api/containerservice/v1api20230201storage/structure.txt
index 92b591fce2..85cff243f2 100644
--- a/v2/api/containerservice/v1api20230201storage/structure.txt
+++ b/v2/api/containerservice/v1api20230201storage/structure.txt
@@ -241,7 +241,10 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201sto
│ │ ├── OidcIssuerProfile: *Object (2 properties)
│ │ │ ├── Enabled: *bool
│ │ │ └── PropertyBag: genruntime.PropertyBag
-│ │ ├── OperatorSpec: *Object (2 properties)
+│ │ ├── OperatorSpec: *Object (3 properties)
+│ │ │ ├── ConfigMaps: *Object (2 properties)
+│ │ │ │ ├── OIDCIssuerProfile: *genruntime.ConfigMapDestination
+│ │ │ │ └── PropertyBag: genruntime.PropertyBag
│ │ │ ├── PropertyBag: genruntime.PropertyBag
│ │ │ └── Secrets: *Object (3 properties)
│ │ │ ├── AdminCredentials: *genruntime.SecretDestination
diff --git a/v2/api/containerservice/v1api20230201storage/zz_generated.deepcopy.go b/v2/api/containerservice/v1api20230201storage/zz_generated.deepcopy.go
index 7ba601fd3e..49621a4943 100644
--- a/v2/api/containerservice/v1api20230201storage/zz_generated.deepcopy.go
+++ b/v2/api/containerservice/v1api20230201storage/zz_generated.deepcopy.go
@@ -2606,6 +2606,33 @@ func (in *ManagedClusterOIDCIssuerProfile_STATUS) DeepCopy() *ManagedClusterOIDC
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusterOperatorConfigMaps) DeepCopyInto(out *ManagedClusterOperatorConfigMaps) {
+ *out = *in
+ if in.OIDCIssuerProfile != nil {
+ in, out := &in.OIDCIssuerProfile, &out.OIDCIssuerProfile
+ *out = new(genruntime.ConfigMapDestination)
+ **out = **in
+ }
+ if in.PropertyBag != nil {
+ in, out := &in.PropertyBag, &out.PropertyBag
+ *out = make(genruntime.PropertyBag, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorConfigMaps.
+func (in *ManagedClusterOperatorConfigMaps) DeepCopy() *ManagedClusterOperatorConfigMaps {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusterOperatorConfigMaps)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedClusterOperatorSecrets) DeepCopyInto(out *ManagedClusterOperatorSecrets) {
*out = *in
@@ -2641,6 +2668,11 @@ func (in *ManagedClusterOperatorSecrets) DeepCopy() *ManagedClusterOperatorSecre
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedClusterOperatorSpec) DeepCopyInto(out *ManagedClusterOperatorSpec) {
*out = *in
+ if in.ConfigMaps != nil {
+ in, out := &in.ConfigMaps, &out.ConfigMaps
+ *out = new(ManagedClusterOperatorConfigMaps)
+ (*in).DeepCopyInto(*out)
+ }
if in.PropertyBag != nil {
in, out := &in.PropertyBag, &out.PropertyBag
*out = make(genruntime.PropertyBag, len(*in))
diff --git a/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen.go
index 58f7fbd475..fa843bf05e 100644
--- a/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen.go
+++ b/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen.go
@@ -4,16 +4,21 @@
package v1api20230202preview
import (
+ "context"
"fmt"
v1api20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202previewstorage"
+ "github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
"github.com/Azure/azure-service-operator/v2/internal/reflecthelpers"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime/configmaps"
+ "github.com/go-logr/logr"
"github.com/pkg/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
kerrors "k8s.io/apimachinery/pkg/util/errors"
+ "sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/conversion"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)
@@ -105,6 +110,25 @@ func (cluster *ManagedCluster) defaultAzureName() {
// defaultImpl applies the code generated defaults to the ManagedCluster resource
func (cluster *ManagedCluster) defaultImpl() { cluster.defaultAzureName() }
+var _ genruntime.KubernetesExporter = &ManagedCluster{}
+
+// ExportKubernetesResources defines a resource which can create other resources in Kubernetes.
+func (cluster *ManagedCluster) ExportKubernetesResources(_ context.Context, _ genruntime.MetaObject, _ *genericarmclient.GenericClient, _ logr.Logger) ([]client.Object, error) {
+ collector := configmaps.NewCollector(cluster.Namespace)
+ if cluster.Spec.OperatorSpec != nil && cluster.Spec.OperatorSpec.ConfigMaps != nil {
+ if cluster.Status.OidcIssuerProfile != nil {
+ if cluster.Status.OidcIssuerProfile.IssuerURL != nil {
+ collector.AddValue(cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile, *cluster.Status.OidcIssuerProfile.IssuerURL)
+ }
+ }
+ }
+ result, err := collector.Values()
+ if err != nil {
+ return nil, err
+ }
+ return configmaps.SliceToClientObjectSlice(result), nil
+}
+
var _ genruntime.KubernetesResource = &ManagedCluster{}
// AzureName returns the Azure name of the resource
@@ -228,7 +252,7 @@ func (cluster *ManagedCluster) ValidateUpdate(old runtime.Object) error {
// createValidations validates the creation of the resource
func (cluster *ManagedCluster) createValidations() []func() error {
- return []func() error{cluster.validateResourceReferences, cluster.validateSecretDestinations}
+ return []func() error{cluster.validateResourceReferences, cluster.validateSecretDestinations, cluster.validateConfigMapDestinations}
}
// deleteValidations validates the deletion of the resource
@@ -246,7 +270,24 @@ func (cluster *ManagedCluster) updateValidations() []func(old runtime.Object) er
func(old runtime.Object) error {
return cluster.validateSecretDestinations()
},
+ func(old runtime.Object) error {
+ return cluster.validateConfigMapDestinations()
+ },
+ }
+}
+
+// validateConfigMapDestinations validates there are no colliding genruntime.ConfigMapDestinations's
+func (cluster *ManagedCluster) validateConfigMapDestinations() error {
+ if cluster.Spec.OperatorSpec == nil {
+ return nil
+ }
+ if cluster.Spec.OperatorSpec.ConfigMaps == nil {
+ return nil
+ }
+ toValidate := []*genruntime.ConfigMapDestination{
+ cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile,
}
+ return genruntime.ValidateConfigMapDestinations(toValidate)
}
// validateResourceReferences validates all resource references
@@ -11326,6 +11367,9 @@ func (profile *ManagedClusterOIDCIssuerProfile_STATUS) AssignProperties_To_Manag
// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure
type ManagedClusterOperatorSpec struct {
+ // ConfigMaps: configures where to place operator written ConfigMaps.
+ ConfigMaps *ManagedClusterOperatorConfigMaps `json:"configMaps,omitempty"`
+
// Secrets: configures where to place Azure generated secrets.
Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"`
}
@@ -11333,6 +11377,18 @@ type ManagedClusterOperatorSpec struct {
// AssignProperties_From_ManagedClusterOperatorSpec populates our ManagedClusterOperatorSpec from the provided source ManagedClusterOperatorSpec
func (operator *ManagedClusterOperatorSpec) AssignProperties_From_ManagedClusterOperatorSpec(source *v1api20230202ps.ManagedClusterOperatorSpec) error {
+ // ConfigMaps
+ if source.ConfigMaps != nil {
+ var configMap ManagedClusterOperatorConfigMaps
+ err := configMap.AssignProperties_From_ManagedClusterOperatorConfigMaps(source.ConfigMaps)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps")
+ }
+ operator.ConfigMaps = &configMap
+ } else {
+ operator.ConfigMaps = nil
+ }
+
// Secrets
if source.Secrets != nil {
var secret ManagedClusterOperatorSecrets
@@ -11354,6 +11410,18 @@ func (operator *ManagedClusterOperatorSpec) AssignProperties_To_ManagedClusterOp
// Create a new property bag
propertyBag := genruntime.NewPropertyBag()
+ // ConfigMaps
+ if operator.ConfigMaps != nil {
+ var configMap v1api20230202ps.ManagedClusterOperatorConfigMaps
+ err := operator.ConfigMaps.AssignProperties_To_ManagedClusterOperatorConfigMaps(&configMap)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps")
+ }
+ destination.ConfigMaps = &configMap
+ } else {
+ destination.ConfigMaps = nil
+ }
+
// Secrets
if operator.Secrets != nil {
var secret v1api20230202ps.ManagedClusterOperatorSecrets
@@ -18281,6 +18349,51 @@ const (
ManagedClusterNodeResourceGroupProfile_RestrictionLevel_STATUS_Unrestricted = ManagedClusterNodeResourceGroupProfile_RestrictionLevel_STATUS("Unrestricted")
)
+type ManagedClusterOperatorConfigMaps struct {
+ // OIDCIssuerProfile: indicates where the OIDCIssuerProfile config map should be placed. If omitted, no config map will be
+ // created.
+ OIDCIssuerProfile *genruntime.ConfigMapDestination `json:"oidcIssuerProfile,omitempty"`
+}
+
+// AssignProperties_From_ManagedClusterOperatorConfigMaps populates our ManagedClusterOperatorConfigMaps from the provided source ManagedClusterOperatorConfigMaps
+func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_From_ManagedClusterOperatorConfigMaps(source *v1api20230202ps.ManagedClusterOperatorConfigMaps) error {
+
+ // OIDCIssuerProfile
+ if source.OIDCIssuerProfile != nil {
+ oidcIssuerProfile := source.OIDCIssuerProfile.Copy()
+ maps.OIDCIssuerProfile = &oidcIssuerProfile
+ } else {
+ maps.OIDCIssuerProfile = nil
+ }
+
+ // No error
+ return nil
+}
+
+// AssignProperties_To_ManagedClusterOperatorConfigMaps populates the provided destination ManagedClusterOperatorConfigMaps from our ManagedClusterOperatorConfigMaps
+func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_To_ManagedClusterOperatorConfigMaps(destination *v1api20230202ps.ManagedClusterOperatorConfigMaps) error {
+ // Create a new property bag
+ propertyBag := genruntime.NewPropertyBag()
+
+ // OIDCIssuerProfile
+ if maps.OIDCIssuerProfile != nil {
+ oidcIssuerProfile := maps.OIDCIssuerProfile.Copy()
+ destination.OIDCIssuerProfile = &oidcIssuerProfile
+ } else {
+ destination.OIDCIssuerProfile = nil
+ }
+
+ // Update the property bag
+ if len(propertyBag) > 0 {
+ destination.PropertyBag = propertyBag
+ } else {
+ destination.PropertyBag = nil
+ }
+
+ // No error
+ return nil
+}
+
type ManagedClusterOperatorSecrets struct {
// AdminCredentials: indicates where the AdminCredentials secret should be placed. If omitted, the secret will not be
// retrieved from Azure.
diff --git a/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen_test.go
index 9667ceff65..c926911e0d 100644
--- a/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen_test.go
+++ b/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen_test.go
@@ -4377,6 +4377,7 @@ func ManagedClusterOperatorSpecGenerator() gopter.Gen {
// AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec is a factory method for creating gopter generators
func AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(gens map[string]gopter.Gen) {
+ gens["ConfigMaps"] = gen.PtrOf(ManagedClusterOperatorConfigMapsGenerator())
gens["Secrets"] = gen.PtrOf(ManagedClusterOperatorSecretsGenerator())
}
@@ -8952,6 +8953,103 @@ func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens
gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_STATUSGenerator())
}
+func Test_ManagedClusterOperatorConfigMaps_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MaxSize = 10
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip from ManagedClusterOperatorConfigMaps to ManagedClusterOperatorConfigMaps via AssignProperties_To_ManagedClusterOperatorConfigMaps & AssignProperties_From_ManagedClusterOperatorConfigMaps returns original",
+ prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout))
+}
+
+// RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps tests if a specific instance of ManagedClusterOperatorConfigMaps can be assigned to v1api20230202previewstorage and back losslessly
+func RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string {
+ // Copy subject to make sure assignment doesn't modify it
+ copied := subject.DeepCopy()
+
+ // Use AssignPropertiesTo() for the first stage of conversion
+ var other v1api20230202ps.ManagedClusterOperatorConfigMaps
+ err := copied.AssignProperties_To_ManagedClusterOperatorConfigMaps(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Use AssignPropertiesFrom() to convert back to our original type
+ var actual ManagedClusterOperatorConfigMaps
+ err = actual.AssignProperties_From_ManagedClusterOperatorConfigMaps(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for a match
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+func Test_ManagedClusterOperatorConfigMaps_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 100
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusterOperatorConfigMaps via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusterOperatorConfigMaps runs a test to see if a specific instance of ManagedClusterOperatorConfigMaps round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusterOperatorConfigMaps
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusterOperatorConfigMaps instances for property testing - lazily instantiated by
+// ManagedClusterOperatorConfigMapsGenerator()
+var managedClusterOperatorConfigMapsGenerator gopter.Gen
+
+// ManagedClusterOperatorConfigMapsGenerator returns a generator of ManagedClusterOperatorConfigMaps instances for property testing.
+func ManagedClusterOperatorConfigMapsGenerator() gopter.Gen {
+ if managedClusterOperatorConfigMapsGenerator != nil {
+ return managedClusterOperatorConfigMapsGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ managedClusterOperatorConfigMapsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorConfigMaps{}), generators)
+
+ return managedClusterOperatorConfigMapsGenerator
+}
+
func Test_ManagedClusterOperatorSecrets_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
t.Parallel()
parameters := gopter.DefaultTestParameters()
diff --git a/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_spec_arm_types_gen.go b/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_spec_arm_types_gen.go
new file mode 100644
index 0000000000..63f99c841e
--- /dev/null
+++ b/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_spec_arm_types_gen.go
@@ -0,0 +1,38 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package v1api20230202preview
+
+import "github.com/Azure/azure-service-operator/v2/pkg/genruntime"
+
+type ManagedClusters_TrustedAccessRoleBinding_Spec_ARM struct {
+ Name string `json:"name,omitempty"`
+
+ // Properties: Properties for trusted access role binding
+ Properties *TrustedAccessRoleBindingProperties_ARM `json:"properties,omitempty"`
+}
+
+var _ genruntime.ARMResourceSpec = &ManagedClusters_TrustedAccessRoleBinding_Spec_ARM{}
+
+// GetAPIVersion returns the ARM API version of the resource. This is always "2023-02-02-preview"
+func (binding ManagedClusters_TrustedAccessRoleBinding_Spec_ARM) GetAPIVersion() string {
+ return string(APIVersion_Value)
+}
+
+// GetName returns the Name of the resource
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec_ARM) GetName() string {
+ return binding.Name
+}
+
+// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec_ARM) GetType() string {
+ return "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
+}
+
+// Properties for trusted access role binding
+type TrustedAccessRoleBindingProperties_ARM struct {
+ // Roles: A list of roles to bind, each item is a resource type qualified role name. For example:
+ // 'Microsoft.MachineLearningServices/workspaces/reader'.
+ Roles []string `json:"roles,omitempty"`
+ SourceResourceId *string `json:"sourceResourceId,omitempty"`
+}
diff --git a/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_spec_arm_types_gen_test.go b/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_spec_arm_types_gen_test.go
new file mode 100644
index 0000000000..19c2419092
--- /dev/null
+++ b/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_spec_arm_types_gen_test.go
@@ -0,0 +1,155 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package v1api20230202preview
+
+import (
+ "encoding/json"
+ "github.com/google/go-cmp/cmp"
+ "github.com/google/go-cmp/cmp/cmpopts"
+ "github.com/kr/pretty"
+ "github.com/kylelemons/godebug/diff"
+ "github.com/leanovate/gopter"
+ "github.com/leanovate/gopter/gen"
+ "github.com/leanovate/gopter/prop"
+ "os"
+ "reflect"
+ "testing"
+)
+
+func Test_ManagedClusters_TrustedAccessRoleBinding_Spec_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 80
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusters_TrustedAccessRoleBinding_Spec_ARM via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec_ARM, ManagedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec_ARM runs a test to see if a specific instance of ManagedClusters_TrustedAccessRoleBinding_Spec_ARM round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec_ARM(subject ManagedClusters_TrustedAccessRoleBinding_Spec_ARM) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusters_TrustedAccessRoleBinding_Spec_ARM
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusters_TrustedAccessRoleBinding_Spec_ARM instances for property testing - lazily instantiated
+// by ManagedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator()
+var managedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator gopter.Gen
+
+// ManagedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator returns a generator of ManagedClusters_TrustedAccessRoleBinding_Spec_ARM instances for property testing.
+// We first initialize managedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator with a simplified generator based on the
+// fields with primitive types then replacing it with a more complex one that also handles complex fields
+// to ensure any cycles in the object graph properly terminate.
+func ManagedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator() gopter.Gen {
+ if managedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator != nil {
+ return managedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec_ARM(generators)
+ managedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_Spec_ARM{}), generators)
+
+ // The above call to gen.Struct() captures the map, so create a new one
+ generators = make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec_ARM(generators)
+ AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec_ARM(generators)
+ managedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_Spec_ARM{}), generators)
+
+ return managedClusters_TrustedAccessRoleBinding_Spec_ARMGenerator
+}
+
+// AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec_ARM is a factory method for creating gopter generators
+func AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec_ARM(gens map[string]gopter.Gen) {
+ gens["Name"] = gen.AlphaString()
+}
+
+// AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec_ARM is a factory method for creating gopter generators
+func AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec_ARM(gens map[string]gopter.Gen) {
+ gens["Properties"] = gen.PtrOf(TrustedAccessRoleBindingProperties_ARMGenerator())
+}
+
+func Test_TrustedAccessRoleBindingProperties_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 100
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of TrustedAccessRoleBindingProperties_ARM via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForTrustedAccessRoleBindingProperties_ARM, TrustedAccessRoleBindingProperties_ARMGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForTrustedAccessRoleBindingProperties_ARM runs a test to see if a specific instance of TrustedAccessRoleBindingProperties_ARM round trips to JSON and back losslessly
+func RunJSONSerializationTestForTrustedAccessRoleBindingProperties_ARM(subject TrustedAccessRoleBindingProperties_ARM) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual TrustedAccessRoleBindingProperties_ARM
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of TrustedAccessRoleBindingProperties_ARM instances for property testing - lazily instantiated by
+// TrustedAccessRoleBindingProperties_ARMGenerator()
+var trustedAccessRoleBindingProperties_ARMGenerator gopter.Gen
+
+// TrustedAccessRoleBindingProperties_ARMGenerator returns a generator of TrustedAccessRoleBindingProperties_ARM instances for property testing.
+func TrustedAccessRoleBindingProperties_ARMGenerator() gopter.Gen {
+ if trustedAccessRoleBindingProperties_ARMGenerator != nil {
+ return trustedAccessRoleBindingProperties_ARMGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForTrustedAccessRoleBindingProperties_ARM(generators)
+ trustedAccessRoleBindingProperties_ARMGenerator = gen.Struct(reflect.TypeOf(TrustedAccessRoleBindingProperties_ARM{}), generators)
+
+ return trustedAccessRoleBindingProperties_ARMGenerator
+}
+
+// AddIndependentPropertyGeneratorsForTrustedAccessRoleBindingProperties_ARM is a factory method for creating gopter generators
+func AddIndependentPropertyGeneratorsForTrustedAccessRoleBindingProperties_ARM(gens map[string]gopter.Gen) {
+ gens["Roles"] = gen.SliceOf(gen.AlphaString())
+ gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString())
+}
diff --git a/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_status_arm_types_gen.go b/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_status_arm_types_gen.go
new file mode 100644
index 0000000000..0811232633
--- /dev/null
+++ b/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_status_arm_types_gen.go
@@ -0,0 +1,45 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package v1api20230202preview
+
+type ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM struct {
+ // Id: Fully qualified resource ID for the resource. Ex -
+ // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
+ Id *string `json:"id,omitempty"`
+
+ // Name: The name of the resource
+ Name *string `json:"name,omitempty"`
+
+ // Properties: Properties for trusted access role binding
+ Properties *TrustedAccessRoleBindingProperties_STATUS_ARM `json:"properties,omitempty"`
+
+ // SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ SystemData *SystemData_STATUS_ARM `json:"systemData,omitempty"`
+
+ // Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
+ Type *string `json:"type,omitempty"`
+}
+
+// Properties for trusted access role binding
+type TrustedAccessRoleBindingProperties_STATUS_ARM struct {
+ // ProvisioningState: The current provisioning state of trusted access role binding.
+ ProvisioningState *TrustedAccessRoleBindingProperties_ProvisioningState_STATUS `json:"provisioningState,omitempty"`
+
+ // Roles: A list of roles to bind, each item is a resource type qualified role name. For example:
+ // 'Microsoft.MachineLearningServices/workspaces/reader'.
+ Roles []string `json:"roles,omitempty"`
+
+ // SourceResourceId: The ARM resource ID of source resource that trusted access is configured for.
+ SourceResourceId *string `json:"sourceResourceId,omitempty"`
+}
+
+type TrustedAccessRoleBindingProperties_ProvisioningState_STATUS string
+
+const (
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Canceled = TrustedAccessRoleBindingProperties_ProvisioningState_STATUS("Canceled")
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Deleting = TrustedAccessRoleBindingProperties_ProvisioningState_STATUS("Deleting")
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Failed = TrustedAccessRoleBindingProperties_ProvisioningState_STATUS("Failed")
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Succeeded = TrustedAccessRoleBindingProperties_ProvisioningState_STATUS("Succeeded")
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Updating = TrustedAccessRoleBindingProperties_ProvisioningState_STATUS("Updating")
+)
diff --git a/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_status_arm_types_gen_test.go b/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_status_arm_types_gen_test.go
new file mode 100644
index 0000000000..2493aee0b6
--- /dev/null
+++ b/v2/api/containerservice/v1api20230202preview/managed_clusters_trusted_access_role_binding_status_arm_types_gen_test.go
@@ -0,0 +1,164 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package v1api20230202preview
+
+import (
+ "encoding/json"
+ "github.com/google/go-cmp/cmp"
+ "github.com/google/go-cmp/cmp/cmpopts"
+ "github.com/kr/pretty"
+ "github.com/kylelemons/godebug/diff"
+ "github.com/leanovate/gopter"
+ "github.com/leanovate/gopter/gen"
+ "github.com/leanovate/gopter/prop"
+ "os"
+ "reflect"
+ "testing"
+)
+
+func Test_ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 80
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM, ManagedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM runs a test to see if a specific instance of ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM(subject ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM instances for property testing - lazily instantiated
+// by ManagedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator()
+var managedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator gopter.Gen
+
+// ManagedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator returns a generator of ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM instances for property testing.
+// We first initialize managedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator with a simplified generator based on the
+// fields with primitive types then replacing it with a more complex one that also handles complex fields
+// to ensure any cycles in the object graph properly terminate.
+func ManagedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator() gopter.Gen {
+ if managedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator != nil {
+ return managedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM(generators)
+ managedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM{}), generators)
+
+ // The above call to gen.Struct() captures the map, so create a new one
+ generators = make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM(generators)
+ AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM(generators)
+ managedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM{}), generators)
+
+ return managedClusters_TrustedAccessRoleBinding_STATUS_ARMGenerator
+}
+
+// AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM is a factory method for creating gopter generators
+func AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM(gens map[string]gopter.Gen) {
+ gens["Id"] = gen.PtrOf(gen.AlphaString())
+ gens["Name"] = gen.PtrOf(gen.AlphaString())
+ gens["Type"] = gen.PtrOf(gen.AlphaString())
+}
+
+// AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM is a factory method for creating gopter generators
+func AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS_ARM(gens map[string]gopter.Gen) {
+ gens["Properties"] = gen.PtrOf(TrustedAccessRoleBindingProperties_STATUS_ARMGenerator())
+ gens["SystemData"] = gen.PtrOf(SystemData_STATUS_ARMGenerator())
+}
+
+func Test_TrustedAccessRoleBindingProperties_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 80
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of TrustedAccessRoleBindingProperties_STATUS_ARM via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForTrustedAccessRoleBindingProperties_STATUS_ARM, TrustedAccessRoleBindingProperties_STATUS_ARMGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForTrustedAccessRoleBindingProperties_STATUS_ARM runs a test to see if a specific instance of TrustedAccessRoleBindingProperties_STATUS_ARM round trips to JSON and back losslessly
+func RunJSONSerializationTestForTrustedAccessRoleBindingProperties_STATUS_ARM(subject TrustedAccessRoleBindingProperties_STATUS_ARM) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual TrustedAccessRoleBindingProperties_STATUS_ARM
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of TrustedAccessRoleBindingProperties_STATUS_ARM instances for property testing - lazily instantiated by
+// TrustedAccessRoleBindingProperties_STATUS_ARMGenerator()
+var trustedAccessRoleBindingProperties_STATUS_ARMGenerator gopter.Gen
+
+// TrustedAccessRoleBindingProperties_STATUS_ARMGenerator returns a generator of TrustedAccessRoleBindingProperties_STATUS_ARM instances for property testing.
+func TrustedAccessRoleBindingProperties_STATUS_ARMGenerator() gopter.Gen {
+ if trustedAccessRoleBindingProperties_STATUS_ARMGenerator != nil {
+ return trustedAccessRoleBindingProperties_STATUS_ARMGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForTrustedAccessRoleBindingProperties_STATUS_ARM(generators)
+ trustedAccessRoleBindingProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(TrustedAccessRoleBindingProperties_STATUS_ARM{}), generators)
+
+ return trustedAccessRoleBindingProperties_STATUS_ARMGenerator
+}
+
+// AddIndependentPropertyGeneratorsForTrustedAccessRoleBindingProperties_STATUS_ARM is a factory method for creating gopter generators
+func AddIndependentPropertyGeneratorsForTrustedAccessRoleBindingProperties_STATUS_ARM(gens map[string]gopter.Gen) {
+ gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf(
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Canceled,
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Deleting,
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Failed,
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Succeeded,
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Updating))
+ gens["Roles"] = gen.SliceOf(gen.AlphaString())
+ gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString())
+}
diff --git a/v2/api/containerservice/v1api20230202preview/structure.txt b/v2/api/containerservice/v1api20230202preview/structure.txt
index f92a3a39ca..a6dc790274 100644
--- a/v2/api/containerservice/v1api20230202preview/structure.txt
+++ b/v2/api/containerservice/v1api20230202preview/structure.txt
@@ -350,7 +350,9 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202pre
│ │ │ └── "Unrestricted"
│ │ ├── OidcIssuerProfile: *Object (1 property)
│ │ │ └── Enabled: *bool
-│ │ ├── OperatorSpec: *Object (1 property)
+│ │ ├── OperatorSpec: *Object (2 properties)
+│ │ │ ├── ConfigMaps: *Object (1 property)
+│ │ │ │ └── OIDCIssuerProfile: *genruntime.ConfigMapDestination
│ │ │ └── Secrets: *Object (2 properties)
│ │ │ ├── AdminCredentials: *genruntime.SecretDestination
│ │ │ └── UserCredentials: *genruntime.SecretDestination
@@ -2280,139 +2282,210 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202pre
│ │ ├── "OCIContainer"
│ │ └── "WasmWasi"
│ └── Type: *string
-└── ManagedClusters_AgentPool_Spec_ARM: Object (2 properties)
- ├── Name: string
- └── Properties: *Object (43 properties)
- ├── AvailabilityZones: string[]
- ├── CapacityReservationGroupID: *string
- ├── Count: *int
- ├── CreationData: *Object (1 property)
- │ └── SourceResourceId: *string
- ├── EnableAutoScaling: *bool
- ├── EnableCustomCATrust: *bool
- ├── EnableEncryptionAtHost: *bool
- ├── EnableFIPS: *bool
- ├── EnableNodePublicIP: *bool
- ├── EnableUltraSSD: *bool
- ├── GpuInstanceProfile: *Enum (5 values)
- │ ├── "MIG1g"
- │ ├── "MIG2g"
- │ ├── "MIG3g"
- │ ├── "MIG4g"
- │ └── "MIG7g"
- ├── HostGroupID: *string
- ├── KubeletConfig: *Object (11 properties)
- │ ├── AllowedUnsafeSysctls: string[]
- │ ├── ContainerLogMaxFiles: *int
- │ ├── ContainerLogMaxSizeMB: *int
- │ ├── CpuCfsQuota: *bool
- │ ├── CpuCfsQuotaPeriod: *string
- │ ├── CpuManagerPolicy: *string
- │ ├── FailSwapOn: *bool
- │ ├── ImageGcHighThreshold: *int
- │ ├── ImageGcLowThreshold: *int
- │ ├── PodMaxPids: *int
- │ └── TopologyManagerPolicy: *string
- ├── KubeletDiskType: *Enum (2 values)
- │ ├── "OS"
- │ └── "Temporary"
- ├── LinuxOSConfig: *Object (4 properties)
- │ ├── SwapFileSizeMB: *int
- │ ├── Sysctls: *Object (28 properties)
- │ │ ├── FsAioMaxNr: *int
- │ │ ├── FsFileMax: *int
- │ │ ├── FsInotifyMaxUserWatches: *int
- │ │ ├── FsNrOpen: *int
- │ │ ├── KernelThreadsMax: *int
- │ │ ├── NetCoreNetdevMaxBacklog: *int
- │ │ ├── NetCoreOptmemMax: *int
- │ │ ├── NetCoreRmemDefault: *int
- │ │ ├── NetCoreRmemMax: *int
- │ │ ├── NetCoreSomaxconn: *int
- │ │ ├── NetCoreWmemDefault: *int
- │ │ ├── NetCoreWmemMax: *int
- │ │ ├── NetIpv4IpLocalPortRange: *string
- │ │ ├── NetIpv4NeighDefaultGcThresh1: *int
- │ │ ├── NetIpv4NeighDefaultGcThresh2: *int
- │ │ ├── NetIpv4NeighDefaultGcThresh3: *int
- │ │ ├── NetIpv4TcpFinTimeout: *int
- │ │ ├── NetIpv4TcpKeepaliveProbes: *int
- │ │ ├── NetIpv4TcpKeepaliveTime: *int
- │ │ ├── NetIpv4TcpMaxSynBacklog: *int
- │ │ ├── NetIpv4TcpMaxTwBuckets: *int
- │ │ ├── NetIpv4TcpTwReuse: *bool
- │ │ ├── NetIpv4TcpkeepaliveIntvl: *int
- │ │ ├── NetNetfilterNfConntrackBuckets: *int
- │ │ ├── NetNetfilterNfConntrackMax: *int
- │ │ ├── VmMaxMapCount: *int
- │ │ ├── VmSwappiness: *int
- │ │ └── VmVfsCachePressure: *int
- │ ├── TransparentHugePageDefrag: *string
- │ └── TransparentHugePageEnabled: *string
- ├── MaxCount: *int
- ├── MaxPods: *int
- ├── MessageOfTheDay: *string
- ├── MinCount: *int
- ├── Mode: *Enum (2 values)
- │ ├── "System"
- │ └── "User"
- ├── NetworkProfile: *Object (3 properties)
- │ ├── AllowedHostPorts: Object (3 properties)[]
- │ │ ├── PortEnd: *int
- │ │ ├── PortStart: *int
- │ │ └── Protocol: *Enum (2 values)
- │ │ ├── "TCP"
- │ │ └── "UDP"
- │ ├── ApplicationSecurityGroups: string[]
- │ └── NodePublicIPTags: Object (2 properties)[]
- │ ├── IpTagType: *string
- │ └── Tag: *string
- ├── NodeLabels: map[string]string
- ├── NodePublicIPPrefixID: *string
- ├── NodeTaints: string[]
- ├── OrchestratorVersion: *string
- ├── OsDiskSizeGB: *Validated (2 rules)
- │ ├── Rule 0: Maximum: 2048
- │ └── Rule 1: Minimum: 0
- ├── OsDiskType: *Enum (2 values)
- │ ├── "Ephemeral"
- │ └── "Managed"
- ├── OsSKU: *Enum (5 values)
- │ ├── "CBLMariner"
- │ ├── "Mariner"
- │ ├── "Ubuntu"
- │ ├── "Windows2019"
- │ └── "Windows2022"
- ├── OsType: *Enum (2 values)
- │ ├── "Linux"
- │ └── "Windows"
- ├── PodSubnetID: *string
- ├── PowerState: *Object (1 property)
- │ └── Code: *Enum (2 values)
- │ ├── "Running"
- │ └── "Stopped"
- ├── ProximityPlacementGroupID: *string
- ├── ScaleDownMode: *Enum (2 values)
- │ ├── "Deallocate"
- │ └── "Delete"
- ├── ScaleSetEvictionPolicy: *Enum (2 values)
- │ ├── "Deallocate"
- │ └── "Delete"
- ├── ScaleSetPriority: *Enum (2 values)
- │ ├── "Regular"
- │ └── "Spot"
- ├── SpotMaxPrice: *float64
- ├── Tags: map[string]string
- ├── Type: *Enum (2 values)
- │ ├── "AvailabilitySet"
- │ └── "VirtualMachineScaleSets"
- ├── UpgradeSettings: *Object (1 property)
- │ └── MaxSurge: *string
- ├── VmSize: *string
- ├── VnetSubnetID: *string
- ├── WindowsProfile: *Object (1 property)
- │ └── DisableOutboundNat: *bool
- └── WorkloadRuntime: *Enum (3 values)
- ├── "KataMshvVmIsolation"
- ├── "OCIContainer"
- └── "WasmWasi"
+├── ManagedClusters_AgentPool_Spec_ARM: Object (2 properties)
+│ ├── Name: string
+│ └── Properties: *Object (43 properties)
+│ ├── AvailabilityZones: string[]
+│ ├── CapacityReservationGroupID: *string
+│ ├── Count: *int
+│ ├── CreationData: *Object (1 property)
+│ │ └── SourceResourceId: *string
+│ ├── EnableAutoScaling: *bool
+│ ├── EnableCustomCATrust: *bool
+│ ├── EnableEncryptionAtHost: *bool
+│ ├── EnableFIPS: *bool
+│ ├── EnableNodePublicIP: *bool
+│ ├── EnableUltraSSD: *bool
+│ ├── GpuInstanceProfile: *Enum (5 values)
+│ │ ├── "MIG1g"
+│ │ ├── "MIG2g"
+│ │ ├── "MIG3g"
+│ │ ├── "MIG4g"
+│ │ └── "MIG7g"
+│ ├── HostGroupID: *string
+│ ├── KubeletConfig: *Object (11 properties)
+│ │ ├── AllowedUnsafeSysctls: string[]
+│ │ ├── ContainerLogMaxFiles: *int
+│ │ ├── ContainerLogMaxSizeMB: *int
+│ │ ├── CpuCfsQuota: *bool
+│ │ ├── CpuCfsQuotaPeriod: *string
+│ │ ├── CpuManagerPolicy: *string
+│ │ ├── FailSwapOn: *bool
+│ │ ├── ImageGcHighThreshold: *int
+│ │ ├── ImageGcLowThreshold: *int
+│ │ ├── PodMaxPids: *int
+│ │ └── TopologyManagerPolicy: *string
+│ ├── KubeletDiskType: *Enum (2 values)
+│ │ ├── "OS"
+│ │ └── "Temporary"
+│ ├── LinuxOSConfig: *Object (4 properties)
+│ │ ├── SwapFileSizeMB: *int
+│ │ ├── Sysctls: *Object (28 properties)
+│ │ │ ├── FsAioMaxNr: *int
+│ │ │ ├── FsFileMax: *int
+│ │ │ ├── FsInotifyMaxUserWatches: *int
+│ │ │ ├── FsNrOpen: *int
+│ │ │ ├── KernelThreadsMax: *int
+│ │ │ ├── NetCoreNetdevMaxBacklog: *int
+│ │ │ ├── NetCoreOptmemMax: *int
+│ │ │ ├── NetCoreRmemDefault: *int
+│ │ │ ├── NetCoreRmemMax: *int
+│ │ │ ├── NetCoreSomaxconn: *int
+│ │ │ ├── NetCoreWmemDefault: *int
+│ │ │ ├── NetCoreWmemMax: *int
+│ │ │ ├── NetIpv4IpLocalPortRange: *string
+│ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int
+│ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int
+│ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int
+│ │ │ ├── NetIpv4TcpFinTimeout: *int
+│ │ │ ├── NetIpv4TcpKeepaliveProbes: *int
+│ │ │ ├── NetIpv4TcpKeepaliveTime: *int
+│ │ │ ├── NetIpv4TcpMaxSynBacklog: *int
+│ │ │ ├── NetIpv4TcpMaxTwBuckets: *int
+│ │ │ ├── NetIpv4TcpTwReuse: *bool
+│ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int
+│ │ │ ├── NetNetfilterNfConntrackBuckets: *int
+│ │ │ ├── NetNetfilterNfConntrackMax: *int
+│ │ │ ├── VmMaxMapCount: *int
+│ │ │ ├── VmSwappiness: *int
+│ │ │ └── VmVfsCachePressure: *int
+│ │ ├── TransparentHugePageDefrag: *string
+│ │ └── TransparentHugePageEnabled: *string
+│ ├── MaxCount: *int
+│ ├── MaxPods: *int
+│ ├── MessageOfTheDay: *string
+│ ├── MinCount: *int
+│ ├── Mode: *Enum (2 values)
+│ │ ├── "System"
+│ │ └── "User"
+│ ├── NetworkProfile: *Object (3 properties)
+│ │ ├── AllowedHostPorts: Object (3 properties)[]
+│ │ │ ├── PortEnd: *int
+│ │ │ ├── PortStart: *int
+│ │ │ └── Protocol: *Enum (2 values)
+│ │ │ ├── "TCP"
+│ │ │ └── "UDP"
+│ │ ├── ApplicationSecurityGroups: string[]
+│ │ └── NodePublicIPTags: Object (2 properties)[]
+│ │ ├── IpTagType: *string
+│ │ └── Tag: *string
+│ ├── NodeLabels: map[string]string
+│ ├── NodePublicIPPrefixID: *string
+│ ├── NodeTaints: string[]
+│ ├── OrchestratorVersion: *string
+│ ├── OsDiskSizeGB: *Validated (2 rules)
+│ │ ├── Rule 0: Maximum: 2048
+│ │ └── Rule 1: Minimum: 0
+│ ├── OsDiskType: *Enum (2 values)
+│ │ ├── "Ephemeral"
+│ │ └── "Managed"
+│ ├── OsSKU: *Enum (5 values)
+│ │ ├── "CBLMariner"
+│ │ ├── "Mariner"
+│ │ ├── "Ubuntu"
+│ │ ├── "Windows2019"
+│ │ └── "Windows2022"
+│ ├── OsType: *Enum (2 values)
+│ │ ├── "Linux"
+│ │ └── "Windows"
+│ ├── PodSubnetID: *string
+│ ├── PowerState: *Object (1 property)
+│ │ └── Code: *Enum (2 values)
+│ │ ├── "Running"
+│ │ └── "Stopped"
+│ ├── ProximityPlacementGroupID: *string
+│ ├── ScaleDownMode: *Enum (2 values)
+│ │ ├── "Deallocate"
+│ │ └── "Delete"
+│ ├── ScaleSetEvictionPolicy: *Enum (2 values)
+│ │ ├── "Deallocate"
+│ │ └── "Delete"
+│ ├── ScaleSetPriority: *Enum (2 values)
+│ │ ├── "Regular"
+│ │ └── "Spot"
+│ ├── SpotMaxPrice: *float64
+│ ├── Tags: map[string]string
+│ ├── Type: *Enum (2 values)
+│ │ ├── "AvailabilitySet"
+│ │ └── "VirtualMachineScaleSets"
+│ ├── UpgradeSettings: *Object (1 property)
+│ │ └── MaxSurge: *string
+│ ├── VmSize: *string
+│ ├── VnetSubnetID: *string
+│ ├── WindowsProfile: *Object (1 property)
+│ │ └── DisableOutboundNat: *bool
+│ └── WorkloadRuntime: *Enum (3 values)
+│ ├── "KataMshvVmIsolation"
+│ ├── "OCIContainer"
+│ └── "WasmWasi"
+├── ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM: Object (5 properties)
+│ ├── Id: *string
+│ ├── Name: *string
+│ ├── Properties: *Object (3 properties)
+│ │ ├── ProvisioningState: *Enum (5 values)
+│ │ │ ├── "Canceled"
+│ │ │ ├── "Deleting"
+│ │ │ ├── "Failed"
+│ │ │ ├── "Succeeded"
+│ │ │ └── "Updating"
+│ │ ├── Roles: string[]
+│ │ └── SourceResourceId: *string
+│ ├── SystemData: *Object (6 properties)
+│ │ ├── CreatedAt: *string
+│ │ ├── CreatedBy: *string
+│ │ ├── CreatedByType: *Enum (4 values)
+│ │ │ ├── "Application"
+│ │ │ ├── "Key"
+│ │ │ ├── "ManagedIdentity"
+│ │ │ └── "User"
+│ │ ├── LastModifiedAt: *string
+│ │ ├── LastModifiedBy: *string
+│ │ └── LastModifiedByType: *Enum (4 values)
+│ │ ├── "Application"
+│ │ ├── "Key"
+│ │ ├── "ManagedIdentity"
+│ │ └── "User"
+│ └── Type: *string
+├── ManagedClusters_TrustedAccessRoleBinding_Spec_ARM: Object (2 properties)
+│ ├── Name: string
+│ └── Properties: *Object (2 properties)
+│ ├── Roles: string[]
+│ └── SourceResourceId: *string
+└── TrustedAccessRoleBinding: Resource
+ ├── Owner: ManagedCluster
+ ├── Spec: Object (4 properties)
+ │ ├── AzureName: Validated (3 rules)
+ │ │ ├── Rule 0: MaxLength: 24
+ │ │ ├── Rule 1: MinLength: 1
+ │ │ └── Rule 2: Pattern: "^([A-Za-z0-9-])+$"
+ │ ├── Owner: *genruntime.KnownResourceReference
+ │ ├── Roles: string[]
+ │ └── SourceResourceReference: *genruntime.ResourceReference
+ └── Status: Object (8 properties)
+ ├── Conditions: conditions.Condition[]
+ ├── Id: *string
+ ├── Name: *string
+ ├── ProvisioningState: *Enum (5 values)
+ │ ├── "Canceled"
+ │ ├── "Deleting"
+ │ ├── "Failed"
+ │ ├── "Succeeded"
+ │ └── "Updating"
+ ├── Roles: string[]
+ ├── SourceResourceId: *string
+ ├── SystemData: *Object (6 properties)
+ │ ├── CreatedAt: *string
+ │ ├── CreatedBy: *string
+ │ ├── CreatedByType: *Enum (4 values)
+ │ │ ├── "Application"
+ │ │ ├── "Key"
+ │ │ ├── "ManagedIdentity"
+ │ │ └── "User"
+ │ ├── LastModifiedAt: *string
+ │ ├── LastModifiedBy: *string
+ │ └── LastModifiedByType: *Enum (4 values)
+ │ ├── "Application"
+ │ ├── "Key"
+ │ ├── "ManagedIdentity"
+ │ └── "User"
+ └── Type: *string
diff --git a/v2/api/containerservice/v1api20230202preview/trusted_access_role_binding_types_gen.go b/v2/api/containerservice/v1api20230202preview/trusted_access_role_binding_types_gen.go
new file mode 100644
index 0000000000..84f58f001a
--- /dev/null
+++ b/v2/api/containerservice/v1api20230202preview/trusted_access_role_binding_types_gen.go
@@ -0,0 +1,823 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package v1api20230202preview
+
+import (
+ "fmt"
+ v1api20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202previewstorage"
+ "github.com/Azure/azure-service-operator/v2/internal/reflecthelpers"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions"
+ "github.com/pkg/errors"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime"
+ "k8s.io/apimachinery/pkg/runtime/schema"
+ kerrors "k8s.io/apimachinery/pkg/util/errors"
+ "sigs.k8s.io/controller-runtime/pkg/conversion"
+ "sigs.k8s.io/controller-runtime/pkg/webhook/admission"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
+// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity"
+// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason"
+// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message"
+// Generator information:
+// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2023-02-02-preview/managedClusters.json
+// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/trustedAccessRoleBindings/{trustedAccessRoleBindingName}
+type TrustedAccessRoleBinding struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+ Spec ManagedClusters_TrustedAccessRoleBinding_Spec `json:"spec,omitempty"`
+ Status ManagedClusters_TrustedAccessRoleBinding_STATUS `json:"status,omitempty"`
+}
+
+var _ conditions.Conditioner = &TrustedAccessRoleBinding{}
+
+// GetConditions returns the conditions of the resource
+func (binding *TrustedAccessRoleBinding) GetConditions() conditions.Conditions {
+ return binding.Status.Conditions
+}
+
+// SetConditions sets the conditions on the resource status
+func (binding *TrustedAccessRoleBinding) SetConditions(conditions conditions.Conditions) {
+ binding.Status.Conditions = conditions
+}
+
+var _ conversion.Convertible = &TrustedAccessRoleBinding{}
+
+// ConvertFrom populates our TrustedAccessRoleBinding from the provided hub TrustedAccessRoleBinding
+func (binding *TrustedAccessRoleBinding) ConvertFrom(hub conversion.Hub) error {
+ source, ok := hub.(*v1api20230202ps.TrustedAccessRoleBinding)
+ if !ok {
+ return fmt.Errorf("expected containerservice/v1api20230202previewstorage/TrustedAccessRoleBinding but received %T instead", hub)
+ }
+
+ return binding.AssignProperties_From_TrustedAccessRoleBinding(source)
+}
+
+// ConvertTo populates the provided hub TrustedAccessRoleBinding from our TrustedAccessRoleBinding
+func (binding *TrustedAccessRoleBinding) ConvertTo(hub conversion.Hub) error {
+ destination, ok := hub.(*v1api20230202ps.TrustedAccessRoleBinding)
+ if !ok {
+ return fmt.Errorf("expected containerservice/v1api20230202previewstorage/TrustedAccessRoleBinding but received %T instead", hub)
+ }
+
+ return binding.AssignProperties_To_TrustedAccessRoleBinding(destination)
+}
+
+// +kubebuilder:webhook:path=/mutate-containerservice-azure-com-v1api20230202preview-trustedaccessrolebinding,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=containerservice.azure.com,resources=trustedaccessrolebindings,verbs=create;update,versions=v1api20230202preview,name=default.v1api20230202preview.trustedaccessrolebindings.containerservice.azure.com,admissionReviewVersions=v1
+
+var _ admission.Defaulter = &TrustedAccessRoleBinding{}
+
+// Default applies defaults to the TrustedAccessRoleBinding resource
+func (binding *TrustedAccessRoleBinding) Default() {
+ binding.defaultImpl()
+ var temp any = binding
+ if runtimeDefaulter, ok := temp.(genruntime.Defaulter); ok {
+ runtimeDefaulter.CustomDefault()
+ }
+}
+
+// defaultAzureName defaults the Azure name of the resource to the Kubernetes name
+func (binding *TrustedAccessRoleBinding) defaultAzureName() {
+ if binding.Spec.AzureName == "" {
+ binding.Spec.AzureName = binding.Name
+ }
+}
+
+// defaultImpl applies the code generated defaults to the TrustedAccessRoleBinding resource
+func (binding *TrustedAccessRoleBinding) defaultImpl() { binding.defaultAzureName() }
+
+var _ genruntime.ImportableResource = &TrustedAccessRoleBinding{}
+
+// InitializeSpec initializes the spec for this resource from the given status
+func (binding *TrustedAccessRoleBinding) InitializeSpec(status genruntime.ConvertibleStatus) error {
+ if s, ok := status.(*ManagedClusters_TrustedAccessRoleBinding_STATUS); ok {
+ return binding.Spec.Initialize_From_ManagedClusters_TrustedAccessRoleBinding_STATUS(s)
+ }
+
+ return fmt.Errorf("expected Status of type ManagedClusters_TrustedAccessRoleBinding_STATUS but received %T instead", status)
+}
+
+var _ genruntime.KubernetesResource = &TrustedAccessRoleBinding{}
+
+// AzureName returns the Azure name of the resource
+func (binding *TrustedAccessRoleBinding) AzureName() string {
+ return binding.Spec.AzureName
+}
+
+// GetAPIVersion returns the ARM API version of the resource. This is always "2023-02-02-preview"
+func (binding TrustedAccessRoleBinding) GetAPIVersion() string {
+ return string(APIVersion_Value)
+}
+
+// GetResourceScope returns the scope of the resource
+func (binding *TrustedAccessRoleBinding) GetResourceScope() genruntime.ResourceScope {
+ return genruntime.ResourceScopeResourceGroup
+}
+
+// GetSpec returns the specification of this resource
+func (binding *TrustedAccessRoleBinding) GetSpec() genruntime.ConvertibleSpec {
+ return &binding.Spec
+}
+
+// GetStatus returns the status of this resource
+func (binding *TrustedAccessRoleBinding) GetStatus() genruntime.ConvertibleStatus {
+ return &binding.Status
+}
+
+// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
+func (binding *TrustedAccessRoleBinding) GetType() string {
+ return "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
+}
+
+// NewEmptyStatus returns a new empty (blank) status
+func (binding *TrustedAccessRoleBinding) NewEmptyStatus() genruntime.ConvertibleStatus {
+ return &ManagedClusters_TrustedAccessRoleBinding_STATUS{}
+}
+
+// Owner returns the ResourceReference of the owner
+func (binding *TrustedAccessRoleBinding) Owner() *genruntime.ResourceReference {
+ group, kind := genruntime.LookupOwnerGroupKind(binding.Spec)
+ return &genruntime.ResourceReference{
+ Group: group,
+ Kind: kind,
+ Name: binding.Spec.Owner.Name,
+ }
+}
+
+// SetStatus sets the status of this resource
+func (binding *TrustedAccessRoleBinding) SetStatus(status genruntime.ConvertibleStatus) error {
+ // If we have exactly the right type of status, assign it
+ if st, ok := status.(*ManagedClusters_TrustedAccessRoleBinding_STATUS); ok {
+ binding.Status = *st
+ return nil
+ }
+
+ // Convert status to required version
+ var st ManagedClusters_TrustedAccessRoleBinding_STATUS
+ err := status.ConvertStatusTo(&st)
+ if err != nil {
+ return errors.Wrap(err, "failed to convert status")
+ }
+
+ binding.Status = st
+ return nil
+}
+
+// +kubebuilder:webhook:path=/validate-containerservice-azure-com-v1api20230202preview-trustedaccessrolebinding,mutating=false,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=containerservice.azure.com,resources=trustedaccessrolebindings,verbs=create;update,versions=v1api20230202preview,name=validate.v1api20230202preview.trustedaccessrolebindings.containerservice.azure.com,admissionReviewVersions=v1
+
+var _ admission.Validator = &TrustedAccessRoleBinding{}
+
+// ValidateCreate validates the creation of the resource
+func (binding *TrustedAccessRoleBinding) ValidateCreate() error {
+ validations := binding.createValidations()
+ var temp any = binding
+ if runtimeValidator, ok := temp.(genruntime.Validator); ok {
+ validations = append(validations, runtimeValidator.CreateValidations()...)
+ }
+ var errs []error
+ for _, validation := range validations {
+ err := validation()
+ if err != nil {
+ errs = append(errs, err)
+ }
+ }
+ return kerrors.NewAggregate(errs)
+}
+
+// ValidateDelete validates the deletion of the resource
+func (binding *TrustedAccessRoleBinding) ValidateDelete() error {
+ validations := binding.deleteValidations()
+ var temp any = binding
+ if runtimeValidator, ok := temp.(genruntime.Validator); ok {
+ validations = append(validations, runtimeValidator.DeleteValidations()...)
+ }
+ var errs []error
+ for _, validation := range validations {
+ err := validation()
+ if err != nil {
+ errs = append(errs, err)
+ }
+ }
+ return kerrors.NewAggregate(errs)
+}
+
+// ValidateUpdate validates an update of the resource
+func (binding *TrustedAccessRoleBinding) ValidateUpdate(old runtime.Object) error {
+ validations := binding.updateValidations()
+ var temp any = binding
+ if runtimeValidator, ok := temp.(genruntime.Validator); ok {
+ validations = append(validations, runtimeValidator.UpdateValidations()...)
+ }
+ var errs []error
+ for _, validation := range validations {
+ err := validation(old)
+ if err != nil {
+ errs = append(errs, err)
+ }
+ }
+ return kerrors.NewAggregate(errs)
+}
+
+// createValidations validates the creation of the resource
+func (binding *TrustedAccessRoleBinding) createValidations() []func() error {
+ return []func() error{binding.validateResourceReferences}
+}
+
+// deleteValidations validates the deletion of the resource
+func (binding *TrustedAccessRoleBinding) deleteValidations() []func() error {
+ return nil
+}
+
+// updateValidations validates the update of the resource
+func (binding *TrustedAccessRoleBinding) updateValidations() []func(old runtime.Object) error {
+ return []func(old runtime.Object) error{
+ func(old runtime.Object) error {
+ return binding.validateResourceReferences()
+ },
+ binding.validateWriteOnceProperties}
+}
+
+// validateResourceReferences validates all resource references
+func (binding *TrustedAccessRoleBinding) validateResourceReferences() error {
+ refs, err := reflecthelpers.FindResourceReferences(&binding.Spec)
+ if err != nil {
+ return err
+ }
+ return genruntime.ValidateResourceReferences(refs)
+}
+
+// validateWriteOnceProperties validates all WriteOnce properties
+func (binding *TrustedAccessRoleBinding) validateWriteOnceProperties(old runtime.Object) error {
+ oldObj, ok := old.(*TrustedAccessRoleBinding)
+ if !ok {
+ return nil
+ }
+
+ return genruntime.ValidateWriteOnceProperties(oldObj, binding)
+}
+
+// AssignProperties_From_TrustedAccessRoleBinding populates our TrustedAccessRoleBinding from the provided source TrustedAccessRoleBinding
+func (binding *TrustedAccessRoleBinding) AssignProperties_From_TrustedAccessRoleBinding(source *v1api20230202ps.TrustedAccessRoleBinding) error {
+
+ // ObjectMeta
+ binding.ObjectMeta = *source.ObjectMeta.DeepCopy()
+
+ // Spec
+ var spec ManagedClusters_TrustedAccessRoleBinding_Spec
+ err := spec.AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_Spec(&source.Spec)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_Spec() to populate field Spec")
+ }
+ binding.Spec = spec
+
+ // Status
+ var status ManagedClusters_TrustedAccessRoleBinding_STATUS
+ err = status.AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_STATUS(&source.Status)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_STATUS() to populate field Status")
+ }
+ binding.Status = status
+
+ // No error
+ return nil
+}
+
+// AssignProperties_To_TrustedAccessRoleBinding populates the provided destination TrustedAccessRoleBinding from our TrustedAccessRoleBinding
+func (binding *TrustedAccessRoleBinding) AssignProperties_To_TrustedAccessRoleBinding(destination *v1api20230202ps.TrustedAccessRoleBinding) error {
+
+ // ObjectMeta
+ destination.ObjectMeta = *binding.ObjectMeta.DeepCopy()
+
+ // Spec
+ var spec v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_Spec
+ err := binding.Spec.AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_Spec(&spec)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_Spec() to populate field Spec")
+ }
+ destination.Spec = spec
+
+ // Status
+ var status v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_STATUS
+ err = binding.Status.AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_STATUS(&status)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_STATUS() to populate field Status")
+ }
+ destination.Status = status
+
+ // No error
+ return nil
+}
+
+// OriginalGVK returns a GroupValueKind for the original API version used to create the resource
+func (binding *TrustedAccessRoleBinding) OriginalGVK() *schema.GroupVersionKind {
+ return &schema.GroupVersionKind{
+ Group: GroupVersion.Group,
+ Version: binding.Spec.OriginalVersion(),
+ Kind: "TrustedAccessRoleBinding",
+ }
+}
+
+// +kubebuilder:object:root=true
+// Generator information:
+// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2023-02-02-preview/managedClusters.json
+// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/trustedAccessRoleBindings/{trustedAccessRoleBindingName}
+type TrustedAccessRoleBindingList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []TrustedAccessRoleBinding `json:"items"`
+}
+
+type ManagedClusters_TrustedAccessRoleBinding_Spec struct {
+ // +kubebuilder:validation:MaxLength=24
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:Pattern="^([A-Za-z0-9-])+$"
+ // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
+ // doesn't have to be.
+ AzureName string `json:"azureName,omitempty"`
+
+ // +kubebuilder:validation:Required
+ // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
+ // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
+ // reference to a containerservice.azure.com/ManagedCluster resource
+ Owner *genruntime.KnownResourceReference `group:"containerservice.azure.com" json:"owner,omitempty" kind:"ManagedCluster"`
+
+ // +kubebuilder:validation:Required
+ // Roles: A list of roles to bind, each item is a resource type qualified role name. For example:
+ // 'Microsoft.MachineLearningServices/workspaces/reader'.
+ Roles []string `json:"roles,omitempty"`
+
+ // +kubebuilder:validation:Required
+ // SourceResourceReference: The ARM resource ID of source resource that trusted access is configured for.
+ SourceResourceReference *genruntime.ResourceReference `armReference:"SourceResourceId" json:"sourceResourceReference,omitempty"`
+}
+
+var _ genruntime.ARMTransformer = &ManagedClusters_TrustedAccessRoleBinding_Spec{}
+
+// ConvertToARM converts from a Kubernetes CRD object to an ARM object
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) {
+ if binding == nil {
+ return nil, nil
+ }
+ result := &ManagedClusters_TrustedAccessRoleBinding_Spec_ARM{}
+
+ // Set property ‘Name’:
+ result.Name = resolved.Name
+
+ // Set property ‘Properties’:
+ if binding.Roles != nil || binding.SourceResourceReference != nil {
+ result.Properties = &TrustedAccessRoleBindingProperties_ARM{}
+ }
+ for _, item := range binding.Roles {
+ result.Properties.Roles = append(result.Properties.Roles, item)
+ }
+ if binding.SourceResourceReference != nil {
+ sourceResourceIdARMID, err := resolved.ResolvedReferences.Lookup(*binding.SourceResourceReference)
+ if err != nil {
+ return nil, err
+ }
+ sourceResourceId := sourceResourceIdARMID
+ result.Properties.SourceResourceId = &sourceResourceId
+ }
+ return result, nil
+}
+
+// NewEmptyARMValue returns an empty ARM value suitable for deserializing into
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) NewEmptyARMValue() genruntime.ARMResourceStatus {
+ return &ManagedClusters_TrustedAccessRoleBinding_Spec_ARM{}
+}
+
+// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error {
+ typedInput, ok := armInput.(ManagedClusters_TrustedAccessRoleBinding_Spec_ARM)
+ if !ok {
+ return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusters_TrustedAccessRoleBinding_Spec_ARM, got %T", armInput)
+ }
+
+ // Set property ‘AzureName’:
+ binding.SetAzureName(genruntime.ExtractKubernetesResourceNameFromARMName(typedInput.Name))
+
+ // Set property ‘Owner’:
+ binding.Owner = &genruntime.KnownResourceReference{Name: owner.Name}
+
+ // Set property ‘Roles’:
+ // copying flattened property:
+ if typedInput.Properties != nil {
+ for _, item := range typedInput.Properties.Roles {
+ binding.Roles = append(binding.Roles, item)
+ }
+ }
+
+ // no assignment for property ‘SourceResourceReference’
+
+ // No error
+ return nil
+}
+
+var _ genruntime.ConvertibleSpec = &ManagedClusters_TrustedAccessRoleBinding_Spec{}
+
+// ConvertSpecFrom populates our ManagedClusters_TrustedAccessRoleBinding_Spec from the provided source
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error {
+ src, ok := source.(*v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_Spec)
+ if ok {
+ // Populate our instance from source
+ return binding.AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_Spec(src)
+ }
+
+ // Convert to an intermediate form
+ src = &v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_Spec{}
+ err := src.ConvertSpecFrom(source)
+ if err != nil {
+ return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()")
+ }
+
+ // Update our instance from src
+ err = binding.AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_Spec(src)
+ if err != nil {
+ return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()")
+ }
+
+ return nil
+}
+
+// ConvertSpecTo populates the provided destination from our ManagedClusters_TrustedAccessRoleBinding_Spec
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error {
+ dst, ok := destination.(*v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_Spec)
+ if ok {
+ // Populate destination from our instance
+ return binding.AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_Spec(dst)
+ }
+
+ // Convert to an intermediate form
+ dst = &v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_Spec{}
+ err := binding.AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_Spec(dst)
+ if err != nil {
+ return errors.Wrap(err, "initial step of conversion in ConvertSpecTo()")
+ }
+
+ // Update dst from our instance
+ err = dst.ConvertSpecTo(destination)
+ if err != nil {
+ return errors.Wrap(err, "final step of conversion in ConvertSpecTo()")
+ }
+
+ return nil
+}
+
+// AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_Spec populates our ManagedClusters_TrustedAccessRoleBinding_Spec from the provided source ManagedClusters_TrustedAccessRoleBinding_Spec
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_Spec(source *v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_Spec) error {
+
+ // AzureName
+ binding.AzureName = source.AzureName
+
+ // Owner
+ if source.Owner != nil {
+ owner := source.Owner.Copy()
+ binding.Owner = &owner
+ } else {
+ binding.Owner = nil
+ }
+
+ // Roles
+ binding.Roles = genruntime.CloneSliceOfString(source.Roles)
+
+ // SourceResourceReference
+ if source.SourceResourceReference != nil {
+ sourceResourceReference := source.SourceResourceReference.Copy()
+ binding.SourceResourceReference = &sourceResourceReference
+ } else {
+ binding.SourceResourceReference = nil
+ }
+
+ // No error
+ return nil
+}
+
+// AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_Spec populates the provided destination ManagedClusters_TrustedAccessRoleBinding_Spec from our ManagedClusters_TrustedAccessRoleBinding_Spec
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_Spec(destination *v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_Spec) error {
+ // Create a new property bag
+ propertyBag := genruntime.NewPropertyBag()
+
+ // AzureName
+ destination.AzureName = binding.AzureName
+
+ // OriginalVersion
+ destination.OriginalVersion = binding.OriginalVersion()
+
+ // Owner
+ if binding.Owner != nil {
+ owner := binding.Owner.Copy()
+ destination.Owner = &owner
+ } else {
+ destination.Owner = nil
+ }
+
+ // Roles
+ destination.Roles = genruntime.CloneSliceOfString(binding.Roles)
+
+ // SourceResourceReference
+ if binding.SourceResourceReference != nil {
+ sourceResourceReference := binding.SourceResourceReference.Copy()
+ destination.SourceResourceReference = &sourceResourceReference
+ } else {
+ destination.SourceResourceReference = nil
+ }
+
+ // Update the property bag
+ if len(propertyBag) > 0 {
+ destination.PropertyBag = propertyBag
+ } else {
+ destination.PropertyBag = nil
+ }
+
+ // No error
+ return nil
+}
+
+// Initialize_From_ManagedClusters_TrustedAccessRoleBinding_STATUS populates our ManagedClusters_TrustedAccessRoleBinding_Spec from the provided source ManagedClusters_TrustedAccessRoleBinding_STATUS
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) Initialize_From_ManagedClusters_TrustedAccessRoleBinding_STATUS(source *ManagedClusters_TrustedAccessRoleBinding_STATUS) error {
+
+ // Roles
+ binding.Roles = genruntime.CloneSliceOfString(source.Roles)
+
+ // SourceResourceReference
+ if source.SourceResourceId != nil {
+ sourceResourceReference := genruntime.CreateResourceReferenceFromARMID(*source.SourceResourceId)
+ binding.SourceResourceReference = &sourceResourceReference
+ } else {
+ binding.SourceResourceReference = nil
+ }
+
+ // No error
+ return nil
+}
+
+// OriginalVersion returns the original API version used to create the resource.
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) OriginalVersion() string {
+ return GroupVersion.Version
+}
+
+// SetAzureName sets the Azure name of the resource
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) SetAzureName(azureName string) {
+ binding.AzureName = azureName
+}
+
+type ManagedClusters_TrustedAccessRoleBinding_STATUS struct {
+ // Conditions: The observed state of the resource
+ Conditions []conditions.Condition `json:"conditions,omitempty"`
+
+ // Id: Fully qualified resource ID for the resource. Ex -
+ // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
+ Id *string `json:"id,omitempty"`
+
+ // Name: The name of the resource
+ Name *string `json:"name,omitempty"`
+
+ // ProvisioningState: The current provisioning state of trusted access role binding.
+ ProvisioningState *TrustedAccessRoleBindingProperties_ProvisioningState_STATUS `json:"provisioningState,omitempty"`
+
+ // Roles: A list of roles to bind, each item is a resource type qualified role name. For example:
+ // 'Microsoft.MachineLearningServices/workspaces/reader'.
+ Roles []string `json:"roles,omitempty"`
+
+ // SourceResourceId: The ARM resource ID of source resource that trusted access is configured for.
+ SourceResourceId *string `json:"sourceResourceId,omitempty"`
+
+ // SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ SystemData *SystemData_STATUS `json:"systemData,omitempty"`
+
+ // Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
+ Type *string `json:"type,omitempty"`
+}
+
+var _ genruntime.ConvertibleStatus = &ManagedClusters_TrustedAccessRoleBinding_STATUS{}
+
+// ConvertStatusFrom populates our ManagedClusters_TrustedAccessRoleBinding_STATUS from the provided source
+func (binding *ManagedClusters_TrustedAccessRoleBinding_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error {
+ src, ok := source.(*v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_STATUS)
+ if ok {
+ // Populate our instance from source
+ return binding.AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_STATUS(src)
+ }
+
+ // Convert to an intermediate form
+ src = &v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_STATUS{}
+ err := src.ConvertStatusFrom(source)
+ if err != nil {
+ return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()")
+ }
+
+ // Update our instance from src
+ err = binding.AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_STATUS(src)
+ if err != nil {
+ return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()")
+ }
+
+ return nil
+}
+
+// ConvertStatusTo populates the provided destination from our ManagedClusters_TrustedAccessRoleBinding_STATUS
+func (binding *ManagedClusters_TrustedAccessRoleBinding_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error {
+ dst, ok := destination.(*v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_STATUS)
+ if ok {
+ // Populate destination from our instance
+ return binding.AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_STATUS(dst)
+ }
+
+ // Convert to an intermediate form
+ dst = &v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_STATUS{}
+ err := binding.AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_STATUS(dst)
+ if err != nil {
+ return errors.Wrap(err, "initial step of conversion in ConvertStatusTo()")
+ }
+
+ // Update dst from our instance
+ err = dst.ConvertStatusTo(destination)
+ if err != nil {
+ return errors.Wrap(err, "final step of conversion in ConvertStatusTo()")
+ }
+
+ return nil
+}
+
+var _ genruntime.FromARMConverter = &ManagedClusters_TrustedAccessRoleBinding_STATUS{}
+
+// NewEmptyARMValue returns an empty ARM value suitable for deserializing into
+func (binding *ManagedClusters_TrustedAccessRoleBinding_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus {
+ return &ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM{}
+}
+
+// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object
+func (binding *ManagedClusters_TrustedAccessRoleBinding_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error {
+ typedInput, ok := armInput.(ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM)
+ if !ok {
+ return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM, got %T", armInput)
+ }
+
+ // no assignment for property ‘Conditions’
+
+ // Set property ‘Id’:
+ if typedInput.Id != nil {
+ id := *typedInput.Id
+ binding.Id = &id
+ }
+
+ // Set property ‘Name’:
+ if typedInput.Name != nil {
+ name := *typedInput.Name
+ binding.Name = &name
+ }
+
+ // Set property ‘ProvisioningState’:
+ // copying flattened property:
+ if typedInput.Properties != nil {
+ if typedInput.Properties.ProvisioningState != nil {
+ provisioningState := *typedInput.Properties.ProvisioningState
+ binding.ProvisioningState = &provisioningState
+ }
+ }
+
+ // Set property ‘Roles’:
+ // copying flattened property:
+ if typedInput.Properties != nil {
+ for _, item := range typedInput.Properties.Roles {
+ binding.Roles = append(binding.Roles, item)
+ }
+ }
+
+ // Set property ‘SourceResourceId’:
+ // copying flattened property:
+ if typedInput.Properties != nil {
+ if typedInput.Properties.SourceResourceId != nil {
+ sourceResourceId := *typedInput.Properties.SourceResourceId
+ binding.SourceResourceId = &sourceResourceId
+ }
+ }
+
+ // Set property ‘SystemData’:
+ if typedInput.SystemData != nil {
+ var systemData1 SystemData_STATUS
+ err := systemData1.PopulateFromARM(owner, *typedInput.SystemData)
+ if err != nil {
+ return err
+ }
+ systemData := systemData1
+ binding.SystemData = &systemData
+ }
+
+ // Set property ‘Type’:
+ if typedInput.Type != nil {
+ typeVar := *typedInput.Type
+ binding.Type = &typeVar
+ }
+
+ // No error
+ return nil
+}
+
+// AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_STATUS populates our ManagedClusters_TrustedAccessRoleBinding_STATUS from the provided source ManagedClusters_TrustedAccessRoleBinding_STATUS
+func (binding *ManagedClusters_TrustedAccessRoleBinding_STATUS) AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_STATUS(source *v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_STATUS) error {
+
+ // Conditions
+ binding.Conditions = genruntime.CloneSliceOfCondition(source.Conditions)
+
+ // Id
+ binding.Id = genruntime.ClonePointerToString(source.Id)
+
+ // Name
+ binding.Name = genruntime.ClonePointerToString(source.Name)
+
+ // ProvisioningState
+ if source.ProvisioningState != nil {
+ provisioningState := TrustedAccessRoleBindingProperties_ProvisioningState_STATUS(*source.ProvisioningState)
+ binding.ProvisioningState = &provisioningState
+ } else {
+ binding.ProvisioningState = nil
+ }
+
+ // Roles
+ binding.Roles = genruntime.CloneSliceOfString(source.Roles)
+
+ // SourceResourceId
+ binding.SourceResourceId = genruntime.ClonePointerToString(source.SourceResourceId)
+
+ // SystemData
+ if source.SystemData != nil {
+ var systemDatum SystemData_STATUS
+ err := systemDatum.AssignProperties_From_SystemData_STATUS(source.SystemData)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_From_SystemData_STATUS() to populate field SystemData")
+ }
+ binding.SystemData = &systemDatum
+ } else {
+ binding.SystemData = nil
+ }
+
+ // Type
+ binding.Type = genruntime.ClonePointerToString(source.Type)
+
+ // No error
+ return nil
+}
+
+// AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_STATUS populates the provided destination ManagedClusters_TrustedAccessRoleBinding_STATUS from our ManagedClusters_TrustedAccessRoleBinding_STATUS
+func (binding *ManagedClusters_TrustedAccessRoleBinding_STATUS) AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_STATUS(destination *v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_STATUS) error {
+ // Create a new property bag
+ propertyBag := genruntime.NewPropertyBag()
+
+ // Conditions
+ destination.Conditions = genruntime.CloneSliceOfCondition(binding.Conditions)
+
+ // Id
+ destination.Id = genruntime.ClonePointerToString(binding.Id)
+
+ // Name
+ destination.Name = genruntime.ClonePointerToString(binding.Name)
+
+ // ProvisioningState
+ if binding.ProvisioningState != nil {
+ provisioningState := string(*binding.ProvisioningState)
+ destination.ProvisioningState = &provisioningState
+ } else {
+ destination.ProvisioningState = nil
+ }
+
+ // Roles
+ destination.Roles = genruntime.CloneSliceOfString(binding.Roles)
+
+ // SourceResourceId
+ destination.SourceResourceId = genruntime.ClonePointerToString(binding.SourceResourceId)
+
+ // SystemData
+ if binding.SystemData != nil {
+ var systemDatum v1api20230202ps.SystemData_STATUS
+ err := binding.SystemData.AssignProperties_To_SystemData_STATUS(&systemDatum)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_To_SystemData_STATUS() to populate field SystemData")
+ }
+ destination.SystemData = &systemDatum
+ } else {
+ destination.SystemData = nil
+ }
+
+ // Type
+ destination.Type = genruntime.ClonePointerToString(binding.Type)
+
+ // Update the property bag
+ if len(propertyBag) > 0 {
+ destination.PropertyBag = propertyBag
+ } else {
+ destination.PropertyBag = nil
+ }
+
+ // No error
+ return nil
+}
+
+func init() {
+ SchemeBuilder.Register(&TrustedAccessRoleBinding{}, &TrustedAccessRoleBindingList{})
+}
diff --git a/v2/api/containerservice/v1api20230202preview/trusted_access_role_binding_types_gen_test.go b/v2/api/containerservice/v1api20230202preview/trusted_access_role_binding_types_gen_test.go
new file mode 100644
index 0000000000..73884e31cd
--- /dev/null
+++ b/v2/api/containerservice/v1api20230202preview/trusted_access_role_binding_types_gen_test.go
@@ -0,0 +1,397 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package v1api20230202preview
+
+import (
+ "encoding/json"
+ v1api20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202previewstorage"
+ "github.com/google/go-cmp/cmp"
+ "github.com/google/go-cmp/cmp/cmpopts"
+ "github.com/kr/pretty"
+ "github.com/kylelemons/godebug/diff"
+ "github.com/leanovate/gopter"
+ "github.com/leanovate/gopter/gen"
+ "github.com/leanovate/gopter/prop"
+ "os"
+ "reflect"
+ "testing"
+)
+
+func Test_TrustedAccessRoleBinding_WhenConvertedToHub_RoundTripsWithoutLoss(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MaxSize = 10
+ parameters.MinSuccessfulTests = 10
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip from TrustedAccessRoleBinding to hub returns original",
+ prop.ForAll(RunResourceConversionTestForTrustedAccessRoleBinding, TrustedAccessRoleBindingGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout))
+}
+
+// RunResourceConversionTestForTrustedAccessRoleBinding tests if a specific instance of TrustedAccessRoleBinding round trips to the hub storage version and back losslessly
+func RunResourceConversionTestForTrustedAccessRoleBinding(subject TrustedAccessRoleBinding) string {
+ // Copy subject to make sure conversion doesn't modify it
+ copied := subject.DeepCopy()
+
+ // Convert to our hub version
+ var hub v1api20230202ps.TrustedAccessRoleBinding
+ err := copied.ConvertTo(&hub)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Convert from our hub version
+ var actual TrustedAccessRoleBinding
+ err = actual.ConvertFrom(&hub)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Compare actual with what we started with
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+func Test_TrustedAccessRoleBinding_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MaxSize = 10
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip from TrustedAccessRoleBinding to TrustedAccessRoleBinding via AssignProperties_To_TrustedAccessRoleBinding & AssignProperties_From_TrustedAccessRoleBinding returns original",
+ prop.ForAll(RunPropertyAssignmentTestForTrustedAccessRoleBinding, TrustedAccessRoleBindingGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout))
+}
+
+// RunPropertyAssignmentTestForTrustedAccessRoleBinding tests if a specific instance of TrustedAccessRoleBinding can be assigned to v1api20230202previewstorage and back losslessly
+func RunPropertyAssignmentTestForTrustedAccessRoleBinding(subject TrustedAccessRoleBinding) string {
+ // Copy subject to make sure assignment doesn't modify it
+ copied := subject.DeepCopy()
+
+ // Use AssignPropertiesTo() for the first stage of conversion
+ var other v1api20230202ps.TrustedAccessRoleBinding
+ err := copied.AssignProperties_To_TrustedAccessRoleBinding(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Use AssignPropertiesFrom() to convert back to our original type
+ var actual TrustedAccessRoleBinding
+ err = actual.AssignProperties_From_TrustedAccessRoleBinding(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for a match
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+func Test_TrustedAccessRoleBinding_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 20
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of TrustedAccessRoleBinding via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForTrustedAccessRoleBinding, TrustedAccessRoleBindingGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForTrustedAccessRoleBinding runs a test to see if a specific instance of TrustedAccessRoleBinding round trips to JSON and back losslessly
+func RunJSONSerializationTestForTrustedAccessRoleBinding(subject TrustedAccessRoleBinding) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual TrustedAccessRoleBinding
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of TrustedAccessRoleBinding instances for property testing - lazily instantiated by
+// TrustedAccessRoleBindingGenerator()
+var trustedAccessRoleBindingGenerator gopter.Gen
+
+// TrustedAccessRoleBindingGenerator returns a generator of TrustedAccessRoleBinding instances for property testing.
+func TrustedAccessRoleBindingGenerator() gopter.Gen {
+ if trustedAccessRoleBindingGenerator != nil {
+ return trustedAccessRoleBindingGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddRelatedPropertyGeneratorsForTrustedAccessRoleBinding(generators)
+ trustedAccessRoleBindingGenerator = gen.Struct(reflect.TypeOf(TrustedAccessRoleBinding{}), generators)
+
+ return trustedAccessRoleBindingGenerator
+}
+
+// AddRelatedPropertyGeneratorsForTrustedAccessRoleBinding is a factory method for creating gopter generators
+func AddRelatedPropertyGeneratorsForTrustedAccessRoleBinding(gens map[string]gopter.Gen) {
+ gens["Spec"] = ManagedClusters_TrustedAccessRoleBinding_SpecGenerator()
+ gens["Status"] = ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator()
+}
+
+func Test_ManagedClusters_TrustedAccessRoleBinding_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MaxSize = 10
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip from ManagedClusters_TrustedAccessRoleBinding_Spec to ManagedClusters_TrustedAccessRoleBinding_Spec via AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_Spec & AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_Spec returns original",
+ prop.ForAll(RunPropertyAssignmentTestForManagedClusters_TrustedAccessRoleBinding_Spec, ManagedClusters_TrustedAccessRoleBinding_SpecGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout))
+}
+
+// RunPropertyAssignmentTestForManagedClusters_TrustedAccessRoleBinding_Spec tests if a specific instance of ManagedClusters_TrustedAccessRoleBinding_Spec can be assigned to v1api20230202previewstorage and back losslessly
+func RunPropertyAssignmentTestForManagedClusters_TrustedAccessRoleBinding_Spec(subject ManagedClusters_TrustedAccessRoleBinding_Spec) string {
+ // Copy subject to make sure assignment doesn't modify it
+ copied := subject.DeepCopy()
+
+ // Use AssignPropertiesTo() for the first stage of conversion
+ var other v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_Spec
+ err := copied.AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_Spec(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Use AssignPropertiesFrom() to convert back to our original type
+ var actual ManagedClusters_TrustedAccessRoleBinding_Spec
+ err = actual.AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_Spec(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for a match
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+func Test_ManagedClusters_TrustedAccessRoleBinding_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 80
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusters_TrustedAccessRoleBinding_Spec via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec, ManagedClusters_TrustedAccessRoleBinding_SpecGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec runs a test to see if a specific instance of ManagedClusters_TrustedAccessRoleBinding_Spec round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec(subject ManagedClusters_TrustedAccessRoleBinding_Spec) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusters_TrustedAccessRoleBinding_Spec
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusters_TrustedAccessRoleBinding_Spec instances for property testing - lazily instantiated by
+// ManagedClusters_TrustedAccessRoleBinding_SpecGenerator()
+var managedClusters_TrustedAccessRoleBinding_SpecGenerator gopter.Gen
+
+// ManagedClusters_TrustedAccessRoleBinding_SpecGenerator returns a generator of ManagedClusters_TrustedAccessRoleBinding_Spec instances for property testing.
+func ManagedClusters_TrustedAccessRoleBinding_SpecGenerator() gopter.Gen {
+ if managedClusters_TrustedAccessRoleBinding_SpecGenerator != nil {
+ return managedClusters_TrustedAccessRoleBinding_SpecGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec(generators)
+ managedClusters_TrustedAccessRoleBinding_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_Spec{}), generators)
+
+ return managedClusters_TrustedAccessRoleBinding_SpecGenerator
+}
+
+// AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec is a factory method for creating gopter generators
+func AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec(gens map[string]gopter.Gen) {
+ gens["AzureName"] = gen.AlphaString()
+ gens["Roles"] = gen.SliceOf(gen.AlphaString())
+}
+
+func Test_ManagedClusters_TrustedAccessRoleBinding_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MaxSize = 10
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip from ManagedClusters_TrustedAccessRoleBinding_STATUS to ManagedClusters_TrustedAccessRoleBinding_STATUS via AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_STATUS & AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_STATUS returns original",
+ prop.ForAll(RunPropertyAssignmentTestForManagedClusters_TrustedAccessRoleBinding_STATUS, ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout))
+}
+
+// RunPropertyAssignmentTestForManagedClusters_TrustedAccessRoleBinding_STATUS tests if a specific instance of ManagedClusters_TrustedAccessRoleBinding_STATUS can be assigned to v1api20230202previewstorage and back losslessly
+func RunPropertyAssignmentTestForManagedClusters_TrustedAccessRoleBinding_STATUS(subject ManagedClusters_TrustedAccessRoleBinding_STATUS) string {
+ // Copy subject to make sure assignment doesn't modify it
+ copied := subject.DeepCopy()
+
+ // Use AssignPropertiesTo() for the first stage of conversion
+ var other v1api20230202ps.ManagedClusters_TrustedAccessRoleBinding_STATUS
+ err := copied.AssignProperties_To_ManagedClusters_TrustedAccessRoleBinding_STATUS(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Use AssignPropertiesFrom() to convert back to our original type
+ var actual ManagedClusters_TrustedAccessRoleBinding_STATUS
+ err = actual.AssignProperties_From_ManagedClusters_TrustedAccessRoleBinding_STATUS(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for a match
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+func Test_ManagedClusters_TrustedAccessRoleBinding_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 80
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusters_TrustedAccessRoleBinding_STATUS via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS, ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS runs a test to see if a specific instance of ManagedClusters_TrustedAccessRoleBinding_STATUS round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS(subject ManagedClusters_TrustedAccessRoleBinding_STATUS) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusters_TrustedAccessRoleBinding_STATUS
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusters_TrustedAccessRoleBinding_STATUS instances for property testing - lazily instantiated by
+// ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator()
+var managedClusters_TrustedAccessRoleBinding_STATUSGenerator gopter.Gen
+
+// ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator returns a generator of ManagedClusters_TrustedAccessRoleBinding_STATUS instances for property testing.
+// We first initialize managedClusters_TrustedAccessRoleBinding_STATUSGenerator with a simplified generator based on the
+// fields with primitive types then replacing it with a more complex one that also handles complex fields
+// to ensure any cycles in the object graph properly terminate.
+func ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator() gopter.Gen {
+ if managedClusters_TrustedAccessRoleBinding_STATUSGenerator != nil {
+ return managedClusters_TrustedAccessRoleBinding_STATUSGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(generators)
+ managedClusters_TrustedAccessRoleBinding_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_STATUS{}), generators)
+
+ // The above call to gen.Struct() captures the map, so create a new one
+ generators = make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(generators)
+ AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(generators)
+ managedClusters_TrustedAccessRoleBinding_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_STATUS{}), generators)
+
+ return managedClusters_TrustedAccessRoleBinding_STATUSGenerator
+}
+
+// AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS is a factory method for creating gopter generators
+func AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(gens map[string]gopter.Gen) {
+ gens["Id"] = gen.PtrOf(gen.AlphaString())
+ gens["Name"] = gen.PtrOf(gen.AlphaString())
+ gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf(
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Canceled,
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Deleting,
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Failed,
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Succeeded,
+ TrustedAccessRoleBindingProperties_ProvisioningState_STATUS_Updating))
+ gens["Roles"] = gen.SliceOf(gen.AlphaString())
+ gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString())
+ gens["Type"] = gen.PtrOf(gen.AlphaString())
+}
+
+// AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS is a factory method for creating gopter generators
+func AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(gens map[string]gopter.Gen) {
+ gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator())
+}
diff --git a/v2/api/containerservice/v1api20230202preview/zz_generated.deepcopy.go b/v2/api/containerservice/v1api20230202preview/zz_generated.deepcopy.go
index d443a8c4bf..3f2b9545cf 100644
--- a/v2/api/containerservice/v1api20230202preview/zz_generated.deepcopy.go
+++ b/v2/api/containerservice/v1api20230202preview/zz_generated.deepcopy.go
@@ -6382,6 +6382,26 @@ func (in *ManagedClusterOIDCIssuerProfile_STATUS_ARM) DeepCopy() *ManagedCluster
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusterOperatorConfigMaps) DeepCopyInto(out *ManagedClusterOperatorConfigMaps) {
+ *out = *in
+ if in.OIDCIssuerProfile != nil {
+ in, out := &in.OIDCIssuerProfile, &out.OIDCIssuerProfile
+ *out = new(genruntime.ConfigMapDestination)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorConfigMaps.
+func (in *ManagedClusterOperatorConfigMaps) DeepCopy() *ManagedClusterOperatorConfigMaps {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusterOperatorConfigMaps)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedClusterOperatorSecrets) DeepCopyInto(out *ManagedClusterOperatorSecrets) {
*out = *in
@@ -6410,6 +6430,11 @@ func (in *ManagedClusterOperatorSecrets) DeepCopy() *ManagedClusterOperatorSecre
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedClusterOperatorSpec) DeepCopyInto(out *ManagedClusterOperatorSpec) {
*out = *in
+ if in.ConfigMaps != nil {
+ in, out := &in.ConfigMaps, &out.ConfigMaps
+ *out = new(ManagedClusterOperatorConfigMaps)
+ (*in).DeepCopyInto(*out)
+ }
if in.Secrets != nil {
in, out := &in.Secrets, &out.Secrets
*out = new(ManagedClusterOperatorSecrets)
@@ -10945,6 +10970,153 @@ func (in *ManagedClusters_AgentPool_Spec_ARM) DeepCopy() *ManagedClusters_AgentP
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusters_TrustedAccessRoleBinding_STATUS) DeepCopyInto(out *ManagedClusters_TrustedAccessRoleBinding_STATUS) {
+ *out = *in
+ if in.Conditions != nil {
+ in, out := &in.Conditions, &out.Conditions
+ *out = make([]conditions.Condition, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Id != nil {
+ in, out := &in.Id, &out.Id
+ *out = new(string)
+ **out = **in
+ }
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+ if in.ProvisioningState != nil {
+ in, out := &in.ProvisioningState, &out.ProvisioningState
+ *out = new(TrustedAccessRoleBindingProperties_ProvisioningState_STATUS)
+ **out = **in
+ }
+ if in.Roles != nil {
+ in, out := &in.Roles, &out.Roles
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.SourceResourceId != nil {
+ in, out := &in.SourceResourceId, &out.SourceResourceId
+ *out = new(string)
+ **out = **in
+ }
+ if in.SystemData != nil {
+ in, out := &in.SystemData, &out.SystemData
+ *out = new(SystemData_STATUS)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_TrustedAccessRoleBinding_STATUS.
+func (in *ManagedClusters_TrustedAccessRoleBinding_STATUS) DeepCopy() *ManagedClusters_TrustedAccessRoleBinding_STATUS {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusters_TrustedAccessRoleBinding_STATUS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM) DeepCopyInto(out *ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM) {
+ *out = *in
+ if in.Id != nil {
+ in, out := &in.Id, &out.Id
+ *out = new(string)
+ **out = **in
+ }
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+ if in.Properties != nil {
+ in, out := &in.Properties, &out.Properties
+ *out = new(TrustedAccessRoleBindingProperties_STATUS_ARM)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.SystemData != nil {
+ in, out := &in.SystemData, &out.SystemData
+ *out = new(SystemData_STATUS_ARM)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM.
+func (in *ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM) DeepCopy() *ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusters_TrustedAccessRoleBinding_STATUS_ARM)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusters_TrustedAccessRoleBinding_Spec) DeepCopyInto(out *ManagedClusters_TrustedAccessRoleBinding_Spec) {
+ *out = *in
+ if in.Owner != nil {
+ in, out := &in.Owner, &out.Owner
+ *out = new(genruntime.KnownResourceReference)
+ **out = **in
+ }
+ if in.Roles != nil {
+ in, out := &in.Roles, &out.Roles
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.SourceResourceReference != nil {
+ in, out := &in.SourceResourceReference, &out.SourceResourceReference
+ *out = new(genruntime.ResourceReference)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_TrustedAccessRoleBinding_Spec.
+func (in *ManagedClusters_TrustedAccessRoleBinding_Spec) DeepCopy() *ManagedClusters_TrustedAccessRoleBinding_Spec {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusters_TrustedAccessRoleBinding_Spec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusters_TrustedAccessRoleBinding_Spec_ARM) DeepCopyInto(out *ManagedClusters_TrustedAccessRoleBinding_Spec_ARM) {
+ *out = *in
+ if in.Properties != nil {
+ in, out := &in.Properties, &out.Properties
+ *out = new(TrustedAccessRoleBindingProperties_ARM)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_TrustedAccessRoleBinding_Spec_ARM.
+func (in *ManagedClusters_TrustedAccessRoleBinding_Spec_ARM) DeepCopy() *ManagedClusters_TrustedAccessRoleBinding_Spec_ARM {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusters_TrustedAccessRoleBinding_Spec_ARM)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PortRange) DeepCopyInto(out *PortRange) {
*out = *in
@@ -12205,6 +12377,120 @@ func (in *SystemData_STATUS_ARM) DeepCopy() *SystemData_STATUS_ARM {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TrustedAccessRoleBinding) DeepCopyInto(out *TrustedAccessRoleBinding) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustedAccessRoleBinding.
+func (in *TrustedAccessRoleBinding) DeepCopy() *TrustedAccessRoleBinding {
+ if in == nil {
+ return nil
+ }
+ out := new(TrustedAccessRoleBinding)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *TrustedAccessRoleBinding) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TrustedAccessRoleBindingList) DeepCopyInto(out *TrustedAccessRoleBindingList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]TrustedAccessRoleBinding, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustedAccessRoleBindingList.
+func (in *TrustedAccessRoleBindingList) DeepCopy() *TrustedAccessRoleBindingList {
+ if in == nil {
+ return nil
+ }
+ out := new(TrustedAccessRoleBindingList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *TrustedAccessRoleBindingList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TrustedAccessRoleBindingProperties_ARM) DeepCopyInto(out *TrustedAccessRoleBindingProperties_ARM) {
+ *out = *in
+ if in.Roles != nil {
+ in, out := &in.Roles, &out.Roles
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.SourceResourceId != nil {
+ in, out := &in.SourceResourceId, &out.SourceResourceId
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustedAccessRoleBindingProperties_ARM.
+func (in *TrustedAccessRoleBindingProperties_ARM) DeepCopy() *TrustedAccessRoleBindingProperties_ARM {
+ if in == nil {
+ return nil
+ }
+ out := new(TrustedAccessRoleBindingProperties_ARM)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TrustedAccessRoleBindingProperties_STATUS_ARM) DeepCopyInto(out *TrustedAccessRoleBindingProperties_STATUS_ARM) {
+ *out = *in
+ if in.ProvisioningState != nil {
+ in, out := &in.ProvisioningState, &out.ProvisioningState
+ *out = new(TrustedAccessRoleBindingProperties_ProvisioningState_STATUS)
+ **out = **in
+ }
+ if in.Roles != nil {
+ in, out := &in.Roles, &out.Roles
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.SourceResourceId != nil {
+ in, out := &in.SourceResourceId, &out.SourceResourceId
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustedAccessRoleBindingProperties_STATUS_ARM.
+func (in *TrustedAccessRoleBindingProperties_STATUS_ARM) DeepCopy() *TrustedAccessRoleBindingProperties_STATUS_ARM {
+ if in == nil {
+ return nil
+ }
+ out := new(TrustedAccessRoleBindingProperties_STATUS_ARM)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *UpgradeOverrideSettings) DeepCopyInto(out *UpgradeOverrideSettings) {
*out = *in
diff --git a/v2/api/containerservice/v1api20230202previewstorage/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20230202previewstorage/managed_cluster_types_gen.go
index 3b2f5c0928..1ce411eb98 100644
--- a/v2/api/containerservice/v1api20230202previewstorage/managed_cluster_types_gen.go
+++ b/v2/api/containerservice/v1api20230202previewstorage/managed_cluster_types_gen.go
@@ -4,13 +4,18 @@
package v1api20230202previewstorage
import (
+ "context"
"fmt"
v1api20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201storage"
+ "github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime/configmaps"
+ "github.com/go-logr/logr"
"github.com/pkg/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
+ "sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/conversion"
)
@@ -65,6 +70,25 @@ func (cluster *ManagedCluster) ConvertTo(hub conversion.Hub) error {
return cluster.AssignProperties_To_ManagedCluster(destination)
}
+var _ genruntime.KubernetesExporter = &ManagedCluster{}
+
+// ExportKubernetesResources defines a resource which can create other resources in Kubernetes.
+func (cluster *ManagedCluster) ExportKubernetesResources(_ context.Context, _ genruntime.MetaObject, _ *genericarmclient.GenericClient, _ logr.Logger) ([]client.Object, error) {
+ collector := configmaps.NewCollector(cluster.Namespace)
+ if cluster.Spec.OperatorSpec != nil && cluster.Spec.OperatorSpec.ConfigMaps != nil {
+ if cluster.Status.OidcIssuerProfile != nil {
+ if cluster.Status.OidcIssuerProfile.IssuerURL != nil {
+ collector.AddValue(cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile, *cluster.Status.OidcIssuerProfile.IssuerURL)
+ }
+ }
+ }
+ result, err := collector.Values()
+ if err != nil {
+ return nil, err
+ }
+ return configmaps.SliceToClientObjectSlice(result), nil
+}
+
var _ genruntime.KubernetesResource = &ManagedCluster{}
// AzureName returns the Azure name of the resource
@@ -6228,8 +6252,9 @@ func (profile *ManagedClusterOIDCIssuerProfile_STATUS) AssignProperties_To_Manag
// Storage version of v1api20230202preview.ManagedClusterOperatorSpec
// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure
type ManagedClusterOperatorSpec struct {
- PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
- Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"`
+ ConfigMaps *ManagedClusterOperatorConfigMaps `json:"configMaps,omitempty"`
+ PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
+ Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"`
}
// AssignProperties_From_ManagedClusterOperatorSpec populates our ManagedClusterOperatorSpec from the provided source ManagedClusterOperatorSpec
@@ -6237,6 +6262,18 @@ func (operator *ManagedClusterOperatorSpec) AssignProperties_From_ManagedCluster
// Clone the existing property bag
propertyBag := genruntime.NewPropertyBag(source.PropertyBag)
+ // ConfigMaps
+ if source.ConfigMaps != nil {
+ var configMap ManagedClusterOperatorConfigMaps
+ err := configMap.AssignProperties_From_ManagedClusterOperatorConfigMaps(source.ConfigMaps)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps")
+ }
+ operator.ConfigMaps = &configMap
+ } else {
+ operator.ConfigMaps = nil
+ }
+
// Secrets
if source.Secrets != nil {
var secret ManagedClusterOperatorSecrets
@@ -6274,6 +6311,18 @@ func (operator *ManagedClusterOperatorSpec) AssignProperties_To_ManagedClusterOp
// Clone the existing property bag
propertyBag := genruntime.NewPropertyBag(operator.PropertyBag)
+ // ConfigMaps
+ if operator.ConfigMaps != nil {
+ var configMap v1api20230201s.ManagedClusterOperatorConfigMaps
+ err := operator.ConfigMaps.AssignProperties_To_ManagedClusterOperatorConfigMaps(&configMap)
+ if err != nil {
+ return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps")
+ }
+ destination.ConfigMaps = &configMap
+ } else {
+ destination.ConfigMaps = nil
+ }
+
// Secrets
if operator.Secrets != nil {
var secret v1api20230201s.ManagedClusterOperatorSecrets
@@ -10597,6 +10646,78 @@ func (profile *ManagedClusterNATGatewayProfile_STATUS) AssignProperties_To_Manag
return nil
}
+// Storage version of v1api20230202preview.ManagedClusterOperatorConfigMaps
+type ManagedClusterOperatorConfigMaps struct {
+ OIDCIssuerProfile *genruntime.ConfigMapDestination `json:"oidcIssuerProfile,omitempty"`
+ PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
+}
+
+// AssignProperties_From_ManagedClusterOperatorConfigMaps populates our ManagedClusterOperatorConfigMaps from the provided source ManagedClusterOperatorConfigMaps
+func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_From_ManagedClusterOperatorConfigMaps(source *v1api20230201s.ManagedClusterOperatorConfigMaps) error {
+ // Clone the existing property bag
+ propertyBag := genruntime.NewPropertyBag(source.PropertyBag)
+
+ // OIDCIssuerProfile
+ if source.OIDCIssuerProfile != nil {
+ oidcIssuerProfile := source.OIDCIssuerProfile.Copy()
+ maps.OIDCIssuerProfile = &oidcIssuerProfile
+ } else {
+ maps.OIDCIssuerProfile = nil
+ }
+
+ // Update the property bag
+ if len(propertyBag) > 0 {
+ maps.PropertyBag = propertyBag
+ } else {
+ maps.PropertyBag = nil
+ }
+
+ // Invoke the augmentConversionForManagedClusterOperatorConfigMaps interface (if implemented) to customize the conversion
+ var mapsAsAny any = maps
+ if augmentedMaps, ok := mapsAsAny.(augmentConversionForManagedClusterOperatorConfigMaps); ok {
+ err := augmentedMaps.AssignPropertiesFrom(source)
+ if err != nil {
+ return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion")
+ }
+ }
+
+ // No error
+ return nil
+}
+
+// AssignProperties_To_ManagedClusterOperatorConfigMaps populates the provided destination ManagedClusterOperatorConfigMaps from our ManagedClusterOperatorConfigMaps
+func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_To_ManagedClusterOperatorConfigMaps(destination *v1api20230201s.ManagedClusterOperatorConfigMaps) error {
+ // Clone the existing property bag
+ propertyBag := genruntime.NewPropertyBag(maps.PropertyBag)
+
+ // OIDCIssuerProfile
+ if maps.OIDCIssuerProfile != nil {
+ oidcIssuerProfile := maps.OIDCIssuerProfile.Copy()
+ destination.OIDCIssuerProfile = &oidcIssuerProfile
+ } else {
+ destination.OIDCIssuerProfile = nil
+ }
+
+ // Update the property bag
+ if len(propertyBag) > 0 {
+ destination.PropertyBag = propertyBag
+ } else {
+ destination.PropertyBag = nil
+ }
+
+ // Invoke the augmentConversionForManagedClusterOperatorConfigMaps interface (if implemented) to customize the conversion
+ var mapsAsAny any = maps
+ if augmentedMaps, ok := mapsAsAny.(augmentConversionForManagedClusterOperatorConfigMaps); ok {
+ err := augmentedMaps.AssignPropertiesTo(destination)
+ if err != nil {
+ return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion")
+ }
+ }
+
+ // No error
+ return nil
+}
+
// Storage version of v1api20230202preview.ManagedClusterOperatorSecrets
type ManagedClusterOperatorSecrets struct {
AdminCredentials *genruntime.SecretDestination `json:"adminCredentials,omitempty"`
@@ -12685,6 +12806,11 @@ type augmentConversionForManagedClusterNATGatewayProfile_STATUS interface {
AssignPropertiesTo(dst *v1api20230201s.ManagedClusterNATGatewayProfile_STATUS) error
}
+type augmentConversionForManagedClusterOperatorConfigMaps interface {
+ AssignPropertiesFrom(src *v1api20230201s.ManagedClusterOperatorConfigMaps) error
+ AssignPropertiesTo(dst *v1api20230201s.ManagedClusterOperatorConfigMaps) error
+}
+
type augmentConversionForManagedClusterOperatorSecrets interface {
AssignPropertiesFrom(src *v1api20230201s.ManagedClusterOperatorSecrets) error
AssignPropertiesTo(dst *v1api20230201s.ManagedClusterOperatorSecrets) error
diff --git a/v2/api/containerservice/v1api20230202previewstorage/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20230202previewstorage/managed_cluster_types_gen_test.go
index 4fbdec92ef..1076f296d2 100644
--- a/v2/api/containerservice/v1api20230202previewstorage/managed_cluster_types_gen_test.go
+++ b/v2/api/containerservice/v1api20230202previewstorage/managed_cluster_types_gen_test.go
@@ -3993,6 +3993,7 @@ func ManagedClusterOperatorSpecGenerator() gopter.Gen {
// AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec is a factory method for creating gopter generators
func AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(gens map[string]gopter.Gen) {
+ gens["ConfigMaps"] = gen.PtrOf(ManagedClusterOperatorConfigMapsGenerator())
gens["Secrets"] = gen.PtrOf(ManagedClusterOperatorSecretsGenerator())
}
@@ -8214,6 +8215,103 @@ func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens
gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_STATUSGenerator())
}
+func Test_ManagedClusterOperatorConfigMaps_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MaxSize = 10
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip from ManagedClusterOperatorConfigMaps to ManagedClusterOperatorConfigMaps via AssignProperties_To_ManagedClusterOperatorConfigMaps & AssignProperties_From_ManagedClusterOperatorConfigMaps returns original",
+ prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout))
+}
+
+// RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps tests if a specific instance of ManagedClusterOperatorConfigMaps can be assigned to v1api20230201storage and back losslessly
+func RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string {
+ // Copy subject to make sure assignment doesn't modify it
+ copied := subject.DeepCopy()
+
+ // Use AssignPropertiesTo() for the first stage of conversion
+ var other v1api20230201s.ManagedClusterOperatorConfigMaps
+ err := copied.AssignProperties_To_ManagedClusterOperatorConfigMaps(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Use AssignPropertiesFrom() to convert back to our original type
+ var actual ManagedClusterOperatorConfigMaps
+ err = actual.AssignProperties_From_ManagedClusterOperatorConfigMaps(&other)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for a match
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+func Test_ManagedClusterOperatorConfigMaps_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 100
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusterOperatorConfigMaps via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusterOperatorConfigMaps runs a test to see if a specific instance of ManagedClusterOperatorConfigMaps round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusterOperatorConfigMaps
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusterOperatorConfigMaps instances for property testing - lazily instantiated by
+// ManagedClusterOperatorConfigMapsGenerator()
+var managedClusterOperatorConfigMapsGenerator gopter.Gen
+
+// ManagedClusterOperatorConfigMapsGenerator returns a generator of ManagedClusterOperatorConfigMaps instances for property testing.
+func ManagedClusterOperatorConfigMapsGenerator() gopter.Gen {
+ if managedClusterOperatorConfigMapsGenerator != nil {
+ return managedClusterOperatorConfigMapsGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ managedClusterOperatorConfigMapsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorConfigMaps{}), generators)
+
+ return managedClusterOperatorConfigMapsGenerator
+}
+
func Test_ManagedClusterOperatorSecrets_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) {
t.Parallel()
parameters := gopter.DefaultTestParameters()
diff --git a/v2/api/containerservice/v1api20230202previewstorage/structure.txt b/v2/api/containerservice/v1api20230202previewstorage/structure.txt
index f33a26dd59..c4d1fc746d 100644
--- a/v2/api/containerservice/v1api20230202previewstorage/structure.txt
+++ b/v2/api/containerservice/v1api20230202previewstorage/structure.txt
@@ -291,7 +291,10 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202pre
│ │ ├── OidcIssuerProfile: *Object (2 properties)
│ │ │ ├── Enabled: *bool
│ │ │ └── PropertyBag: genruntime.PropertyBag
-│ │ ├── OperatorSpec: *Object (2 properties)
+│ │ ├── OperatorSpec: *Object (3 properties)
+│ │ │ ├── ConfigMaps: *Object (2 properties)
+│ │ │ │ ├── OIDCIssuerProfile: *genruntime.ConfigMapDestination
+│ │ │ │ └── PropertyBag: genruntime.PropertyBag
│ │ │ ├── PropertyBag: genruntime.PropertyBag
│ │ │ └── Secrets: *Object (3 properties)
│ │ │ ├── AdminCredentials: *genruntime.SecretDestination
@@ -1099,6 +1102,35 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202pre
│ │ ├── DisableOutboundNat: *bool
│ │ └── PropertyBag: genruntime.PropertyBag
│ └── WorkloadRuntime: *string
+├── TrustedAccessRoleBinding: Resource
+│ ├── Owner: github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview.ManagedCluster
+│ ├── Spec: Object (6 properties)
+│ │ ├── AzureName: Validated (3 rules)
+│ │ │ ├── Rule 0: MaxLength: 24
+│ │ │ ├── Rule 1: MinLength: 1
+│ │ │ └── Rule 2: Pattern: "^([A-Za-z0-9-])+$"
+│ │ ├── OriginalVersion: string
+│ │ ├── Owner: *genruntime.KnownResourceReference
+│ │ ├── PropertyBag: genruntime.PropertyBag
+│ │ ├── Roles: string[]
+│ │ └── SourceResourceReference: *genruntime.ResourceReference
+│ └── Status: Object (9 properties)
+│ ├── Conditions: conditions.Condition[]
+│ ├── Id: *string
+│ ├── Name: *string
+│ ├── PropertyBag: genruntime.PropertyBag
+│ ├── ProvisioningState: *string
+│ ├── Roles: string[]
+│ ├── SourceResourceId: *string
+│ ├── SystemData: *Object (7 properties)
+│ │ ├── CreatedAt: *string
+│ │ ├── CreatedBy: *string
+│ │ ├── CreatedByType: *string
+│ │ ├── LastModifiedAt: *string
+│ │ ├── LastModifiedBy: *string
+│ │ ├── LastModifiedByType: *string
+│ │ └── PropertyBag: genruntime.PropertyBag
+│ └── Type: *string
├── augmentConversionForAgentPoolUpgradeSettings: Interface
├── augmentConversionForAgentPoolUpgradeSettings_STATUS: Interface
├── augmentConversionForAzureKeyVaultKms: Interface
@@ -1155,6 +1187,7 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202pre
├── augmentConversionForManagedClusterNATGatewayProfile_STATUS: Interface
├── augmentConversionForManagedClusterOIDCIssuerProfile: Interface
├── augmentConversionForManagedClusterOIDCIssuerProfile_STATUS: Interface
+├── augmentConversionForManagedClusterOperatorConfigMaps: Interface
├── augmentConversionForManagedClusterOperatorSecrets: Interface
├── augmentConversionForManagedClusterOperatorSpec: Interface
├── augmentConversionForManagedClusterPodIdentity: Interface
diff --git a/v2/api/containerservice/v1api20230202previewstorage/trusted_access_role_binding_types_gen.go b/v2/api/containerservice/v1api20230202previewstorage/trusted_access_role_binding_types_gen.go
new file mode 100644
index 0000000000..e8e5be4b95
--- /dev/null
+++ b/v2/api/containerservice/v1api20230202previewstorage/trusted_access_role_binding_types_gen.go
@@ -0,0 +1,214 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package v1api20230202previewstorage
+
+import (
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions"
+ "github.com/pkg/errors"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime/schema"
+)
+
+// +kubebuilder:rbac:groups=containerservice.azure.com,resources=trustedaccessrolebindings,verbs=get;list;watch;create;update;patch;delete
+// +kubebuilder:rbac:groups=containerservice.azure.com,resources={trustedaccessrolebindings/status,trustedaccessrolebindings/finalizers},verbs=get;update;patch
+
+// +kubebuilder:object:root=true
+// +kubebuilder:subresource:status
+// +kubebuilder:storageversion
+// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
+// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity"
+// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason"
+// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message"
+// Storage version of v1api20230202preview.TrustedAccessRoleBinding
+// Generator information:
+// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2023-02-02-preview/managedClusters.json
+// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/trustedAccessRoleBindings/{trustedAccessRoleBindingName}
+type TrustedAccessRoleBinding struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+ Spec ManagedClusters_TrustedAccessRoleBinding_Spec `json:"spec,omitempty"`
+ Status ManagedClusters_TrustedAccessRoleBinding_STATUS `json:"status,omitempty"`
+}
+
+var _ conditions.Conditioner = &TrustedAccessRoleBinding{}
+
+// GetConditions returns the conditions of the resource
+func (binding *TrustedAccessRoleBinding) GetConditions() conditions.Conditions {
+ return binding.Status.Conditions
+}
+
+// SetConditions sets the conditions on the resource status
+func (binding *TrustedAccessRoleBinding) SetConditions(conditions conditions.Conditions) {
+ binding.Status.Conditions = conditions
+}
+
+var _ genruntime.KubernetesResource = &TrustedAccessRoleBinding{}
+
+// AzureName returns the Azure name of the resource
+func (binding *TrustedAccessRoleBinding) AzureName() string {
+ return binding.Spec.AzureName
+}
+
+// GetAPIVersion returns the ARM API version of the resource. This is always "2023-02-02-preview"
+func (binding TrustedAccessRoleBinding) GetAPIVersion() string {
+ return string(APIVersion_Value)
+}
+
+// GetResourceScope returns the scope of the resource
+func (binding *TrustedAccessRoleBinding) GetResourceScope() genruntime.ResourceScope {
+ return genruntime.ResourceScopeResourceGroup
+}
+
+// GetSpec returns the specification of this resource
+func (binding *TrustedAccessRoleBinding) GetSpec() genruntime.ConvertibleSpec {
+ return &binding.Spec
+}
+
+// GetStatus returns the status of this resource
+func (binding *TrustedAccessRoleBinding) GetStatus() genruntime.ConvertibleStatus {
+ return &binding.Status
+}
+
+// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
+func (binding *TrustedAccessRoleBinding) GetType() string {
+ return "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
+}
+
+// NewEmptyStatus returns a new empty (blank) status
+func (binding *TrustedAccessRoleBinding) NewEmptyStatus() genruntime.ConvertibleStatus {
+ return &ManagedClusters_TrustedAccessRoleBinding_STATUS{}
+}
+
+// Owner returns the ResourceReference of the owner
+func (binding *TrustedAccessRoleBinding) Owner() *genruntime.ResourceReference {
+ group, kind := genruntime.LookupOwnerGroupKind(binding.Spec)
+ return &genruntime.ResourceReference{
+ Group: group,
+ Kind: kind,
+ Name: binding.Spec.Owner.Name,
+ }
+}
+
+// SetStatus sets the status of this resource
+func (binding *TrustedAccessRoleBinding) SetStatus(status genruntime.ConvertibleStatus) error {
+ // If we have exactly the right type of status, assign it
+ if st, ok := status.(*ManagedClusters_TrustedAccessRoleBinding_STATUS); ok {
+ binding.Status = *st
+ return nil
+ }
+
+ // Convert status to required version
+ var st ManagedClusters_TrustedAccessRoleBinding_STATUS
+ err := status.ConvertStatusTo(&st)
+ if err != nil {
+ return errors.Wrap(err, "failed to convert status")
+ }
+
+ binding.Status = st
+ return nil
+}
+
+// Hub marks that this TrustedAccessRoleBinding is the hub type for conversion
+func (binding *TrustedAccessRoleBinding) Hub() {}
+
+// OriginalGVK returns a GroupValueKind for the original API version used to create the resource
+func (binding *TrustedAccessRoleBinding) OriginalGVK() *schema.GroupVersionKind {
+ return &schema.GroupVersionKind{
+ Group: GroupVersion.Group,
+ Version: binding.Spec.OriginalVersion,
+ Kind: "TrustedAccessRoleBinding",
+ }
+}
+
+// +kubebuilder:object:root=true
+// Storage version of v1api20230202preview.TrustedAccessRoleBinding
+// Generator information:
+// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/preview/2023-02-02-preview/managedClusters.json
+// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/trustedAccessRoleBindings/{trustedAccessRoleBindingName}
+type TrustedAccessRoleBindingList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []TrustedAccessRoleBinding `json:"items"`
+}
+
+// Storage version of v1api20230202preview.ManagedClusters_TrustedAccessRoleBinding_Spec
+type ManagedClusters_TrustedAccessRoleBinding_Spec struct {
+ // +kubebuilder:validation:MaxLength=24
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:Pattern="^([A-Za-z0-9-])+$"
+ // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
+ // doesn't have to be.
+ AzureName string `json:"azureName,omitempty"`
+ OriginalVersion string `json:"originalVersion,omitempty"`
+
+ // +kubebuilder:validation:Required
+ // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
+ // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
+ // reference to a containerservice.azure.com/ManagedCluster resource
+ Owner *genruntime.KnownResourceReference `group:"containerservice.azure.com" json:"owner,omitempty" kind:"ManagedCluster"`
+ PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
+ Roles []string `json:"roles,omitempty"`
+
+ // +kubebuilder:validation:Required
+ // SourceResourceReference: The ARM resource ID of source resource that trusted access is configured for.
+ SourceResourceReference *genruntime.ResourceReference `armReference:"SourceResourceId" json:"sourceResourceReference,omitempty"`
+}
+
+var _ genruntime.ConvertibleSpec = &ManagedClusters_TrustedAccessRoleBinding_Spec{}
+
+// ConvertSpecFrom populates our ManagedClusters_TrustedAccessRoleBinding_Spec from the provided source
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error {
+ if source == binding {
+ return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec")
+ }
+
+ return source.ConvertSpecTo(binding)
+}
+
+// ConvertSpecTo populates the provided destination from our ManagedClusters_TrustedAccessRoleBinding_Spec
+func (binding *ManagedClusters_TrustedAccessRoleBinding_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error {
+ if destination == binding {
+ return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec")
+ }
+
+ return destination.ConvertSpecFrom(binding)
+}
+
+// Storage version of v1api20230202preview.ManagedClusters_TrustedAccessRoleBinding_STATUS
+type ManagedClusters_TrustedAccessRoleBinding_STATUS struct {
+ Conditions []conditions.Condition `json:"conditions,omitempty"`
+ Id *string `json:"id,omitempty"`
+ Name *string `json:"name,omitempty"`
+ PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
+ ProvisioningState *string `json:"provisioningState,omitempty"`
+ Roles []string `json:"roles,omitempty"`
+ SourceResourceId *string `json:"sourceResourceId,omitempty"`
+ SystemData *SystemData_STATUS `json:"systemData,omitempty"`
+ Type *string `json:"type,omitempty"`
+}
+
+var _ genruntime.ConvertibleStatus = &ManagedClusters_TrustedAccessRoleBinding_STATUS{}
+
+// ConvertStatusFrom populates our ManagedClusters_TrustedAccessRoleBinding_STATUS from the provided source
+func (binding *ManagedClusters_TrustedAccessRoleBinding_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error {
+ if source == binding {
+ return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus")
+ }
+
+ return source.ConvertStatusTo(binding)
+}
+
+// ConvertStatusTo populates the provided destination from our ManagedClusters_TrustedAccessRoleBinding_STATUS
+func (binding *ManagedClusters_TrustedAccessRoleBinding_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error {
+ if destination == binding {
+ return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus")
+ }
+
+ return destination.ConvertStatusFrom(binding)
+}
+
+func init() {
+ SchemeBuilder.Register(&TrustedAccessRoleBinding{}, &TrustedAccessRoleBindingList{})
+}
diff --git a/v2/api/containerservice/v1api20230202previewstorage/trusted_access_role_binding_types_gen_test.go b/v2/api/containerservice/v1api20230202previewstorage/trusted_access_role_binding_types_gen_test.go
new file mode 100644
index 0000000000..ce455e8aaa
--- /dev/null
+++ b/v2/api/containerservice/v1api20230202previewstorage/trusted_access_role_binding_types_gen_test.go
@@ -0,0 +1,223 @@
+// Code generated by azure-service-operator-codegen. DO NOT EDIT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+package v1api20230202previewstorage
+
+import (
+ "encoding/json"
+ "github.com/google/go-cmp/cmp"
+ "github.com/google/go-cmp/cmp/cmpopts"
+ "github.com/kr/pretty"
+ "github.com/kylelemons/godebug/diff"
+ "github.com/leanovate/gopter"
+ "github.com/leanovate/gopter/gen"
+ "github.com/leanovate/gopter/prop"
+ "os"
+ "reflect"
+ "testing"
+)
+
+func Test_TrustedAccessRoleBinding_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 20
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of TrustedAccessRoleBinding via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForTrustedAccessRoleBinding, TrustedAccessRoleBindingGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForTrustedAccessRoleBinding runs a test to see if a specific instance of TrustedAccessRoleBinding round trips to JSON and back losslessly
+func RunJSONSerializationTestForTrustedAccessRoleBinding(subject TrustedAccessRoleBinding) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual TrustedAccessRoleBinding
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of TrustedAccessRoleBinding instances for property testing - lazily instantiated by
+// TrustedAccessRoleBindingGenerator()
+var trustedAccessRoleBindingGenerator gopter.Gen
+
+// TrustedAccessRoleBindingGenerator returns a generator of TrustedAccessRoleBinding instances for property testing.
+func TrustedAccessRoleBindingGenerator() gopter.Gen {
+ if trustedAccessRoleBindingGenerator != nil {
+ return trustedAccessRoleBindingGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddRelatedPropertyGeneratorsForTrustedAccessRoleBinding(generators)
+ trustedAccessRoleBindingGenerator = gen.Struct(reflect.TypeOf(TrustedAccessRoleBinding{}), generators)
+
+ return trustedAccessRoleBindingGenerator
+}
+
+// AddRelatedPropertyGeneratorsForTrustedAccessRoleBinding is a factory method for creating gopter generators
+func AddRelatedPropertyGeneratorsForTrustedAccessRoleBinding(gens map[string]gopter.Gen) {
+ gens["Spec"] = ManagedClusters_TrustedAccessRoleBinding_SpecGenerator()
+ gens["Status"] = ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator()
+}
+
+func Test_ManagedClusters_TrustedAccessRoleBinding_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 80
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusters_TrustedAccessRoleBinding_Spec via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec, ManagedClusters_TrustedAccessRoleBinding_SpecGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec runs a test to see if a specific instance of ManagedClusters_TrustedAccessRoleBinding_Spec round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_Spec(subject ManagedClusters_TrustedAccessRoleBinding_Spec) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusters_TrustedAccessRoleBinding_Spec
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusters_TrustedAccessRoleBinding_Spec instances for property testing - lazily instantiated by
+// ManagedClusters_TrustedAccessRoleBinding_SpecGenerator()
+var managedClusters_TrustedAccessRoleBinding_SpecGenerator gopter.Gen
+
+// ManagedClusters_TrustedAccessRoleBinding_SpecGenerator returns a generator of ManagedClusters_TrustedAccessRoleBinding_Spec instances for property testing.
+func ManagedClusters_TrustedAccessRoleBinding_SpecGenerator() gopter.Gen {
+ if managedClusters_TrustedAccessRoleBinding_SpecGenerator != nil {
+ return managedClusters_TrustedAccessRoleBinding_SpecGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec(generators)
+ managedClusters_TrustedAccessRoleBinding_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_Spec{}), generators)
+
+ return managedClusters_TrustedAccessRoleBinding_SpecGenerator
+}
+
+// AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec is a factory method for creating gopter generators
+func AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_Spec(gens map[string]gopter.Gen) {
+ gens["AzureName"] = gen.AlphaString()
+ gens["OriginalVersion"] = gen.AlphaString()
+ gens["Roles"] = gen.SliceOf(gen.AlphaString())
+}
+
+func Test_ManagedClusters_TrustedAccessRoleBinding_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) {
+ t.Parallel()
+ parameters := gopter.DefaultTestParameters()
+ parameters.MinSuccessfulTests = 80
+ parameters.MaxSize = 3
+ properties := gopter.NewProperties(parameters)
+ properties.Property(
+ "Round trip of ManagedClusters_TrustedAccessRoleBinding_STATUS via JSON returns original",
+ prop.ForAll(RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS, ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator()))
+ properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
+}
+
+// RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS runs a test to see if a specific instance of ManagedClusters_TrustedAccessRoleBinding_STATUS round trips to JSON and back losslessly
+func RunJSONSerializationTestForManagedClusters_TrustedAccessRoleBinding_STATUS(subject ManagedClusters_TrustedAccessRoleBinding_STATUS) string {
+ // Serialize to JSON
+ bin, err := json.Marshal(subject)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Deserialize back into memory
+ var actual ManagedClusters_TrustedAccessRoleBinding_STATUS
+ err = json.Unmarshal(bin, &actual)
+ if err != nil {
+ return err.Error()
+ }
+
+ // Check for outcome
+ match := cmp.Equal(subject, actual, cmpopts.EquateEmpty())
+ if !match {
+ actualFmt := pretty.Sprint(actual)
+ subjectFmt := pretty.Sprint(subject)
+ result := diff.Diff(subjectFmt, actualFmt)
+ return result
+ }
+
+ return ""
+}
+
+// Generator of ManagedClusters_TrustedAccessRoleBinding_STATUS instances for property testing - lazily instantiated by
+// ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator()
+var managedClusters_TrustedAccessRoleBinding_STATUSGenerator gopter.Gen
+
+// ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator returns a generator of ManagedClusters_TrustedAccessRoleBinding_STATUS instances for property testing.
+// We first initialize managedClusters_TrustedAccessRoleBinding_STATUSGenerator with a simplified generator based on the
+// fields with primitive types then replacing it with a more complex one that also handles complex fields
+// to ensure any cycles in the object graph properly terminate.
+func ManagedClusters_TrustedAccessRoleBinding_STATUSGenerator() gopter.Gen {
+ if managedClusters_TrustedAccessRoleBinding_STATUSGenerator != nil {
+ return managedClusters_TrustedAccessRoleBinding_STATUSGenerator
+ }
+
+ generators := make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(generators)
+ managedClusters_TrustedAccessRoleBinding_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_STATUS{}), generators)
+
+ // The above call to gen.Struct() captures the map, so create a new one
+ generators = make(map[string]gopter.Gen)
+ AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(generators)
+ AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(generators)
+ managedClusters_TrustedAccessRoleBinding_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_TrustedAccessRoleBinding_STATUS{}), generators)
+
+ return managedClusters_TrustedAccessRoleBinding_STATUSGenerator
+}
+
+// AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS is a factory method for creating gopter generators
+func AddIndependentPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(gens map[string]gopter.Gen) {
+ gens["Id"] = gen.PtrOf(gen.AlphaString())
+ gens["Name"] = gen.PtrOf(gen.AlphaString())
+ gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString())
+ gens["Roles"] = gen.SliceOf(gen.AlphaString())
+ gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString())
+ gens["Type"] = gen.PtrOf(gen.AlphaString())
+}
+
+// AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS is a factory method for creating gopter generators
+func AddRelatedPropertyGeneratorsForManagedClusters_TrustedAccessRoleBinding_STATUS(gens map[string]gopter.Gen) {
+ gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator())
+}
diff --git a/v2/api/containerservice/v1api20230202previewstorage/zz_generated.deepcopy.go b/v2/api/containerservice/v1api20230202previewstorage/zz_generated.deepcopy.go
index 832640fe4b..1a7eca0785 100644
--- a/v2/api/containerservice/v1api20230202previewstorage/zz_generated.deepcopy.go
+++ b/v2/api/containerservice/v1api20230202previewstorage/zz_generated.deepcopy.go
@@ -3555,6 +3555,33 @@ func (in *ManagedClusterOIDCIssuerProfile_STATUS) DeepCopy() *ManagedClusterOIDC
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusterOperatorConfigMaps) DeepCopyInto(out *ManagedClusterOperatorConfigMaps) {
+ *out = *in
+ if in.OIDCIssuerProfile != nil {
+ in, out := &in.OIDCIssuerProfile, &out.OIDCIssuerProfile
+ *out = new(genruntime.ConfigMapDestination)
+ **out = **in
+ }
+ if in.PropertyBag != nil {
+ in, out := &in.PropertyBag, &out.PropertyBag
+ *out = make(genruntime.PropertyBag, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorConfigMaps.
+func (in *ManagedClusterOperatorConfigMaps) DeepCopy() *ManagedClusterOperatorConfigMaps {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusterOperatorConfigMaps)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedClusterOperatorSecrets) DeepCopyInto(out *ManagedClusterOperatorSecrets) {
*out = *in
@@ -3590,6 +3617,11 @@ func (in *ManagedClusterOperatorSecrets) DeepCopy() *ManagedClusterOperatorSecre
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ManagedClusterOperatorSpec) DeepCopyInto(out *ManagedClusterOperatorSpec) {
*out = *in
+ if in.ConfigMaps != nil {
+ in, out := &in.ConfigMaps, &out.ConfigMaps
+ *out = new(ManagedClusterOperatorConfigMaps)
+ (*in).DeepCopyInto(*out)
+ }
if in.PropertyBag != nil {
in, out := &in.PropertyBag, &out.PropertyBag
*out = make(genruntime.PropertyBag, len(*in))
@@ -6459,6 +6491,107 @@ func (in *ManagedClusters_AgentPool_Spec) DeepCopy() *ManagedClusters_AgentPool_
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusters_TrustedAccessRoleBinding_STATUS) DeepCopyInto(out *ManagedClusters_TrustedAccessRoleBinding_STATUS) {
+ *out = *in
+ if in.Conditions != nil {
+ in, out := &in.Conditions, &out.Conditions
+ *out = make([]conditions.Condition, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Id != nil {
+ in, out := &in.Id, &out.Id
+ *out = new(string)
+ **out = **in
+ }
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+ if in.PropertyBag != nil {
+ in, out := &in.PropertyBag, &out.PropertyBag
+ *out = make(genruntime.PropertyBag, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.ProvisioningState != nil {
+ in, out := &in.ProvisioningState, &out.ProvisioningState
+ *out = new(string)
+ **out = **in
+ }
+ if in.Roles != nil {
+ in, out := &in.Roles, &out.Roles
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.SourceResourceId != nil {
+ in, out := &in.SourceResourceId, &out.SourceResourceId
+ *out = new(string)
+ **out = **in
+ }
+ if in.SystemData != nil {
+ in, out := &in.SystemData, &out.SystemData
+ *out = new(SystemData_STATUS)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_TrustedAccessRoleBinding_STATUS.
+func (in *ManagedClusters_TrustedAccessRoleBinding_STATUS) DeepCopy() *ManagedClusters_TrustedAccessRoleBinding_STATUS {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusters_TrustedAccessRoleBinding_STATUS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ManagedClusters_TrustedAccessRoleBinding_Spec) DeepCopyInto(out *ManagedClusters_TrustedAccessRoleBinding_Spec) {
+ *out = *in
+ if in.Owner != nil {
+ in, out := &in.Owner, &out.Owner
+ *out = new(genruntime.KnownResourceReference)
+ **out = **in
+ }
+ if in.PropertyBag != nil {
+ in, out := &in.PropertyBag, &out.PropertyBag
+ *out = make(genruntime.PropertyBag, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.Roles != nil {
+ in, out := &in.Roles, &out.Roles
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.SourceResourceReference != nil {
+ in, out := &in.SourceResourceReference, &out.SourceResourceReference
+ *out = new(genruntime.ResourceReference)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_TrustedAccessRoleBinding_Spec.
+func (in *ManagedClusters_TrustedAccessRoleBinding_Spec) DeepCopy() *ManagedClusters_TrustedAccessRoleBinding_Spec {
+ if in == nil {
+ return nil
+ }
+ out := new(ManagedClusters_TrustedAccessRoleBinding_Spec)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PortRange) DeepCopyInto(out *PortRange) {
*out = *in
@@ -7180,6 +7313,65 @@ func (in *SystemData_STATUS) DeepCopy() *SystemData_STATUS {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TrustedAccessRoleBinding) DeepCopyInto(out *TrustedAccessRoleBinding) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustedAccessRoleBinding.
+func (in *TrustedAccessRoleBinding) DeepCopy() *TrustedAccessRoleBinding {
+ if in == nil {
+ return nil
+ }
+ out := new(TrustedAccessRoleBinding)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *TrustedAccessRoleBinding) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TrustedAccessRoleBindingList) DeepCopyInto(out *TrustedAccessRoleBindingList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]TrustedAccessRoleBinding, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustedAccessRoleBindingList.
+func (in *TrustedAccessRoleBindingList) DeepCopy() *TrustedAccessRoleBindingList {
+ if in == nil {
+ return nil
+ }
+ out := new(TrustedAccessRoleBindingList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *TrustedAccessRoleBindingList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *UpgradeOverrideSettings) DeepCopyInto(out *UpgradeOverrideSettings) {
*out = *in
diff --git a/v2/api/containerservice/versions_matrix.md b/v2/api/containerservice/versions_matrix.md
index 6741a5bf73..7005d82ae0 100644
--- a/v2/api/containerservice/versions_matrix.md
+++ b/v2/api/containerservice/versions_matrix.md
@@ -205,6 +205,8 @@
| ManagedClustersAgentPool | v1api20210501 | v1api20230201 | v1api20230202preview | v1beta20210501 |
| ManagedClusters_AgentPool_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | v1beta20210501 |
| ManagedClusters_AgentPool_Spec | v1api20210501 | v1api20230201 | v1api20230202preview | v1beta20210501 |
+| ManagedClusters_TrustedAccessRoleBinding_STATUS | | | v1api20230202preview | |
+| ManagedClusters_TrustedAccessRoleBinding_Spec | | | v1api20230202preview | |
| NetworkDataplane | | | v1api20230202preview | |
| NetworkDataplane_STATUS | | | v1api20230202preview | |
| NetworkMode | | | v1api20230202preview | |
@@ -248,6 +250,10 @@
| SystemData_CreatedByType_STATUS | | v1api20230201 | v1api20230202preview | |
| SystemData_LastModifiedByType_STATUS | | v1api20230201 | v1api20230202preview | |
| SystemData_STATUS | | v1api20230201 | v1api20230202preview | |
+| TrustedAccessRoleBinding | | | v1api20230202preview | |
+| TrustedAccessRoleBindingProperties | | | v1api20230202preview | |
+| TrustedAccessRoleBindingProperties_ProvisioningState_STATUS | | | v1api20230202preview | |
+| TrustedAccessRoleBindingProperties_STATUS | | | v1api20230202preview | |
| UpgradeOverrideSettings | | | v1api20230202preview | |
| UpgradeOverrideSettings_STATUS | | | v1api20230202preview | |
| UserAssignedIdentity | v1api20210501 | v1api20230201 | v1api20230202preview | v1beta20210501 |
diff --git a/v2/api/dbforpostgresql/customizations/flexible_server_extensions.go b/v2/api/dbforpostgresql/customizations/flexible_server_extensions.go
index a73e75ceaa..21a2236094 100644
--- a/v2/api/dbforpostgresql/customizations/flexible_server_extensions.go
+++ b/v2/api/dbforpostgresql/customizations/flexible_server_extensions.go
@@ -17,10 +17,11 @@ import (
"sigs.k8s.io/controller-runtime/pkg/conversion"
postgresql "github.com/Azure/azure-service-operator/v2/api/dbforpostgresql/v1api20210601storage"
- "github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
. "github.com/Azure/azure-service-operator/v2/internal/logging"
+
+ "github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
+ "github.com/Azure/azure-service-operator/v2/internal/resolver"
"github.com/Azure/azure-service-operator/v2/internal/set"
- "github.com/Azure/azure-service-operator/v2/internal/util/kubeclient"
"github.com/Azure/azure-service-operator/v2/internal/util/to"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/extensions"
@@ -102,7 +103,7 @@ func (ext *FlexibleServerExtension) PreReconcileCheck(
_ context.Context,
obj genruntime.MetaObject,
owner genruntime.MetaObject,
- _ kubeclient.Client,
+ _ *resolver.Resolver,
_ *genericarmclient.GenericClient,
_ logr.Logger,
_ extensions.PreReconcileCheckFunc,
diff --git a/v2/api/dbforpostgresql/customizations/flexible_servers_database_extensions.go b/v2/api/dbforpostgresql/customizations/flexible_servers_database_extensions.go
index 4c4f988d06..f9b2e7e087 100644
--- a/v2/api/dbforpostgresql/customizations/flexible_servers_database_extensions.go
+++ b/v2/api/dbforpostgresql/customizations/flexible_servers_database_extensions.go
@@ -9,15 +9,15 @@ import (
"context"
"fmt"
- "github.com/Azure/azure-service-operator/v2/internal/util/kubeclient"
- "github.com/Azure/azure-service-operator/v2/pkg/genruntime/extensions"
-
"github.com/go-logr/logr"
api "github.com/Azure/azure-service-operator/v2/api/dbforpostgresql/v1api20210601"
hub "github.com/Azure/azure-service-operator/v2/api/dbforpostgresql/v1api20210601storage"
+
"github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
+ "github.com/Azure/azure-service-operator/v2/internal/resolver"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime/extensions"
)
var _ extensions.PreReconciliationChecker = &FlexibleServersDatabaseExtension{}
@@ -26,7 +26,7 @@ func (extension *FlexibleServersDatabaseExtension) PreReconcileCheck(
_ context.Context,
_ genruntime.MetaObject,
owner genruntime.MetaObject,
- _ kubeclient.Client,
+ _ *resolver.Resolver,
_ *genericarmclient.GenericClient,
_ logr.Logger,
_ extensions.PreReconcileCheckFunc,
diff --git a/v2/api/dbforpostgresql/customizations/flexible_servers_firewall_rule_extensions.go b/v2/api/dbforpostgresql/customizations/flexible_servers_firewall_rule_extensions.go
index 261d4a1b25..f12be14b58 100644
--- a/v2/api/dbforpostgresql/customizations/flexible_servers_firewall_rule_extensions.go
+++ b/v2/api/dbforpostgresql/customizations/flexible_servers_firewall_rule_extensions.go
@@ -9,14 +9,14 @@ import (
"context"
"fmt"
- "github.com/Azure/azure-service-operator/v2/internal/util/kubeclient"
- "github.com/Azure/azure-service-operator/v2/pkg/genruntime/extensions"
-
"github.com/go-logr/logr"
postgresql "github.com/Azure/azure-service-operator/v2/api/dbforpostgresql/v1api20210601storage"
+
"github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
+ "github.com/Azure/azure-service-operator/v2/internal/resolver"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
+ "github.com/Azure/azure-service-operator/v2/pkg/genruntime/extensions"
)
var _ extensions.PreReconciliationChecker = &FlexibleServersFirewallRuleExtension{}
@@ -25,7 +25,7 @@ func (ext *FlexibleServersFirewallRuleExtension) PreReconcileCheck(
_ context.Context,
_ genruntime.MetaObject,
owner genruntime.MetaObject,
- _ kubeclient.Client,
+ _ *resolver.Resolver,
_ *genericarmclient.GenericClient,
_ logr.Logger,
_ extensions.PreReconcileCheckFunc,
diff --git a/v2/api/managedidentity/v1api20220131preview/federated_identity_credential_types_gen.go b/v2/api/managedidentity/v1api20220131preview/federated_identity_credential_types_gen.go
index fe0c02f401..6422f9b6d8 100644
--- a/v2/api/managedidentity/v1api20220131preview/federated_identity_credential_types_gen.go
+++ b/v2/api/managedidentity/v1api20220131preview/federated_identity_credential_types_gen.go
@@ -225,7 +225,7 @@ func (credential *FederatedIdentityCredential) ValidateUpdate(old runtime.Object
// createValidations validates the creation of the resource
func (credential *FederatedIdentityCredential) createValidations() []func() error {
- return []func() error{credential.validateResourceReferences}
+ return []func() error{credential.validateResourceReferences, credential.validateOptionalConfigMapReferences}
}
// deleteValidations validates the deletion of the resource
@@ -239,7 +239,20 @@ func (credential *FederatedIdentityCredential) updateValidations() []func(old ru
func(old runtime.Object) error {
return credential.validateResourceReferences()
},
- credential.validateWriteOnceProperties}
+ credential.validateWriteOnceProperties,
+ func(old runtime.Object) error {
+ return credential.validateOptionalConfigMapReferences()
+ },
+ }
+}
+
+// validateOptionalConfigMapReferences validates all optional configmap reference pairs to ensure that at most 1 is set
+func (credential *FederatedIdentityCredential) validateOptionalConfigMapReferences() error {
+ refs, err := reflecthelpers.FindOptionalConfigMapReferences(&credential.Spec)
+ if err != nil {
+ return err
+ }
+ return genruntime.ValidateOptionalConfigMapReferences(refs)
}
// validateResourceReferences validates all resource references
@@ -346,9 +359,11 @@ type UserAssignedIdentities_FederatedIdentityCredential_Spec struct {
// doesn't have to be.
AzureName string `json:"azureName,omitempty"`
- // +kubebuilder:validation:Required
// Issuer: The URL of the issuer to be trusted.
- Issuer *string `json:"issuer,omitempty"`
+ Issuer *string `json:"issuer,omitempty" optionalConfigMapPair:"Issuer"`
+
+ // IssuerFromConfig: The URL of the issuer to be trusted.
+ IssuerFromConfig *genruntime.ConfigMapReference `json:"issuerFromConfig,omitempty" optionalConfigMapPair:"Issuer"`
// +kubebuilder:validation:Required
// Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
@@ -356,9 +371,11 @@ type UserAssignedIdentities_FederatedIdentityCredential_Spec struct {
// reference to a managedidentity.azure.com/UserAssignedIdentity resource
Owner *genruntime.KnownResourceReference `group:"managedidentity.azure.com" json:"owner,omitempty" kind:"UserAssignedIdentity"`
- // +kubebuilder:validation:Required
// Subject: The identifier of the external identity.
- Subject *string `json:"subject,omitempty"`
+ Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"`
+
+ // SubjectFromConfig: The identifier of the external identity.
+ SubjectFromConfig *genruntime.ConfigMapReference `json:"subjectFromConfig,omitempty" optionalConfigMapPair:"Subject"`
}
var _ genruntime.ARMTransformer = &UserAssignedIdentities_FederatedIdentityCredential_Spec{}
@@ -376,7 +393,9 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Conve
// Set property ‘Properties’:
if credential.Audiences != nil ||
credential.Issuer != nil ||
- credential.Subject != nil {
+ credential.IssuerFromConfig != nil ||
+ credential.Subject != nil ||
+ credential.SubjectFromConfig != nil {
result.Properties = &FederatedIdentityCredentialProperties_ARM{}
}
for _, item := range credential.Audiences {
@@ -386,10 +405,26 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Conve
issuer := *credential.Issuer
result.Properties.Issuer = &issuer
}
+ if credential.IssuerFromConfig != nil {
+ issuerValue, err := resolved.ResolvedConfigMaps.Lookup(*credential.IssuerFromConfig)
+ if err != nil {
+ return nil, errors.Wrap(err, "looking up configmap for property Issuer")
+ }
+ issuer := issuerValue
+ result.Properties.Issuer = &issuer
+ }
if credential.Subject != nil {
subject := *credential.Subject
result.Properties.Subject = &subject
}
+ if credential.SubjectFromConfig != nil {
+ subjectValue, err := resolved.ResolvedConfigMaps.Lookup(*credential.SubjectFromConfig)
+ if err != nil {
+ return nil, errors.Wrap(err, "looking up configmap for property Subject")
+ }
+ subject := subjectValue
+ result.Properties.Subject = &subject
+ }
return result, nil
}
@@ -425,6 +460,8 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Popul
}
}
+ // no assignment for property ‘IssuerFromConfig’
+
// Set property ‘Owner’:
credential.Owner = &genruntime.KnownResourceReference{Name: owner.Name}
@@ -437,6 +474,8 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Popul
}
}
+ // no assignment for property ‘SubjectFromConfig’
+
// No error
return nil
}
@@ -503,6 +542,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Issuer
credential.Issuer = genruntime.ClonePointerToString(source.Issuer)
+ // IssuerFromConfig
+ if source.IssuerFromConfig != nil {
+ issuerFromConfig := source.IssuerFromConfig.Copy()
+ credential.IssuerFromConfig = &issuerFromConfig
+ } else {
+ credential.IssuerFromConfig = nil
+ }
+
// Owner
if source.Owner != nil {
owner := source.Owner.Copy()
@@ -514,6 +561,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Subject
credential.Subject = genruntime.ClonePointerToString(source.Subject)
+ // SubjectFromConfig
+ if source.SubjectFromConfig != nil {
+ subjectFromConfig := source.SubjectFromConfig.Copy()
+ credential.SubjectFromConfig = &subjectFromConfig
+ } else {
+ credential.SubjectFromConfig = nil
+ }
+
// No error
return nil
}
@@ -532,6 +587,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Issuer
destination.Issuer = genruntime.ClonePointerToString(credential.Issuer)
+ // IssuerFromConfig
+ if credential.IssuerFromConfig != nil {
+ issuerFromConfig := credential.IssuerFromConfig.Copy()
+ destination.IssuerFromConfig = &issuerFromConfig
+ } else {
+ destination.IssuerFromConfig = nil
+ }
+
// OriginalVersion
destination.OriginalVersion = credential.OriginalVersion()
@@ -546,6 +609,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Subject
destination.Subject = genruntime.ClonePointerToString(credential.Subject)
+ // SubjectFromConfig
+ if credential.SubjectFromConfig != nil {
+ subjectFromConfig := credential.SubjectFromConfig.Copy()
+ destination.SubjectFromConfig = &subjectFromConfig
+ } else {
+ destination.SubjectFromConfig = nil
+ }
+
// Update the property bag
if len(propertyBag) > 0 {
destination.PropertyBag = propertyBag
diff --git a/v2/api/managedidentity/v1api20220131preview/structure.txt b/v2/api/managedidentity/v1api20220131preview/structure.txt
index ee3f1e1a2a..5eef9c935e 100644
--- a/v2/api/managedidentity/v1api20220131preview/structure.txt
+++ b/v2/api/managedidentity/v1api20220131preview/structure.txt
@@ -4,12 +4,14 @@ github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20220131prev
│ └── "2022-01-31-preview"
├── FederatedIdentityCredential: Resource
│ ├── Owner: UserAssignedIdentity
-│ ├── Spec: Object (5 properties)
+│ ├── Spec: Object (7 properties)
│ │ ├── Audiences: string[]
│ │ ├── AzureName: string
│ │ ├── Issuer: *string
+│ │ ├── IssuerFromConfig: *genruntime.ConfigMapReference
│ │ ├── Owner: *genruntime.KnownResourceReference
-│ │ └── Subject: *string
+│ │ ├── Subject: *string
+│ │ └── SubjectFromConfig: *genruntime.ConfigMapReference
│ └── Status: Object (7 properties)
│ ├── Audiences: string[]
│ ├── Conditions: conditions.Condition[]
diff --git a/v2/api/managedidentity/v1api20220131preview/user_assigned_identities_federated_identity_credential_spec_arm_types_gen.go b/v2/api/managedidentity/v1api20220131preview/user_assigned_identities_federated_identity_credential_spec_arm_types_gen.go
index fb5d8b37a4..c08101c00c 100644
--- a/v2/api/managedidentity/v1api20220131preview/user_assigned_identities_federated_identity_credential_spec_arm_types_gen.go
+++ b/v2/api/managedidentity/v1api20220131preview/user_assigned_identities_federated_identity_credential_spec_arm_types_gen.go
@@ -35,8 +35,8 @@ type FederatedIdentityCredentialProperties_ARM struct {
Audiences []string `json:"audiences,omitempty"`
// Issuer: The URL of the issuer to be trusted.
- Issuer *string `json:"issuer,omitempty"`
+ Issuer *string `json:"issuer,omitempty" optionalConfigMapPair:"Issuer"`
// Subject: The identifier of the external identity.
- Subject *string `json:"subject,omitempty"`
+ Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"`
}
diff --git a/v2/api/managedidentity/v1api20220131preview/zz_generated.deepcopy.go b/v2/api/managedidentity/v1api20220131preview/zz_generated.deepcopy.go
index a7a6b41a6e..f98f6ee29f 100644
--- a/v2/api/managedidentity/v1api20220131preview/zz_generated.deepcopy.go
+++ b/v2/api/managedidentity/v1api20220131preview/zz_generated.deepcopy.go
@@ -235,6 +235,11 @@ func (in *UserAssignedIdentities_FederatedIdentityCredential_Spec) DeepCopyInto(
*out = new(string)
**out = **in
}
+ if in.IssuerFromConfig != nil {
+ in, out := &in.IssuerFromConfig, &out.IssuerFromConfig
+ *out = new(genruntime.ConfigMapReference)
+ **out = **in
+ }
if in.Owner != nil {
in, out := &in.Owner, &out.Owner
*out = new(genruntime.KnownResourceReference)
@@ -245,6 +250,11 @@ func (in *UserAssignedIdentities_FederatedIdentityCredential_Spec) DeepCopyInto(
*out = new(string)
**out = **in
}
+ if in.SubjectFromConfig != nil {
+ in, out := &in.SubjectFromConfig, &out.SubjectFromConfig
+ *out = new(genruntime.ConfigMapReference)
+ **out = **in
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentities_FederatedIdentityCredential_Spec.
diff --git a/v2/api/managedidentity/v1api20220131previewstorage/federated_identity_credential_types_gen.go b/v2/api/managedidentity/v1api20220131previewstorage/federated_identity_credential_types_gen.go
index eb1522bc2b..432d903ca1 100644
--- a/v2/api/managedidentity/v1api20220131previewstorage/federated_identity_credential_types_gen.go
+++ b/v2/api/managedidentity/v1api20220131previewstorage/federated_identity_credential_types_gen.go
@@ -145,17 +145,19 @@ type UserAssignedIdentities_FederatedIdentityCredential_Spec struct {
// AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
// doesn't have to be.
- AzureName string `json:"azureName,omitempty"`
- Issuer *string `json:"issuer,omitempty"`
- OriginalVersion string `json:"originalVersion,omitempty"`
+ AzureName string `json:"azureName,omitempty"`
+ Issuer *string `json:"issuer,omitempty" optionalConfigMapPair:"Issuer"`
+ IssuerFromConfig *genruntime.ConfigMapReference `json:"issuerFromConfig,omitempty" optionalConfigMapPair:"Issuer"`
+ OriginalVersion string `json:"originalVersion,omitempty"`
// +kubebuilder:validation:Required
// Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
// controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
// reference to a managedidentity.azure.com/UserAssignedIdentity resource
- Owner *genruntime.KnownResourceReference `group:"managedidentity.azure.com" json:"owner,omitempty" kind:"UserAssignedIdentity"`
- PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
- Subject *string `json:"subject,omitempty"`
+ Owner *genruntime.KnownResourceReference `group:"managedidentity.azure.com" json:"owner,omitempty" kind:"UserAssignedIdentity"`
+ PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
+ Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"`
+ SubjectFromConfig *genruntime.ConfigMapReference `json:"subjectFromConfig,omitempty" optionalConfigMapPair:"Subject"`
}
var _ genruntime.ConvertibleSpec = &UserAssignedIdentities_FederatedIdentityCredential_Spec{}
diff --git a/v2/api/managedidentity/v1api20220131previewstorage/structure.txt b/v2/api/managedidentity/v1api20220131previewstorage/structure.txt
index 08e5d696ea..f9e0bb200a 100644
--- a/v2/api/managedidentity/v1api20220131previewstorage/structure.txt
+++ b/v2/api/managedidentity/v1api20220131previewstorage/structure.txt
@@ -4,14 +4,16 @@ github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20220131prev
│ └── "2022-01-31-preview"
└── FederatedIdentityCredential: Resource
├── Owner: github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20220131preview.UserAssignedIdentity
- ├── Spec: Object (7 properties)
+ ├── Spec: Object (9 properties)
│ ├── Audiences: string[]
│ ├── AzureName: string
│ ├── Issuer: *string
+ │ ├── IssuerFromConfig: *genruntime.ConfigMapReference
│ ├── OriginalVersion: string
│ ├── Owner: *genruntime.KnownResourceReference
│ ├── PropertyBag: genruntime.PropertyBag
- │ └── Subject: *string
+ │ ├── Subject: *string
+ │ └── SubjectFromConfig: *genruntime.ConfigMapReference
└── Status: Object (8 properties)
├── Audiences: string[]
├── Conditions: conditions.Condition[]
diff --git a/v2/api/managedidentity/v1api20220131previewstorage/zz_generated.deepcopy.go b/v2/api/managedidentity/v1api20220131previewstorage/zz_generated.deepcopy.go
index addf0571a0..aa6078f384 100644
--- a/v2/api/managedidentity/v1api20220131previewstorage/zz_generated.deepcopy.go
+++ b/v2/api/managedidentity/v1api20220131previewstorage/zz_generated.deepcopy.go
@@ -147,6 +147,11 @@ func (in *UserAssignedIdentities_FederatedIdentityCredential_Spec) DeepCopyInto(
*out = new(string)
**out = **in
}
+ if in.IssuerFromConfig != nil {
+ in, out := &in.IssuerFromConfig, &out.IssuerFromConfig
+ *out = new(genruntime.ConfigMapReference)
+ **out = **in
+ }
if in.Owner != nil {
in, out := &in.Owner, &out.Owner
*out = new(genruntime.KnownResourceReference)
@@ -164,6 +169,11 @@ func (in *UserAssignedIdentities_FederatedIdentityCredential_Spec) DeepCopyInto(
*out = new(string)
**out = **in
}
+ if in.SubjectFromConfig != nil {
+ in, out := &in.SubjectFromConfig, &out.SubjectFromConfig
+ *out = new(genruntime.ConfigMapReference)
+ **out = **in
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentities_FederatedIdentityCredential_Spec.
diff --git a/v2/api/managedidentity/v1beta20220131preview/federated_identity_credential_types_gen.go b/v2/api/managedidentity/v1beta20220131preview/federated_identity_credential_types_gen.go
index dfd7da2a38..a9daea6ec7 100644
--- a/v2/api/managedidentity/v1beta20220131preview/federated_identity_credential_types_gen.go
+++ b/v2/api/managedidentity/v1beta20220131preview/federated_identity_credential_types_gen.go
@@ -226,7 +226,7 @@ func (credential *FederatedIdentityCredential) ValidateUpdate(old runtime.Object
// createValidations validates the creation of the resource
func (credential *FederatedIdentityCredential) createValidations() []func() error {
- return []func() error{credential.validateResourceReferences}
+ return []func() error{credential.validateResourceReferences, credential.validateOptionalConfigMapReferences}
}
// deleteValidations validates the deletion of the resource
@@ -240,7 +240,20 @@ func (credential *FederatedIdentityCredential) updateValidations() []func(old ru
func(old runtime.Object) error {
return credential.validateResourceReferences()
},
- credential.validateWriteOnceProperties}
+ credential.validateWriteOnceProperties,
+ func(old runtime.Object) error {
+ return credential.validateOptionalConfigMapReferences()
+ },
+ }
+}
+
+// validateOptionalConfigMapReferences validates all optional configmap reference pairs to ensure that at most 1 is set
+func (credential *FederatedIdentityCredential) validateOptionalConfigMapReferences() error {
+ refs, err := reflecthelpers.FindOptionalConfigMapReferences(&credential.Spec)
+ if err != nil {
+ return err
+ }
+ return genruntime.ValidateOptionalConfigMapReferences(refs)
}
// validateResourceReferences validates all resource references
@@ -343,19 +356,17 @@ type UserAssignedIdentities_FederatedIdentityCredential_Spec struct {
// AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
// doesn't have to be.
- AzureName string `json:"azureName,omitempty"`
-
- // +kubebuilder:validation:Required
- Issuer *string `json:"issuer,omitempty"`
+ AzureName string `json:"azureName,omitempty"`
+ Issuer *string `json:"issuer,omitempty" optionalConfigMapPair:"Issuer"`
+ IssuerFromConfig *genruntime.ConfigMapReference `json:"issuerFromConfig,omitempty" optionalConfigMapPair:"Issuer"`
// +kubebuilder:validation:Required
// Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
// controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
// reference to a managedidentity.azure.com/UserAssignedIdentity resource
- Owner *genruntime.KnownResourceReference `group:"managedidentity.azure.com" json:"owner,omitempty" kind:"UserAssignedIdentity"`
-
- // +kubebuilder:validation:Required
- Subject *string `json:"subject,omitempty"`
+ Owner *genruntime.KnownResourceReference `group:"managedidentity.azure.com" json:"owner,omitempty" kind:"UserAssignedIdentity"`
+ Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"`
+ SubjectFromConfig *genruntime.ConfigMapReference `json:"subjectFromConfig,omitempty" optionalConfigMapPair:"Subject"`
}
var _ genruntime.ARMTransformer = &UserAssignedIdentities_FederatedIdentityCredential_Spec{}
@@ -373,7 +384,9 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Conve
// Set property ‘Properties’:
if credential.Audiences != nil ||
credential.Issuer != nil ||
- credential.Subject != nil {
+ credential.IssuerFromConfig != nil ||
+ credential.Subject != nil ||
+ credential.SubjectFromConfig != nil {
result.Properties = &FederatedIdentityCredentialProperties_ARM{}
}
for _, item := range credential.Audiences {
@@ -383,10 +396,26 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Conve
issuer := *credential.Issuer
result.Properties.Issuer = &issuer
}
+ if credential.IssuerFromConfig != nil {
+ issuerValue, err := resolved.ResolvedConfigMaps.Lookup(*credential.IssuerFromConfig)
+ if err != nil {
+ return nil, errors.Wrap(err, "looking up configmap for property Issuer")
+ }
+ issuer := issuerValue
+ result.Properties.Issuer = &issuer
+ }
if credential.Subject != nil {
subject := *credential.Subject
result.Properties.Subject = &subject
}
+ if credential.SubjectFromConfig != nil {
+ subjectValue, err := resolved.ResolvedConfigMaps.Lookup(*credential.SubjectFromConfig)
+ if err != nil {
+ return nil, errors.Wrap(err, "looking up configmap for property Subject")
+ }
+ subject := subjectValue
+ result.Properties.Subject = &subject
+ }
return result, nil
}
@@ -422,6 +451,8 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Popul
}
}
+ // no assignment for property ‘IssuerFromConfig’
+
// Set property ‘Owner’:
credential.Owner = &genruntime.KnownResourceReference{Name: owner.Name}
@@ -434,6 +465,8 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Popul
}
}
+ // no assignment for property ‘SubjectFromConfig’
+
// No error
return nil
}
@@ -500,6 +533,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Issuer
credential.Issuer = genruntime.ClonePointerToString(source.Issuer)
+ // IssuerFromConfig
+ if source.IssuerFromConfig != nil {
+ issuerFromConfig := source.IssuerFromConfig.Copy()
+ credential.IssuerFromConfig = &issuerFromConfig
+ } else {
+ credential.IssuerFromConfig = nil
+ }
+
// Owner
if source.Owner != nil {
owner := source.Owner.Copy()
@@ -511,6 +552,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Subject
credential.Subject = genruntime.ClonePointerToString(source.Subject)
+ // SubjectFromConfig
+ if source.SubjectFromConfig != nil {
+ subjectFromConfig := source.SubjectFromConfig.Copy()
+ credential.SubjectFromConfig = &subjectFromConfig
+ } else {
+ credential.SubjectFromConfig = nil
+ }
+
// No error
return nil
}
@@ -529,6 +578,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Issuer
destination.Issuer = genruntime.ClonePointerToString(credential.Issuer)
+ // IssuerFromConfig
+ if credential.IssuerFromConfig != nil {
+ issuerFromConfig := credential.IssuerFromConfig.Copy()
+ destination.IssuerFromConfig = &issuerFromConfig
+ } else {
+ destination.IssuerFromConfig = nil
+ }
+
// OriginalVersion
destination.OriginalVersion = credential.OriginalVersion()
@@ -543,6 +600,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Subject
destination.Subject = genruntime.ClonePointerToString(credential.Subject)
+ // SubjectFromConfig
+ if credential.SubjectFromConfig != nil {
+ subjectFromConfig := credential.SubjectFromConfig.Copy()
+ destination.SubjectFromConfig = &subjectFromConfig
+ } else {
+ destination.SubjectFromConfig = nil
+ }
+
// Update the property bag
if len(propertyBag) > 0 {
destination.PropertyBag = propertyBag
diff --git a/v2/api/managedidentity/v1beta20220131preview/structure.txt b/v2/api/managedidentity/v1beta20220131preview/structure.txt
index 482b4412a9..58d562ef6a 100644
--- a/v2/api/managedidentity/v1beta20220131preview/structure.txt
+++ b/v2/api/managedidentity/v1beta20220131preview/structure.txt
@@ -4,12 +4,14 @@ github.com/Azure/azure-service-operator/v2/api/managedidentity/v1beta20220131pre
│ └── "2022-01-31-preview"
├── FederatedIdentityCredential: Resource
│ ├── Owner: github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20220131preview.UserAssignedIdentity
-│ ├── Spec: Object (5 properties)
+│ ├── Spec: Object (7 properties)
│ │ ├── Audiences: string[]
│ │ ├── AzureName: string
│ │ ├── Issuer: *string
+│ │ ├── IssuerFromConfig: *genruntime.ConfigMapReference
│ │ ├── Owner: *genruntime.KnownResourceReference
-│ │ └── Subject: *string
+│ │ ├── Subject: *string
+│ │ └── SubjectFromConfig: *genruntime.ConfigMapReference
│ └── Status: Object (7 properties)
│ ├── Audiences: string[]
│ ├── Conditions: conditions.Condition[]
diff --git a/v2/api/managedidentity/v1beta20220131preview/user_assigned_identities_federated_identity_credential_spec_arm_types_gen.go b/v2/api/managedidentity/v1beta20220131preview/user_assigned_identities_federated_identity_credential_spec_arm_types_gen.go
index a32cdbfabe..997817b4e9 100644
--- a/v2/api/managedidentity/v1beta20220131preview/user_assigned_identities_federated_identity_credential_spec_arm_types_gen.go
+++ b/v2/api/managedidentity/v1beta20220131preview/user_assigned_identities_federated_identity_credential_spec_arm_types_gen.go
@@ -31,6 +31,6 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec_ARM) G
// Deprecated version of FederatedIdentityCredentialProperties. Use v1api20220131preview.FederatedIdentityCredentialProperties instead
type FederatedIdentityCredentialProperties_ARM struct {
Audiences []string `json:"audiences,omitempty"`
- Issuer *string `json:"issuer,omitempty"`
- Subject *string `json:"subject,omitempty"`
+ Issuer *string `json:"issuer,omitempty" optionalConfigMapPair:"Issuer"`
+ Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"`
}
diff --git a/v2/api/managedidentity/v1beta20220131preview/zz_generated.deepcopy.go b/v2/api/managedidentity/v1beta20220131preview/zz_generated.deepcopy.go
index 228dde292c..14b60249a2 100644
--- a/v2/api/managedidentity/v1beta20220131preview/zz_generated.deepcopy.go
+++ b/v2/api/managedidentity/v1beta20220131preview/zz_generated.deepcopy.go
@@ -235,6 +235,11 @@ func (in *UserAssignedIdentities_FederatedIdentityCredential_Spec) DeepCopyInto(
*out = new(string)
**out = **in
}
+ if in.IssuerFromConfig != nil {
+ in, out := &in.IssuerFromConfig, &out.IssuerFromConfig
+ *out = new(genruntime.ConfigMapReference)
+ **out = **in
+ }
if in.Owner != nil {
in, out := &in.Owner, &out.Owner
*out = new(genruntime.KnownResourceReference)
@@ -245,6 +250,11 @@ func (in *UserAssignedIdentities_FederatedIdentityCredential_Spec) DeepCopyInto(
*out = new(string)
**out = **in
}
+ if in.SubjectFromConfig != nil {
+ in, out := &in.SubjectFromConfig, &out.SubjectFromConfig
+ *out = new(genruntime.ConfigMapReference)
+ **out = **in
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentities_FederatedIdentityCredential_Spec.
diff --git a/v2/api/managedidentity/v1beta20220131previewstorage/federated_identity_credential_types_gen.go b/v2/api/managedidentity/v1beta20220131previewstorage/federated_identity_credential_types_gen.go
index f8cbc96a0f..29e8bcc9a2 100644
--- a/v2/api/managedidentity/v1beta20220131previewstorage/federated_identity_credential_types_gen.go
+++ b/v2/api/managedidentity/v1beta20220131previewstorage/federated_identity_credential_types_gen.go
@@ -235,17 +235,19 @@ type UserAssignedIdentities_FederatedIdentityCredential_Spec struct {
// AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it
// doesn't have to be.
- AzureName string `json:"azureName,omitempty"`
- Issuer *string `json:"issuer,omitempty"`
- OriginalVersion string `json:"originalVersion,omitempty"`
+ AzureName string `json:"azureName,omitempty"`
+ Issuer *string `json:"issuer,omitempty" optionalConfigMapPair:"Issuer"`
+ IssuerFromConfig *genruntime.ConfigMapReference `json:"issuerFromConfig,omitempty" optionalConfigMapPair:"Issuer"`
+ OriginalVersion string `json:"originalVersion,omitempty"`
// +kubebuilder:validation:Required
// Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also
// controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a
// reference to a managedidentity.azure.com/UserAssignedIdentity resource
- Owner *genruntime.KnownResourceReference `group:"managedidentity.azure.com" json:"owner,omitempty" kind:"UserAssignedIdentity"`
- PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
- Subject *string `json:"subject,omitempty"`
+ Owner *genruntime.KnownResourceReference `group:"managedidentity.azure.com" json:"owner,omitempty" kind:"UserAssignedIdentity"`
+ PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"`
+ Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"`
+ SubjectFromConfig *genruntime.ConfigMapReference `json:"subjectFromConfig,omitempty" optionalConfigMapPair:"Subject"`
}
var _ genruntime.ConvertibleSpec = &UserAssignedIdentities_FederatedIdentityCredential_Spec{}
@@ -312,6 +314,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Issuer
credential.Issuer = genruntime.ClonePointerToString(source.Issuer)
+ // IssuerFromConfig
+ if source.IssuerFromConfig != nil {
+ issuerFromConfig := source.IssuerFromConfig.Copy()
+ credential.IssuerFromConfig = &issuerFromConfig
+ } else {
+ credential.IssuerFromConfig = nil
+ }
+
// OriginalVersion
credential.OriginalVersion = source.OriginalVersion
@@ -326,6 +336,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Subject
credential.Subject = genruntime.ClonePointerToString(source.Subject)
+ // SubjectFromConfig
+ if source.SubjectFromConfig != nil {
+ subjectFromConfig := source.SubjectFromConfig.Copy()
+ credential.SubjectFromConfig = &subjectFromConfig
+ } else {
+ credential.SubjectFromConfig = nil
+ }
+
// Update the property bag
if len(propertyBag) > 0 {
credential.PropertyBag = propertyBag
@@ -360,6 +378,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Issuer
destination.Issuer = genruntime.ClonePointerToString(credential.Issuer)
+ // IssuerFromConfig
+ if credential.IssuerFromConfig != nil {
+ issuerFromConfig := credential.IssuerFromConfig.Copy()
+ destination.IssuerFromConfig = &issuerFromConfig
+ } else {
+ destination.IssuerFromConfig = nil
+ }
+
// OriginalVersion
destination.OriginalVersion = credential.OriginalVersion
@@ -374,6 +400,14 @@ func (credential *UserAssignedIdentities_FederatedIdentityCredential_Spec) Assig
// Subject
destination.Subject = genruntime.ClonePointerToString(credential.Subject)
+ // SubjectFromConfig
+ if credential.SubjectFromConfig != nil {
+ subjectFromConfig := credential.SubjectFromConfig.Copy()
+ destination.SubjectFromConfig = &subjectFromConfig
+ } else {
+ destination.SubjectFromConfig = nil
+ }
+
// Update the property bag
if len(propertyBag) > 0 {
destination.PropertyBag = propertyBag
diff --git a/v2/api/managedidentity/v1beta20220131previewstorage/structure.txt b/v2/api/managedidentity/v1beta20220131previewstorage/structure.txt
index 498845ef4c..47495e936a 100644
--- a/v2/api/managedidentity/v1beta20220131previewstorage/structure.txt
+++ b/v2/api/managedidentity/v1beta20220131previewstorage/structure.txt
@@ -4,14 +4,16 @@ github.com/Azure/azure-service-operator/v2/api/managedidentity/v1beta20220131pre
│ └── "2022-01-31-preview"
├── FederatedIdentityCredential: Resource
│ ├── Owner: github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20220131preview.UserAssignedIdentity
-│ ├── Spec: Object (7 properties)
+│ ├── Spec: Object (9 properties)
│ │ ├── Audiences: string[]
│ │ ├── AzureName: string
│ │ ├── Issuer: *string
+│ │ ├── IssuerFromConfig: *genruntime.ConfigMapReference
│ │ ├── OriginalVersion: string
│ │ ├── Owner: *genruntime.KnownResourceReference
│ │ ├── PropertyBag: genruntime.PropertyBag
-│ │ └── Subject: *string
+│ │ ├── Subject: *string
+│ │ └── SubjectFromConfig: *genruntime.ConfigMapReference
│ └── Status: Object (8 properties)
│ ├── Audiences: string[]
│ ├── Conditions: conditions.Condition[]
diff --git a/v2/api/managedidentity/v1beta20220131previewstorage/zz_generated.deepcopy.go b/v2/api/managedidentity/v1beta20220131previewstorage/zz_generated.deepcopy.go
index b35667583b..22e6cbea68 100644
--- a/v2/api/managedidentity/v1beta20220131previewstorage/zz_generated.deepcopy.go
+++ b/v2/api/managedidentity/v1beta20220131previewstorage/zz_generated.deepcopy.go
@@ -147,6 +147,11 @@ func (in *UserAssignedIdentities_FederatedIdentityCredential_Spec) DeepCopyInto(
*out = new(string)
**out = **in
}
+ if in.IssuerFromConfig != nil {
+ in, out := &in.IssuerFromConfig, &out.IssuerFromConfig
+ *out = new(genruntime.ConfigMapReference)
+ **out = **in
+ }
if in.Owner != nil {
in, out := &in.Owner, &out.Owner
*out = new(genruntime.KnownResourceReference)
@@ -164,6 +169,11 @@ func (in *UserAssignedIdentities_FederatedIdentityCredential_Spec) DeepCopyInto(
*out = new(string)
**out = **in
}
+ if in.SubjectFromConfig != nil {
+ in, out := &in.SubjectFromConfig, &out.SubjectFromConfig
+ *out = new(genruntime.ConfigMapReference)
+ **out = **in
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentities_FederatedIdentityCredential_Spec.
diff --git a/v2/api/network/customizations/private_endpoints_extensions.go b/v2/api/network/customizations/private_endpoints_extensions.go
index ba3459e4a2..8273fe05ff 100644
--- a/v2/api/network/customizations/private_endpoints_extensions.go
+++ b/v2/api/network/customizations/private_endpoints_extensions.go
@@ -12,8 +12,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/conversion"
network "github.com/Azure/azure-service-operator/v2/api/network/v1api20220701storage"
+
"github.com/Azure/azure-service-operator/v2/internal/genericarmclient"
- "github.com/Azure/azure-service-operator/v2/internal/util/kubeclient"
+ "github.com/Azure/azure-service-operator/v2/internal/resolver"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime"
"github.com/Azure/azure-service-operator/v2/pkg/genruntime/extensions"
)
@@ -24,7 +25,7 @@ func (extension *PrivateEndpointExtension) PostReconcileCheck(
_ context.Context,
obj genruntime.MetaObject,
_ genruntime.MetaObject,
- _ kubeclient.Client,
+ _ *resolver.Resolver,
_ *genericarmclient.GenericClient,
_ logr.Logger,
_ extensions.PostReconcileCheckFunc) (extensions.PostReconcileCheckResult, error) {
diff --git a/v2/azure-arm.yaml b/v2/azure-arm.yaml
index 7184511b50..2580e1eebd 100644
--- a/v2/azure-arm.yaml
+++ b/v2/azure-arm.yaml
@@ -580,7 +580,7 @@ status:
#
# $generatedConfigs: