293 lines
8.6 KiB
TypeScript
293 lines
8.6 KiB
TypeScript
/*
|
|
* Copyright (c) Microsoft Corporation.
|
|
* Licensed under the MIT License.
|
|
*
|
|
* Code generated by Microsoft (R) AutoRest Code Generator.
|
|
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
|
*/
|
|
|
|
import { SubscriptionOperations } from "../operationsInterfaces";
|
|
import * as coreClient from "@azure/core-client";
|
|
import * as Mappers from "../models/mappers";
|
|
import * as Parameters from "../models/parameters";
|
|
import { SubscriptionClient } from "../subscriptionClient";
|
|
import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro";
|
|
import { LroImpl } from "../lroImpl";
|
|
import {
|
|
SubscriptionCancelOptionalParams,
|
|
SubscriptionCancelResponse,
|
|
SubscriptionName,
|
|
SubscriptionRenameOptionalParams,
|
|
SubscriptionRenameResponse,
|
|
SubscriptionEnableOptionalParams,
|
|
SubscriptionEnableResponse,
|
|
AcceptOwnershipRequest,
|
|
SubscriptionAcceptOwnershipOptionalParams,
|
|
SubscriptionAcceptOwnershipResponse,
|
|
SubscriptionAcceptOwnershipStatusOptionalParams,
|
|
SubscriptionAcceptOwnershipStatusResponse
|
|
} from "../models";
|
|
|
|
/** Class containing SubscriptionOperations operations. */
|
|
export class SubscriptionOperationsImpl implements SubscriptionOperations {
|
|
private readonly client: SubscriptionClient;
|
|
|
|
/**
|
|
* Initialize a new instance of the class SubscriptionOperations class.
|
|
* @param client Reference to the service client
|
|
*/
|
|
constructor(client: SubscriptionClient) {
|
|
this.client = client;
|
|
}
|
|
|
|
/**
|
|
* The operation to cancel a subscription
|
|
* @param subscriptionId Subscription Id.
|
|
* @param options The options parameters.
|
|
*/
|
|
cancel(
|
|
subscriptionId: string,
|
|
options?: SubscriptionCancelOptionalParams
|
|
): Promise<SubscriptionCancelResponse> {
|
|
return this.client.sendOperationRequest(
|
|
{ subscriptionId, options },
|
|
cancelOperationSpec
|
|
);
|
|
}
|
|
|
|
/**
|
|
* The operation to rename a subscription
|
|
* @param subscriptionId Subscription Id.
|
|
* @param body Subscription Name
|
|
* @param options The options parameters.
|
|
*/
|
|
rename(
|
|
subscriptionId: string,
|
|
body: SubscriptionName,
|
|
options?: SubscriptionRenameOptionalParams
|
|
): Promise<SubscriptionRenameResponse> {
|
|
return this.client.sendOperationRequest(
|
|
{ subscriptionId, body, options },
|
|
renameOperationSpec
|
|
);
|
|
}
|
|
|
|
/**
|
|
* The operation to enable a subscription
|
|
* @param subscriptionId Subscription Id.
|
|
* @param options The options parameters.
|
|
*/
|
|
enable(
|
|
subscriptionId: string,
|
|
options?: SubscriptionEnableOptionalParams
|
|
): Promise<SubscriptionEnableResponse> {
|
|
return this.client.sendOperationRequest(
|
|
{ subscriptionId, options },
|
|
enableOperationSpec
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Accept subscription ownership.
|
|
* @param subscriptionId Subscription Id.
|
|
* @param body The parameters required to accept subscription ownership.
|
|
* @param options The options parameters.
|
|
*/
|
|
async beginAcceptOwnership(
|
|
subscriptionId: string,
|
|
body: AcceptOwnershipRequest,
|
|
options?: SubscriptionAcceptOwnershipOptionalParams
|
|
): Promise<
|
|
PollerLike<
|
|
PollOperationState<SubscriptionAcceptOwnershipResponse>,
|
|
SubscriptionAcceptOwnershipResponse
|
|
>
|
|
> {
|
|
const directSendOperation = async (
|
|
args: coreClient.OperationArguments,
|
|
spec: coreClient.OperationSpec
|
|
): Promise<SubscriptionAcceptOwnershipResponse> => {
|
|
return this.client.sendOperationRequest(args, spec);
|
|
};
|
|
const sendOperation = async (
|
|
args: coreClient.OperationArguments,
|
|
spec: coreClient.OperationSpec
|
|
) => {
|
|
let currentRawResponse:
|
|
| coreClient.FullOperationResponse
|
|
| undefined = undefined;
|
|
const providedCallback = args.options?.onResponse;
|
|
const callback: coreClient.RawResponseCallback = (
|
|
rawResponse: coreClient.FullOperationResponse,
|
|
flatResponse: unknown
|
|
) => {
|
|
currentRawResponse = rawResponse;
|
|
providedCallback?.(rawResponse, flatResponse);
|
|
};
|
|
const updatedArgs = {
|
|
...args,
|
|
options: {
|
|
...args.options,
|
|
onResponse: callback
|
|
}
|
|
};
|
|
const flatResponse = await directSendOperation(updatedArgs, spec);
|
|
return {
|
|
flatResponse,
|
|
rawResponse: {
|
|
statusCode: currentRawResponse!.status,
|
|
body: currentRawResponse!.parsedBody,
|
|
headers: currentRawResponse!.headers.toJSON()
|
|
}
|
|
};
|
|
};
|
|
|
|
const lro = new LroImpl(
|
|
sendOperation,
|
|
{ subscriptionId, body, options },
|
|
acceptOwnershipOperationSpec
|
|
);
|
|
const poller = new LroEngine(lro, {
|
|
resumeFrom: options?.resumeFrom,
|
|
intervalInMs: options?.updateIntervalInMs
|
|
});
|
|
await poller.poll();
|
|
return poller;
|
|
}
|
|
|
|
/**
|
|
* Accept subscription ownership.
|
|
* @param subscriptionId Subscription Id.
|
|
* @param body The parameters required to accept subscription ownership.
|
|
* @param options The options parameters.
|
|
*/
|
|
async beginAcceptOwnershipAndWait(
|
|
subscriptionId: string,
|
|
body: AcceptOwnershipRequest,
|
|
options?: SubscriptionAcceptOwnershipOptionalParams
|
|
): Promise<SubscriptionAcceptOwnershipResponse> {
|
|
const poller = await this.beginAcceptOwnership(
|
|
subscriptionId,
|
|
body,
|
|
options
|
|
);
|
|
return poller.pollUntilDone();
|
|
}
|
|
|
|
/**
|
|
* Accept subscription ownership status.
|
|
* @param subscriptionId Subscription Id.
|
|
* @param options The options parameters.
|
|
*/
|
|
acceptOwnershipStatus(
|
|
subscriptionId: string,
|
|
options?: SubscriptionAcceptOwnershipStatusOptionalParams
|
|
): Promise<SubscriptionAcceptOwnershipStatusResponse> {
|
|
return this.client.sendOperationRequest(
|
|
{ subscriptionId, options },
|
|
acceptOwnershipStatusOperationSpec
|
|
);
|
|
}
|
|
}
|
|
// Operation Specifications
|
|
const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
|
|
|
|
const cancelOperationSpec: coreClient.OperationSpec = {
|
|
path:
|
|
"/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/cancel",
|
|
httpMethod: "POST",
|
|
responses: {
|
|
200: {
|
|
bodyMapper: Mappers.CanceledSubscriptionId
|
|
},
|
|
default: {
|
|
bodyMapper: Mappers.ErrorResponseBody
|
|
}
|
|
},
|
|
queryParameters: [Parameters.apiVersion1],
|
|
urlParameters: [Parameters.$host, Parameters.subscriptionId],
|
|
headerParameters: [Parameters.accept],
|
|
serializer
|
|
};
|
|
const renameOperationSpec: coreClient.OperationSpec = {
|
|
path:
|
|
"/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/rename",
|
|
httpMethod: "POST",
|
|
responses: {
|
|
200: {
|
|
bodyMapper: Mappers.RenamedSubscriptionId
|
|
},
|
|
default: {
|
|
bodyMapper: Mappers.ErrorResponseBody
|
|
}
|
|
},
|
|
requestBody: Parameters.body,
|
|
queryParameters: [Parameters.apiVersion1],
|
|
urlParameters: [Parameters.$host, Parameters.subscriptionId],
|
|
headerParameters: [Parameters.accept, Parameters.contentType],
|
|
mediaType: "json",
|
|
serializer
|
|
};
|
|
const enableOperationSpec: coreClient.OperationSpec = {
|
|
path:
|
|
"/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/enable",
|
|
httpMethod: "POST",
|
|
responses: {
|
|
200: {
|
|
bodyMapper: Mappers.EnabledSubscriptionId
|
|
},
|
|
default: {
|
|
bodyMapper: Mappers.ErrorResponseBody
|
|
}
|
|
},
|
|
queryParameters: [Parameters.apiVersion1],
|
|
urlParameters: [Parameters.$host, Parameters.subscriptionId],
|
|
headerParameters: [Parameters.accept],
|
|
serializer
|
|
};
|
|
const acceptOwnershipOperationSpec: coreClient.OperationSpec = {
|
|
path:
|
|
"/providers/Microsoft.Subscription/subscriptions/{subscriptionId}/acceptOwnership",
|
|
httpMethod: "POST",
|
|
responses: {
|
|
200: {
|
|
headersMapper: Mappers.SubscriptionAcceptOwnershipHeaders
|
|
},
|
|
201: {
|
|
headersMapper: Mappers.SubscriptionAcceptOwnershipHeaders
|
|
},
|
|
202: {
|
|
headersMapper: Mappers.SubscriptionAcceptOwnershipHeaders
|
|
},
|
|
204: {
|
|
headersMapper: Mappers.SubscriptionAcceptOwnershipHeaders
|
|
},
|
|
default: {
|
|
bodyMapper: Mappers.ErrorResponseBody
|
|
}
|
|
},
|
|
requestBody: Parameters.body1,
|
|
queryParameters: [Parameters.apiVersion1],
|
|
urlParameters: [Parameters.$host, Parameters.subscriptionId],
|
|
headerParameters: [Parameters.accept, Parameters.contentType],
|
|
mediaType: "json",
|
|
serializer
|
|
};
|
|
const acceptOwnershipStatusOperationSpec: coreClient.OperationSpec = {
|
|
path:
|
|
"/providers/Microsoft.Subscription/subscriptions/{subscriptionId}/acceptOwnershipStatus",
|
|
httpMethod: "GET",
|
|
responses: {
|
|
200: {
|
|
bodyMapper: Mappers.AcceptOwnershipStatusResponse
|
|
},
|
|
default: {
|
|
bodyMapper: Mappers.ErrorResponseBody
|
|
}
|
|
},
|
|
queryParameters: [Parameters.apiVersion1],
|
|
urlParameters: [Parameters.$host, Parameters.subscriptionId],
|
|
headerParameters: [Parameters.accept],
|
|
serializer
|
|
};
|