diff --git a/packages/@azure/arm-recoveryservices/lib/models/checkResourceNameAvailabilityMappers.ts b/packages/@azure/arm-recoveryservices/lib/models/checkResourceNameAvailabilityMappers.ts new file mode 100644 index 000000000000..2fa03f9fc0de --- /dev/null +++ b/packages/@azure/arm-recoveryservices/lib/models/checkResourceNameAvailabilityMappers.ts @@ -0,0 +1,32 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +export { + discriminators, + ResourceNameAvailabilityInput, + ResourceNameAvailabilityResponseResource, + Resource, + BaseResource, + ResourceNameAvailabilityResponse, + CloudError, + VaultCertificateResponse, + ResourceCertificateDetails, + TrackedResource, + PatchTrackedResource, + Vault, + VaultProperties, + UpgradeDetails, + Sku, + PatchVault, + VaultExtendedInfoResource, + ResourceCertificateAndAadDetails, + ResourceCertificateAndAcsDetails +} from "../models/mappers"; + diff --git a/packages/@azure/arm-recoveryservices/lib/models/index.ts b/packages/@azure/arm-recoveryservices/lib/models/index.ts index a651070ab4cc..3efbe2cdeaf2 100644 --- a/packages/@azure/arm-recoveryservices/lib/models/index.ts +++ b/packages/@azure/arm-recoveryservices/lib/models/index.ts @@ -495,6 +495,62 @@ export interface Resource extends BaseResource { eTag?: string; } +/** + * @interface + * An interface representing ResourceNameAvailabilityInput. + * Resource information, as sent to the regional resource provider from Global + * RP. + * + */ +export interface ResourceNameAvailabilityInput { + /** + * @member {string} [type] + */ + type?: string; + /** + * @member {string} [name] + */ + name?: string; +} + +/** + * @interface + * An interface representing ResourceNameAvailabilityResponse. + * Response for check name availability API. Resource provider will set + * availability as true | false. + * + */ +export interface ResourceNameAvailabilityResponse { + /** + * @member {boolean} [nameAvailable] + */ + nameAvailable?: boolean; + /** + * @member {string} [reason] + */ + reason?: string; + /** + * @member {string} [message] + */ + message?: string; +} + +/** + * @interface + * An interface representing ResourceNameAvailabilityResponseResource. + * Response for check name availability API. Resource provider will set + * availability as true | false. + * + * @extends Resource + */ +export interface ResourceNameAvailabilityResponseResource extends Resource { + /** + * @member {ResourceNameAvailabilityResponse} [properties] + * ResourceNameAvailabilityResponseResource properties + */ + properties?: ResourceNameAvailabilityResponse; +} + /** * @interface * An interface representing Sku. @@ -889,6 +945,25 @@ export type ReplicationUsagesListResponse = ReplicationUsageList & { }; }; +/** + * Contains response data for the post operation. + */ +export type CheckResourceNameAvailabilityPostResponse = ResourceNameAvailabilityResponseResource & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + /** + * The response body as parsed JSON or XML + */ + parsedBody: ResourceNameAvailabilityResponseResource; + }; +}; + /** * Contains response data for the listBySubscriptionId operation. */ diff --git a/packages/@azure/arm-recoveryservices/lib/models/mappers.ts b/packages/@azure/arm-recoveryservices/lib/models/mappers.ts index f917bdfdaf39..0fe4b70b1289 100644 --- a/packages/@azure/arm-recoveryservices/lib/models/mappers.ts +++ b/packages/@azure/arm-recoveryservices/lib/models/mappers.ts @@ -544,6 +544,74 @@ export const Resource: msRest.CompositeMapper = { } }; +export const ResourceNameAvailabilityInput: msRest.CompositeMapper = { + serializedName: "ResourceNameAvailabilityInput", + type: { + name: "Composite", + className: "ResourceNameAvailabilityInput", + modelProperties: { + type: { + serializedName: "type", + type: { + name: "String" + } + }, + name: { + serializedName: "name", + type: { + name: "String" + } + } + } + } +}; + +export const ResourceNameAvailabilityResponse: msRest.CompositeMapper = { + serializedName: "ResourceNameAvailabilityResponse", + type: { + name: "Composite", + className: "ResourceNameAvailabilityResponse", + modelProperties: { + nameAvailable: { + serializedName: "nameAvailable", + type: { + name: "Boolean" + } + }, + reason: { + serializedName: "reason", + type: { + name: "String" + } + }, + message: { + serializedName: "message", + type: { + name: "String" + } + } + } + } +}; + +export const ResourceNameAvailabilityResponseResource: msRest.CompositeMapper = { + serializedName: "ResourceNameAvailabilityResponseResource", + type: { + name: "Composite", + className: "ResourceNameAvailabilityResponseResource", + modelProperties: { + ...Resource.type.modelProperties, + properties: { + serializedName: "properties", + type: { + name: "Composite", + className: "ResourceNameAvailabilityResponse" + } + } + } + } +}; + export const Sku: msRest.CompositeMapper = { serializedName: "Sku", type: { diff --git a/packages/@azure/arm-recoveryservices/lib/models/parameters.ts b/packages/@azure/arm-recoveryservices/lib/models/parameters.ts index b33b19993669..0f22568bf26f 100644 --- a/packages/@azure/arm-recoveryservices/lib/models/parameters.ts +++ b/packages/@azure/arm-recoveryservices/lib/models/parameters.ts @@ -50,6 +50,16 @@ export const identityName: msRest.OperationURLParameter = { } } }; +export const location: msRest.OperationURLParameter = { + parameterPath: "location", + mapper: { + required: true, + serializedName: "location", + type: { + name: "String" + } + } +}; export const nextPageLink: msRest.OperationURLParameter = { parameterPath: "nextPageLink", mapper: { diff --git a/packages/@azure/arm-recoveryservices/lib/models/vaultCertificatesMappers.ts b/packages/@azure/arm-recoveryservices/lib/models/vaultCertificatesMappers.ts index 1d8791b81030..60c5b004bf6d 100644 --- a/packages/@azure/arm-recoveryservices/lib/models/vaultCertificatesMappers.ts +++ b/packages/@azure/arm-recoveryservices/lib/models/vaultCertificatesMappers.ts @@ -19,6 +19,8 @@ export { ResourceCertificateAndAadDetails, ResourceCertificateAndAcsDetails, Resource, + ResourceNameAvailabilityResponseResource, + ResourceNameAvailabilityResponse, TrackedResource, PatchTrackedResource, Vault, diff --git a/packages/@azure/arm-recoveryservices/lib/models/vaultExtendedInfoOperationsMappers.ts b/packages/@azure/arm-recoveryservices/lib/models/vaultExtendedInfoOperationsMappers.ts index bcd0558f638c..9b20b90d5f4f 100644 --- a/packages/@azure/arm-recoveryservices/lib/models/vaultExtendedInfoOperationsMappers.ts +++ b/packages/@azure/arm-recoveryservices/lib/models/vaultExtendedInfoOperationsMappers.ts @@ -16,6 +16,8 @@ export { CloudError, VaultCertificateResponse, ResourceCertificateDetails, + ResourceNameAvailabilityResponseResource, + ResourceNameAvailabilityResponse, TrackedResource, PatchTrackedResource, Vault, diff --git a/packages/@azure/arm-recoveryservices/lib/models/vaultsMappers.ts b/packages/@azure/arm-recoveryservices/lib/models/vaultsMappers.ts index 6018159ee528..7afbb58391b0 100644 --- a/packages/@azure/arm-recoveryservices/lib/models/vaultsMappers.ts +++ b/packages/@azure/arm-recoveryservices/lib/models/vaultsMappers.ts @@ -23,6 +23,8 @@ export { PatchTrackedResource, VaultCertificateResponse, ResourceCertificateDetails, + ResourceNameAvailabilityResponseResource, + ResourceNameAvailabilityResponse, VaultExtendedInfoResource, ResourceCertificateAndAadDetails, ResourceCertificateAndAcsDetails diff --git a/packages/@azure/arm-recoveryservices/lib/operations/checkResourceNameAvailability.ts b/packages/@azure/arm-recoveryservices/lib/operations/checkResourceNameAvailability.ts new file mode 100644 index 000000000000..200a36a97c4e --- /dev/null +++ b/packages/@azure/arm-recoveryservices/lib/operations/checkResourceNameAvailability.ts @@ -0,0 +1,97 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/checkResourceNameAvailabilityMappers"; +import * as Parameters from "../models/parameters"; +import { RecoveryServicesClientContext } from "../recoveryServicesClientContext"; + +/** Class representing a CheckResourceNameAvailability. */ +export class CheckResourceNameAvailability { + private readonly client: RecoveryServicesClientContext; + + /** + * Create a CheckResourceNameAvailability. + * @param {RecoveryServicesClientContext} client Reference to the service client. + */ + constructor(client: RecoveryServicesClientContext) { + this.client = client; + } + + /** + * @summary API to check for resource name availability. + * A name is available if no other resource exists that has the same SubscriptionId, Resource Name + * and Type + * or if one or more such resources exist, each of these must be GCed and their time of deletion be + * more than 24 Hours Ago + * @param location Location of the resource + * @param input Contains information about Resource type and Resource name + * @param [options] The optional parameters + * @returns Promise + */ + post(location: string, input: Models.ResourceNameAvailabilityInput, options?: msRest.RequestOptionsBase): Promise; + /** + * @param location Location of the resource + * @param input Contains information about Resource type and Resource name + * @param callback The callback + */ + post(location: string, input: Models.ResourceNameAvailabilityInput, callback: msRest.ServiceCallback): void; + /** + * @param location Location of the resource + * @param input Contains information about Resource type and Resource name + * @param options The optional parameters + * @param callback The callback + */ + post(location: string, input: Models.ResourceNameAvailabilityInput, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + post(location: string, input: Models.ResourceNameAvailabilityInput, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + location, + input, + options + }, + postOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const postOperationSpec: msRest.OperationSpec = { + httpMethod: "POST", + path: "subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/checkNameAvailability", + urlParameters: [ + Parameters.subscriptionId, + Parameters.location + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "input", + mapper: { + ...Mappers.ResourceNameAvailabilityInput, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.ResourceNameAvailabilityResponseResource + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + serializer +}; diff --git a/packages/@azure/arm-recoveryservices/lib/operations/index.ts b/packages/@azure/arm-recoveryservices/lib/operations/index.ts index d3153e26f3fd..af912dfc29c1 100644 --- a/packages/@azure/arm-recoveryservices/lib/operations/index.ts +++ b/packages/@azure/arm-recoveryservices/lib/operations/index.ts @@ -11,6 +11,7 @@ export * from "./vaultCertificates"; export * from "./registeredIdentities"; export * from "./replicationUsages"; +export * from "./checkResourceNameAvailability"; export * from "./vaults"; export * from "./operations"; export * from "./vaultExtendedInfoOperations"; diff --git a/packages/@azure/arm-recoveryservices/lib/recoveryServicesClient.ts b/packages/@azure/arm-recoveryservices/lib/recoveryServicesClient.ts index d25424dd6f47..d47302f2fc53 100644 --- a/packages/@azure/arm-recoveryservices/lib/recoveryServicesClient.ts +++ b/packages/@azure/arm-recoveryservices/lib/recoveryServicesClient.ts @@ -20,6 +20,7 @@ class RecoveryServicesClient extends RecoveryServicesClientContext { vaultCertificates: operations.VaultCertificates; registeredIdentities: operations.RegisteredIdentities; replicationUsages: operations.ReplicationUsages; + checkResourceNameAvailability: operations.CheckResourceNameAvailability; vaults: operations.Vaults; operations: operations.Operations; vaultExtendedInfo: operations.VaultExtendedInfoOperations; @@ -36,6 +37,7 @@ class RecoveryServicesClient extends RecoveryServicesClientContext { this.vaultCertificates = new operations.VaultCertificates(this); this.registeredIdentities = new operations.RegisteredIdentities(this); this.replicationUsages = new operations.ReplicationUsages(this); + this.checkResourceNameAvailability = new operations.CheckResourceNameAvailability(this); this.vaults = new operations.Vaults(this); this.operations = new operations.Operations(this); this.vaultExtendedInfo = new operations.VaultExtendedInfoOperations(this);