Files
powerpoint-toolbox/node_modules/@azure/arm-subscriptions/src/operations/subscriptionOperations.ts
T
2025-03-07 19:22:02 +01:00

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
};