diff --git a/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/connectedcluster.go b/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/connectedcluster.go index 979d1b1209bf..111c906f9f62 100644 --- a/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/connectedcluster.go +++ b/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/connectedcluster.go @@ -557,7 +557,9 @@ func (client ConnectedClusterClient) ListBySubscriptionComplete(ctx context.Cont // Parameters: // resourceGroupName - the name of the resource group. The name is case insensitive. // clusterName - the name of the Kubernetes cluster on which get is called. -func (client ConnectedClusterClient) ListClusterUserCredentials(ctx context.Context, resourceGroupName string, clusterName string) (result CredentialResults, err error) { +// clientAuthenticationDetails - authentication parameters supplied by the user to fetch credentials for +// accessing the cluster. +func (client ConnectedClusterClient) ListClusterUserCredentials(ctx context.Context, resourceGroupName string, clusterName string, clientAuthenticationDetails *AuthenticationDetails) (result CredentialResults, err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/ConnectedClusterClient.ListClusterUserCredentials") defer func() { @@ -574,11 +576,20 @@ func (client ConnectedClusterClient) ListClusterUserCredentials(ctx context.Cont {TargetValue: resourceGroupName, Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, - {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil { + {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {TargetValue: clientAuthenticationDetails, + Constraints: []validation.Constraint{{Target: "clientAuthenticationDetails", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "clientAuthenticationDetails.Value", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "clientAuthenticationDetails.Value.ClientCertificate", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "clientAuthenticationDetails.Value.ClientCertificate.CertificateData", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "clientAuthenticationDetails.Value.ClientCertificate.KeyData", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}, + }}}}}); err != nil { return result, validation.NewError("hybridkubernetes.ConnectedClusterClient", "ListClusterUserCredentials", err.Error()) } - req, err := client.ListClusterUserCredentialsPreparer(ctx, resourceGroupName, clusterName) + req, err := client.ListClusterUserCredentialsPreparer(ctx, resourceGroupName, clusterName, clientAuthenticationDetails) if err != nil { err = autorest.NewErrorWithError(err, "hybridkubernetes.ConnectedClusterClient", "ListClusterUserCredentials", nil, "Failure preparing request") return @@ -600,7 +611,7 @@ func (client ConnectedClusterClient) ListClusterUserCredentials(ctx context.Cont } // ListClusterUserCredentialsPreparer prepares the ListClusterUserCredentials request. -func (client ConnectedClusterClient) ListClusterUserCredentialsPreparer(ctx context.Context, resourceGroupName string, clusterName string) (*http.Request, error) { +func (client ConnectedClusterClient) ListClusterUserCredentialsPreparer(ctx context.Context, resourceGroupName string, clusterName string, clientAuthenticationDetails *AuthenticationDetails) (*http.Request, error) { pathParameters := map[string]interface{}{ "clusterName": autorest.Encode("path", clusterName), "resourceGroupName": autorest.Encode("path", resourceGroupName), @@ -613,10 +624,15 @@ func (client ConnectedClusterClient) ListClusterUserCredentialsPreparer(ctx cont } preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), autorest.AsPost(), autorest.WithBaseURL(client.BaseURI), autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Kubernetes/connectedClusters/{clusterName}/listClusterUserCredentials", pathParameters), autorest.WithQueryParameters(queryParameters)) + if clientAuthenticationDetails != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(clientAuthenticationDetails)) + } return preparer.Prepare((&http.Request{}).WithContext(ctx)) } diff --git a/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/enums.go b/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/enums.go index fde0f9b8dbbf..f0a5661e6a7e 100644 --- a/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/enums.go +++ b/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/enums.go @@ -17,6 +17,21 @@ package hybridkubernetes // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// AuthenticationMethod enumerates the values for authentication method. +type AuthenticationMethod string + +const ( + // ClientCertificate ... + ClientCertificate AuthenticationMethod = "ClientCertificate" + // Token ... + Token AuthenticationMethod = "Token" +) + +// PossibleAuthenticationMethodValues returns an array of possible values for the AuthenticationMethod const type. +func PossibleAuthenticationMethodValues() []AuthenticationMethod { + return []AuthenticationMethod{ClientCertificate, Token} +} + // ProvisioningState enumerates the values for provisioning state. type ProvisioningState string diff --git a/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/hybridkubernetesapi/interfaces.go b/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/hybridkubernetesapi/interfaces.go index 1861ecbb8f27..49eb0b1eb06c 100644 --- a/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/hybridkubernetesapi/interfaces.go +++ b/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/hybridkubernetesapi/interfaces.go @@ -31,7 +31,7 @@ type ConnectedClusterClientAPI interface { ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result hybridkubernetes.ConnectedClusterListIterator, err error) ListBySubscription(ctx context.Context) (result hybridkubernetes.ConnectedClusterListPage, err error) ListBySubscriptionComplete(ctx context.Context) (result hybridkubernetes.ConnectedClusterListIterator, err error) - ListClusterUserCredentials(ctx context.Context, resourceGroupName string, clusterName string) (result hybridkubernetes.CredentialResults, err error) + ListClusterUserCredentials(ctx context.Context, resourceGroupName string, clusterName string, clientAuthenticationDetails *hybridkubernetes.AuthenticationDetails) (result hybridkubernetes.CredentialResults, err error) Update(ctx context.Context, resourceGroupName string, clusterName string, connectedClusterPatch hybridkubernetes.ConnectedClusterPatch) (result hybridkubernetes.ConnectedCluster, err error) } diff --git a/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/models.go b/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/models.go index f6b4031dabee..ab4d9c9753dc 100644 --- a/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/models.go +++ b/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes/models.go @@ -30,6 +30,28 @@ import ( // The package's fully qualified name. const fqdn = "github.com/Azure/azure-sdk-for-go/services/preview/hybridkubernetes/mgmt/2020-01-01-preview/hybridkubernetes" +// AuthenticationCertificateDetails ... +type AuthenticationCertificateDetails struct { + // CertificateData - Base64 encoded client certificate data. + CertificateData *string `json:"certificateData,omitempty"` + // KeyData - Base64 encoded key data. + KeyData *string `json:"keyData,omitempty"` +} + +// AuthenticationDetails ... +type AuthenticationDetails struct { + // AuthenticationMethod - The mode of client authentication. Possible values include: 'Token', 'ClientCertificate' + AuthenticationMethod AuthenticationMethod `json:"authenticationMethod,omitempty"` + Value *AuthenticationDetailsValue `json:"value,omitempty"` +} + +// AuthenticationDetailsValue ... +type AuthenticationDetailsValue struct { + // Token - Authentication token. + Token *string `json:"token,omitempty"` + ClientCertificate *AuthenticationCertificateDetails `json:"clientCertificate,omitempty"` +} + // AzureEntityResource the resource model definition for a Azure Resource Manager resource with an etag. type AzureEntityResource struct { // Etag - READ-ONLY; Resource Etag.