diff --git a/profiles/latest/cognitiveservices/mgmt/cognitiveservices/cognitiveservicesapi/models.go b/profiles/latest/cognitiveservices/mgmt/cognitiveservices/cognitiveservicesapi/models.go index 99274caf975c..f580fe74d7bd 100644 --- a/profiles/latest/cognitiveservices/mgmt/cognitiveservices/cognitiveservicesapi/models.go +++ b/profiles/latest/cognitiveservices/mgmt/cognitiveservices/cognitiveservicesapi/models.go @@ -22,6 +22,7 @@ package cognitiveservicesapi import original "github.com/Azure/azure-sdk-for-go/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/cognitiveservicesapi" type AccountsClientAPI = original.AccountsClientAPI +type BaseClientAPI = original.BaseClientAPI type CheckSkuAvailabilityClientAPI = original.CheckSkuAvailabilityClientAPI type OperationsClientAPI = original.OperationsClientAPI type ResourceSkusClientAPI = original.ResourceSkusClientAPI diff --git a/profiles/latest/cognitiveservices/mgmt/cognitiveservices/models.go b/profiles/latest/cognitiveservices/mgmt/cognitiveservices/models.go index 275a0767a85f..19e381039db1 100644 --- a/profiles/latest/cognitiveservices/mgmt/cognitiveservices/models.go +++ b/profiles/latest/cognitiveservices/mgmt/cognitiveservices/models.go @@ -115,6 +115,8 @@ type AccountProperties = original.AccountProperties type AccountUpdateParameters = original.AccountUpdateParameters type AccountsClient = original.AccountsClient type BaseClient = original.BaseClient +type CheckDomainAvailabilityParameter = original.CheckDomainAvailabilityParameter +type CheckDomainAvailabilityResult = original.CheckDomainAvailabilityResult type CheckSkuAvailabilityClient = original.CheckSkuAvailabilityClient type CheckSkuAvailabilityParameter = original.CheckSkuAvailabilityParameter type CheckSkuAvailabilityResult = original.CheckSkuAvailabilityResult diff --git a/profiles/preview/cognitiveservices/mgmt/cognitiveservices/cognitiveservicesapi/models.go b/profiles/preview/cognitiveservices/mgmt/cognitiveservices/cognitiveservicesapi/models.go index 99274caf975c..f580fe74d7bd 100644 --- a/profiles/preview/cognitiveservices/mgmt/cognitiveservices/cognitiveservicesapi/models.go +++ b/profiles/preview/cognitiveservices/mgmt/cognitiveservices/cognitiveservicesapi/models.go @@ -22,6 +22,7 @@ package cognitiveservicesapi import original "github.com/Azure/azure-sdk-for-go/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/cognitiveservicesapi" type AccountsClientAPI = original.AccountsClientAPI +type BaseClientAPI = original.BaseClientAPI type CheckSkuAvailabilityClientAPI = original.CheckSkuAvailabilityClientAPI type OperationsClientAPI = original.OperationsClientAPI type ResourceSkusClientAPI = original.ResourceSkusClientAPI diff --git a/profiles/preview/cognitiveservices/mgmt/cognitiveservices/models.go b/profiles/preview/cognitiveservices/mgmt/cognitiveservices/models.go index 2518dbc83292..31482a83c503 100644 --- a/profiles/preview/cognitiveservices/mgmt/cognitiveservices/models.go +++ b/profiles/preview/cognitiveservices/mgmt/cognitiveservices/models.go @@ -115,6 +115,8 @@ type AccountProperties = original.AccountProperties type AccountUpdateParameters = original.AccountUpdateParameters type AccountsClient = original.AccountsClient type BaseClient = original.BaseClient +type CheckDomainAvailabilityParameter = original.CheckDomainAvailabilityParameter +type CheckDomainAvailabilityResult = original.CheckDomainAvailabilityResult type CheckSkuAvailabilityClient = original.CheckSkuAvailabilityClient type CheckSkuAvailabilityParameter = original.CheckSkuAvailabilityParameter type CheckSkuAvailabilityResult = original.CheckSkuAvailabilityResult diff --git a/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/client.go b/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/client.go index 83d2865d93df..25128db91bae 100644 --- a/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/client.go +++ b/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/client.go @@ -21,7 +21,12 @@ package cognitiveservices // Changes may cause incorrect behavior and will be lost if the code is regenerated. import ( + "context" "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" ) const ( @@ -49,3 +54,82 @@ func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { SubscriptionID: subscriptionID, } } + +// CheckDomainAvailability check whether a domain is available. +// Parameters: +// parameters - check Domain Availability parameter. +func (client BaseClient) CheckDomainAvailability(ctx context.Context, parameters CheckDomainAvailabilityParameter) (result CheckDomainAvailabilityResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CheckDomainAvailability") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.SubdomainName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.Type", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("cognitiveservices.BaseClient", "CheckDomainAvailability", err.Error()) + } + + req, err := client.CheckDomainAvailabilityPreparer(ctx, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "cognitiveservices.BaseClient", "CheckDomainAvailability", nil, "Failure preparing request") + return + } + + resp, err := client.CheckDomainAvailabilitySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "cognitiveservices.BaseClient", "CheckDomainAvailability", resp, "Failure sending request") + return + } + + result, err = client.CheckDomainAvailabilityResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "cognitiveservices.BaseClient", "CheckDomainAvailability", resp, "Failure responding to request") + } + + return +} + +// CheckDomainAvailabilityPreparer prepares the CheckDomainAvailability request. +func (client BaseClient) CheckDomainAvailabilityPreparer(ctx context.Context, parameters CheckDomainAvailabilityParameter) (*http.Request, error) { + const APIVersion = "2017-04-18" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/providers/Microsoft.CognitiveServices/checkDomainAvailability"), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CheckDomainAvailabilitySender sends the CheckDomainAvailability request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CheckDomainAvailabilitySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CheckDomainAvailabilityResponder handles the response to the CheckDomainAvailability request. The method always +// closes the http.Response Body. +func (client BaseClient) CheckDomainAvailabilityResponder(resp *http.Response) (result CheckDomainAvailabilityResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/cognitiveservicesapi/interfaces.go b/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/cognitiveservicesapi/interfaces.go index 30908e5de4e5..41455e9a1424 100644 --- a/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/cognitiveservicesapi/interfaces.go +++ b/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/cognitiveservicesapi/interfaces.go @@ -23,6 +23,13 @@ import ( "github.com/Azure/go-autorest/autorest" ) +// BaseClientAPI contains the set of methods on the BaseClient type. +type BaseClientAPI interface { + CheckDomainAvailability(ctx context.Context, parameters cognitiveservices.CheckDomainAvailabilityParameter) (result cognitiveservices.CheckDomainAvailabilityResult, err error) +} + +var _ BaseClientAPI = (*cognitiveservices.BaseClient)(nil) + // AccountsClientAPI contains the set of methods on the AccountsClient type. type AccountsClientAPI interface { Create(ctx context.Context, resourceGroupName string, accountName string, parameters cognitiveservices.AccountCreateParameters) (result cognitiveservices.Account, err error) diff --git a/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/models.go b/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/models.go index bf327c8ab036..4478c4e38058 100644 --- a/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/models.go +++ b/services/cognitiveservices/mgmt/2017-04-18/cognitiveservices/models.go @@ -568,6 +568,27 @@ func (aup AccountUpdateParameters) MarshalJSON() ([]byte, error) { return json.Marshal(objectMap) } +// CheckDomainAvailabilityParameter check Domain availability parameter. +type CheckDomainAvailabilityParameter struct { + // SubdomainName - The subdomain name to use. + SubdomainName *string `json:"subdomainName,omitempty"` + // Type - The Type of the resource. + Type *string `json:"type,omitempty"` +} + +// CheckDomainAvailabilityResult check Domain availability result. +type CheckDomainAvailabilityResult struct { + autorest.Response `json:"-"` + // IsSubdomainAvailable - Indicates the given SKU is available or not. + IsSubdomainAvailable *bool `json:"isSubdomainAvailable,omitempty"` + // Reason - Reason why the SKU is not available. + Reason *string `json:"reason,omitempty"` + // SubdomainName - The subdomain name to use. + SubdomainName *string `json:"subdomainName,omitempty"` + // Type - The Type of the resource. + Type *string `json:"type,omitempty"` +} + // CheckSkuAvailabilityParameter check SKU availability parameter. type CheckSkuAvailabilityParameter struct { // Skus - The SKU of the resource.