Skip to content

Commit

Permalink
Incorporate CI and ARM feedback from azure-rest-api-specs to v2024-08…
Browse files Browse the repository at this point in the history
…-12-preview API (#3727)

* api changes

fix tag package-2023-11
this was wrong in the readme

remove UserAssignedIdentities
top level fields must not have additionalproperties

update the default tag to latest

define a new IdentityType with x-ms-enum

modelAsString on identityType x-ms-enum should be false

rename IdentityType to ResourceIdentityType to match v3/types.json

make client

add descriptions to all new API fields

make client

fix unit test that was failing as a result of removing the UserAssignedIdentity type from the API

Adjust a doc comment according to feedback

make client

* add platformworkloadidentityroleset to API definition and examples

Update client generation to account for swagger subfolder

make client

fix pwip and validatestatic unit tests

fix relative path to common-types

migrate from common-types/v3 to common-types/v6
it was requested that we use the latest version of
common types. This involves some changes to our examples
to match the UUID expected.

move from Identity to ManagedServiceIdentity type
defined in common-types/v6

use modelerfour.lenient-model-deduplication=true
avoids python client generation issues

convert PlatformWorkloadIdentity to map

ARO-4382 fix unit test cases

make generate swagger

fix unit tests

revert naming openShiftCluster.ManagedServiceIdentity to Identity

fix prod code and unit tests post-rebase, reference common-types
directly for the identity property

* more swagger CI fixes
* fix examples to contain identity and type
* remove PlatformWorkloadIdentityRoleSetUpdate

oct 16th changes

oct 17th changes

fix issues post-rebase

* update readme to contain suppression for avoidAdditionalProperties

* fix ModelValidation error by converting example IDs to resourceIDs

* Update python/go clients

* Update az aro extension to enumerate platform_workload_identities as a dict instead of a list

* Fix python linter issues

* configure suppression for PatchBodyParametersSchema

appease the linter, fix subscriptionID type in util/azureclient

appease the linter again

correct log statement, use better naming

* regenerate examples
* changes operatorName and roleDefinitionName in PWIRS_List.json

---------

Co-authored-by: Tanmay Satam <[email protected]>
  • Loading branch information
cadenmarchese and tsatam authored Oct 29, 2024
1 parent d373eff commit faf377c
Show file tree
Hide file tree
Showing 337 changed files with 4,720 additions and 4,189 deletions.
18 changes: 9 additions & 9 deletions .sha256sum
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
6182ae0b21f71602ac4deb2f04ca4446182795982d160cee9643ab5f3d68db12 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2020-04-30/redhatopenshift.json
8d07850b3e105c16a397c459261dd78feb7bc20f45f26d9cec5137edaf16fa8d swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/preview/2021-09-01-preview/redhatopenshift.json
e4e80ae293dce1a6acfde17fcbd1399487a2fa3587babe6bc69c4ebbdabaa570 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2022-04-01/redhatopenshift.json
b1f1de0fe40d05de90742b17928968923b936adc294000f58974f50a297581dd swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2022-09-04/redhatopenshift.json
01ba9562a8dac2824998ff0ad0d2465f79e6a66597bdb321e9409b9f2d12d222 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2023-04-01/redhatopenshift.json
c023515341196746454c0ae7af077d40d3ec13f6b88b33cb558f0a7ab17a5a24 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/preview/2023-07-01-preview/redhatopenshift.json
440748951dd1c3b34b5ccbdcb7cd966e3b89490887a1f1d64429561fad789515 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2023-09-04/redhatopenshift.json
74a46fdde6ceb0121fe1515c7e11e902dd921b54cffe693307fb02b3dc88f26e swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2023-11-22/redhatopenshift.json
5849bcb518f6c7a6942a7eafb1d2edd107a18ad489c823e0262aad4bc509da9f swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/preview/2024-08-12-preview/redhatopenshift.json
b9e1c53e7b02da3eefc7ce684206aaf26bcdea5c57c185abad9c7c6922ba347a swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2020-04-30/redhatopenshift.json
16028ea68957d5444a0ac4799498f167e4fdf75bbbdafff1fb36d0bc826ce34f swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/preview/2021-09-01-preview/redhatopenshift.json
a92373b9b2f50ea02b8c21ca930d6809b9c25f90fb8b203c0f5e222e0031a80d swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2022-04-01/redhatopenshift.json
c392d570595aef3f96b1a0510c5fbf99760a3728e0a7826670cb84746d59a507 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2022-09-04/redhatopenshift.json
695273c782d580c2c0d549c16ad5694cdffc0829c95fe587212afcb79a1e3566 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2023-04-01/redhatopenshift.json
e9b88ecfecd9c3486341993612ade38fa6a4678f1ae06faa69513655682d39fb swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/preview/2023-07-01-preview/redhatopenshift.json
22761c2f004997e339355a93953538ccb8b9954c931cf5296c5108946556ff10 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2023-09-04/redhatopenshift.json
a04c231ccd66c1a092e3d8e3aad02c2a0880be7643b5c11b42069d39749b8999 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/stable/2023-11-22/redhatopenshift.json
56b12adca2f9fe98053716433a3d6383adeed7dea8f477a58f9f9fbd7178fd3d swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/preview/2024-08-12-preview/redhatopenshift.json
3 changes: 2 additions & 1 deletion hack/build-client.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ function checksum() {
local API_VERSION=$1
local FOLDER=$2

sha256sum swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/"$FOLDER"/"$API_VERSION"/redhatopenshift.json >>.sha256sum
sha256sum swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/openshiftclusters/"$FOLDER"/"$API_VERSION"/redhatopenshift.json >>.sha256sum
}

function generate_golang() {
Expand Down Expand Up @@ -68,6 +68,7 @@ function generate_python() {
"${AUTOREST_IMAGE}" \
--use=@autorest/python@~5.12.0 \
--use=@autorest/modelerfour@~4.20.0 \
--modelerfour.lenient-model-deduplication=true \
--version=~3.6.2 \
--python \
--azure-arm \
Expand Down
56 changes: 40 additions & 16 deletions pkg/api/admin/openshiftcluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type OpenShiftCluster struct {
Location string `json:"location,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
Properties OpenShiftClusterProperties `json:"properties,omitempty"`
Identity *Identity `json:"identity,omitempty"`
Identity *ManagedServiceIdentity `json:"managedServiceIdentity,omitempty"`
OperatorFlagsMergeStrategy string `json:"operatorFlagsMergeStrategy,omitempty" mutable:"true"`
}

Expand Down Expand Up @@ -427,34 +427,58 @@ type IngressProfile struct {

// PlatformWorkloadIdentityProfile encapsulates all information that is specific to workload identity clusters.
type PlatformWorkloadIdentityProfile struct {
UpgradeableTo *UpgradeableTo `json:"upgradeableTo,omitempty"`
PlatformWorkloadIdentities []PlatformWorkloadIdentity `json:"platformWorkloadIdentities,omitempty"`
UpgradeableTo *UpgradeableTo `json:"upgradeableTo,omitempty"`
PlatformWorkloadIdentities map[string]PlatformWorkloadIdentity `json:"platformWorkloadIdentities,omitempty"`
}

// UpgradeableTo stores a single OpenShift version a workload identity cluster can be upgraded to
type UpgradeableTo string

// PlatformWorkloadIdentity stores information representing a single workload identity.
type PlatformWorkloadIdentity struct {
OperatorName string `json:"operatorName,omitempty"`
ResourceID string `json:"resourceId,omitempty"`
ClientID string `json:"clientId,omitempty" swagger:"readOnly"`
ObjectID string `json:"objectId,omitempty" swagger:"readOnly"`
// The resource ID of the PlatformWorkloadIdentity resource
ResourceID string `json:"resourceId,omitempty"`

// The ClientID of the PlatformWorkloadIdentity resource
ClientID string `json:"clientId,omitempty" swagger:"readOnly"`

// The ObjectID of the PlatformWorkloadIdentity resource
ObjectID string `json:"objectId,omitempty" swagger:"readOnly"`
}

// ClusterUserAssignedIdentity stores information about a user-assigned managed identity in a predefined format required by Microsoft's Managed Identity team.
type ClusterUserAssignedIdentity struct {
ClientID string `json:"clientId,omitempty"`
// UserAssignedIdentity stores information about a user-assigned managed identity in a predefined format required by Microsoft's Managed Identity team.
type UserAssignedIdentity struct {
// The ClientID of the ClusterUserAssignedIdentity resource
ClientID string `json:"clientId,omitempty"`

// The PrincipalID of the ClusterUserAssignedIdentity resource
PrincipalID string `json:"principalId,omitempty"`
}

// UserAssignedIdentities stores a mapping from resource IDs of managed identities to their client/principal IDs.
type UserAssignedIdentities map[string]ClusterUserAssignedIdentity
// The ManagedServiceIdentity type.
type ManagedServiceIdentityType string

// ManagedServiceIdentityType constants
const (
ManagedServiceIdentityNone ManagedServiceIdentityType = "None"
ManagedServiceIdentitySystemAssigned ManagedServiceIdentityType = "SystemAssigned"
ManagedServiceIdentityUserAssigned ManagedServiceIdentityType = "UserAssigned"
ManagedServiceIdentitySystemAssignedUserAssigned ManagedServiceIdentityType = "SystemAssigned,UserAssigned"
)

// ManagedServiceIdentity stores information about the cluster MSI(s) in a workload identity cluster.
type ManagedServiceIdentity struct {
// The type of the ManagedServiceIdentity resource.
Type ManagedServiceIdentityType `json:"type,omitempty"`

// The PrincipalID of the Identity resource.
PrincipalID string `json:"principalId,omitempty" swagger:"readOnly"`

// The TenantID provided by the MSI RP
TenantID string `json:"tenantId,omitempty" swagger:"readOnly"`

// Identity stores information about the cluster MSI(s) in a workload identity cluster.
type Identity struct {
Type string `json:"type,omitempty"`
UserAssignedIdentities UserAssignedIdentities `json:"userAssignedIdentities,omitempty"`
// A map of user assigned identities attached to the cluster, specified in a type required by Microsoft's Managed Identity team.
UserAssignedIdentities map[string]UserAssignedIdentity `json:"userAssignedIdentities,omitempty"`
}

// Install represents an install process.
Expand Down
60 changes: 42 additions & 18 deletions pkg/api/admin/openshiftcluster_convert.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,10 +178,10 @@ func (c openShiftClusterConverter) ToExternal(oc *api.OpenShiftCluster) interfac
}

if oc.Identity != nil {
out.Identity.Type = oc.Identity.Type
out.Identity.UserAssignedIdentities = make(map[string]ClusterUserAssignedIdentity, len(oc.Identity.UserAssignedIdentities))
out.Identity.Type = ManagedServiceIdentityType(oc.Identity.Type)
out.Identity.UserAssignedIdentities = make(map[string]UserAssignedIdentity, len(oc.Identity.UserAssignedIdentities))
for k := range oc.Identity.UserAssignedIdentities {
var temp ClusterUserAssignedIdentity
var temp UserAssignedIdentity
temp.ClientID = oc.Identity.UserAssignedIdentities[k].ClientID
temp.PrincipalID = oc.Identity.UserAssignedIdentities[k].PrincipalID
out.Identity.UserAssignedIdentities[k] = temp
Expand All @@ -190,13 +190,16 @@ func (c openShiftClusterConverter) ToExternal(oc *api.OpenShiftCluster) interfac

if oc.Properties.PlatformWorkloadIdentityProfile != nil && oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities != nil {
out.Properties.PlatformWorkloadIdentityProfile = &PlatformWorkloadIdentityProfile{}
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities = make([]PlatformWorkloadIdentity, len(oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities))
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities = make(map[string]PlatformWorkloadIdentity, len(oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities))

for i := range oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities {
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].OperatorName = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].OperatorName
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ResourceID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ResourceID
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ClientID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ClientID
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ObjectID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ObjectID
for k := range oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities {
if entry, ok := out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k]; ok {
entry.ClientID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k].ClientID
entry.ObjectID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k].ObjectID
entry.ResourceID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k].ResourceID

out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k] = entry
}
}
}

Expand Down Expand Up @@ -254,10 +257,10 @@ func (c openShiftClusterConverter) ToInternal(_oc interface{}, out *api.OpenShif
}
}
if oc.Identity != nil {
out.Identity.Type = oc.Identity.Type
out.Identity.UserAssignedIdentities = make(map[string]api.ClusterUserAssignedIdentity, len(oc.Identity.UserAssignedIdentities))
out.Identity.Type = api.ManagedServiceIdentityType(oc.Identity.Type)
out.Identity.UserAssignedIdentities = make(map[string]api.UserAssignedIdentity, len(oc.Identity.UserAssignedIdentities))
for k := range oc.Identity.UserAssignedIdentities {
var temp api.ClusterUserAssignedIdentity
var temp api.UserAssignedIdentity
temp.ClientID = oc.Identity.UserAssignedIdentities[k].ClientID
temp.PrincipalID = oc.Identity.UserAssignedIdentities[k].PrincipalID
out.Identity.UserAssignedIdentities[k] = temp
Expand Down Expand Up @@ -292,13 +295,16 @@ func (c openShiftClusterConverter) ToInternal(_oc interface{}, out *api.OpenShif
}
if oc.Properties.PlatformWorkloadIdentityProfile != nil && oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities != nil {
out.Properties.PlatformWorkloadIdentityProfile = &api.PlatformWorkloadIdentityProfile{}
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities = make([]api.PlatformWorkloadIdentity, len(oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities))
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities = make(map[string]api.PlatformWorkloadIdentity, len(oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities))

for i := range oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities {
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].OperatorName = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].OperatorName
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ResourceID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ResourceID
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ClientID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ClientID
out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ObjectID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i].ObjectID
for k := range oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities {
if entry, ok := out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k]; ok {
entry.ClientID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k].ClientID
entry.ObjectID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k].ObjectID
entry.ResourceID = oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k].ResourceID

out.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[k] = entry
}
}
}
out.Properties.NetworkProfile.PodCIDR = oc.Properties.NetworkProfile.PodCIDR
Expand Down Expand Up @@ -418,4 +424,22 @@ func (c openShiftClusterConverter) ExternalNoReadOnly(_oc interface{}) {
if oc.Properties.NetworkProfile.LoadBalancerProfile != nil {
oc.Properties.NetworkProfile.LoadBalancerProfile.EffectiveOutboundIPs = nil
}
if oc.Properties.PlatformWorkloadIdentityProfile != nil {
for i := range oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities {
if entry, ok := oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i]; ok {
entry.ClientID = ""
entry.ObjectID = ""
oc.Properties.PlatformWorkloadIdentityProfile.PlatformWorkloadIdentities[i] = entry
}
}
}
if oc.Identity != nil {
for i := range oc.Identity.UserAssignedIdentities {
if entry, ok := oc.Identity.UserAssignedIdentities[i]; ok {
entry.ClientID = ""
entry.PrincipalID = ""
oc.Identity.UserAssignedIdentities[i] = entry
}
}
}
}
63 changes: 44 additions & 19 deletions pkg/api/openshiftcluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type OpenShiftCluster struct {
SystemData SystemData `json:"systemData,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
Properties OpenShiftClusterProperties `json:"properties,omitempty"`
Identity *Identity `json:"identity,omitempty"`
Identity *ManagedServiceIdentity `json:"managedServiceIdentity,omitempty"`

//this property is used in the enrichers. Should not be marshalled
Lock sync.Mutex `json:"-"`
Expand Down Expand Up @@ -832,8 +832,8 @@ type HiveProfile struct {
type PlatformWorkloadIdentityProfile struct {
MissingFields

UpgradeableTo *UpgradeableTo `json:"upgradeableTo,omitempty"`
PlatformWorkloadIdentities []PlatformWorkloadIdentity `json:"platformWorkloadIdentities,omitempty"`
UpgradeableTo *UpgradeableTo `json:"upgradeableTo,omitempty"`
PlatformWorkloadIdentities map[string]PlatformWorkloadIdentity `json:"platformWorkloadIdentities,omitempty"`
}

// UpgradeableTo stores a single OpenShift version a workload identity cluster can be upgraded to
Expand All @@ -843,29 +843,54 @@ type UpgradeableTo string
type PlatformWorkloadIdentity struct {
MissingFields

OperatorName string `json:"operatorName,omitempty"`
ResourceID string `json:"resourceId,omitempty"`
ClientID string `json:"clientId,omitempty" swagger:"readOnly"`
ObjectID string `json:"objectId,omitempty" swagger:"readOnly"`
// The resource ID of the PlatformWorkloadIdentity resource
ResourceID string `json:"resourceId,omitempty"`

// The ClientID of the PlatformWorkloadIdentity resource
ClientID string `json:"clientId,omitempty" swagger:"readOnly"`

// The ObjectID of the PlatformWorkloadIdentity resource
ObjectID string `json:"objectId,omitempty" swagger:"readOnly"`
}

// ClusterUserAssignedIdentity stores information about a user-assigned managed identity in a predefined format required by Microsoft's Managed Identity team.
type ClusterUserAssignedIdentity struct {
// UserAssignedIdentity stores information about a user-assigned managed identity in a predefined format required by Microsoft's Managed Identity team.
type UserAssignedIdentity struct {
MissingFields

ClientID string `json:"clientId,omitempty"`
PrincipalID string `json:"principalId,omitempty"`
// The ClientID of the UserAssignedIdentity resource
ClientID string `json:"clientId,omitempty" swagger:"readOnly"`

// The PrincipalID of the UserAssignedIdentity resource
PrincipalID string `json:"principalId,omitempty" swagger:"readOnly"`
}

// UserAssignedIdentities stores a mapping from resource IDs of managed identities to their client/principal IDs.
type UserAssignedIdentities map[string]ClusterUserAssignedIdentity
// The ManagedServiceIdentity type.
type ManagedServiceIdentityType string

// ManagedServiceIdentityType constants
const (
ManagedServiceIdentityNone ManagedServiceIdentityType = "None"
ManagedServiceIdentitySystemAssigned ManagedServiceIdentityType = "SystemAssigned"
ManagedServiceIdentityUserAssigned ManagedServiceIdentityType = "UserAssigned"
ManagedServiceIdentitySystemAssignedUserAssigned ManagedServiceIdentityType = "SystemAssigned,UserAssigned"
)

// Identity stores information about the cluster MSI(s) in a workload identity cluster.
type Identity struct {
// ManagedServiceIdentity stores information about the cluster MSI(s) in a workload identity cluster.
type ManagedServiceIdentity struct {
MissingFields

Type string `json:"type,omitempty"`
UserAssignedIdentities UserAssignedIdentities `json:"userAssignedIdentities,omitempty"`
IdentityURL string `json:"identityURL,omitempty" mutable:"true"`
TenantID string `json:"tenantId,omitempty" mutable:"true"`
// The type of the ManagedServiceIdentity resource.
Type ManagedServiceIdentityType `json:"type,omitempty"`

// The PrincipalID of the Identity resource.
PrincipalID string `json:"principalId,omitempty" swagger:"readOnly"`

// A map of user assigned identities attached to the cluster, specified in a type required by Microsoft's Managed Identity team.
UserAssignedIdentities map[string]UserAssignedIdentity `json:"userAssignedIdentities,omitempty"`

// The IdentityURL provided by the MSI RP
IdentityURL string `json:"identityURL,omitempty" mutable:"true"`

// The TenantID provided by the MSI RP
TenantID string `json:"tenantId,omitempty" swagger:"readOnly"`
}
Loading

0 comments on commit faf377c

Please sign in to comment.