/* * 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 { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; import { setContinuationToken } from "../pagingHelper"; import { WorkflowRunActionScopeRepetitions } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { WebSiteManagementClient } from "../webSiteManagementClient"; import { WorkflowRunActionRepetitionDefinition, WorkflowRunActionScopeRepetitionsListNextOptionalParams, WorkflowRunActionScopeRepetitionsListOptionalParams, WorkflowRunActionScopeRepetitionsListResponse, WorkflowRunActionScopeRepetitionsGetOptionalParams, WorkflowRunActionScopeRepetitionsGetResponse, WorkflowRunActionScopeRepetitionsListNextResponse } from "../models"; /// /** Class containing WorkflowRunActionScopeRepetitions operations. */ export class WorkflowRunActionScopeRepetitionsImpl implements WorkflowRunActionScopeRepetitions { private readonly client: WebSiteManagementClient; /** * Initialize a new instance of the class WorkflowRunActionScopeRepetitions class. * @param client Reference to the service client */ constructor(client: WebSiteManagementClient) { this.client = client; } /** * List the workflow run action scoped repetitions. * @param resourceGroupName Name of the resource group to which the resource belongs. * @param name Site name. * @param workflowName The workflow name. * @param runName The workflow run name. * @param actionName The workflow action name. * @param options The options parameters. */ public list( resourceGroupName: string, name: string, workflowName: string, runName: string, actionName: string, options?: WorkflowRunActionScopeRepetitionsListOptionalParams ): PagedAsyncIterableIterator { const iter = this.listPagingAll( resourceGroupName, name, workflowName, runName, actionName, options ); return { next() { return iter.next(); }, [Symbol.asyncIterator]() { return this; }, byPage: (settings?: PageSettings) => { if (settings?.maxPageSize) { throw new Error("maxPageSize is not supported by this operation."); } return this.listPagingPage( resourceGroupName, name, workflowName, runName, actionName, options, settings ); } }; } private async *listPagingPage( resourceGroupName: string, name: string, workflowName: string, runName: string, actionName: string, options?: WorkflowRunActionScopeRepetitionsListOptionalParams, settings?: PageSettings ): AsyncIterableIterator { let result: WorkflowRunActionScopeRepetitionsListResponse; let continuationToken = settings?.continuationToken; if (!continuationToken) { result = await this._list( resourceGroupName, name, workflowName, runName, actionName, options ); let page = result.value || []; continuationToken = result.nextLink; setContinuationToken(page, continuationToken); yield page; } while (continuationToken) { result = await this._listNext( resourceGroupName, name, workflowName, runName, actionName, continuationToken, options ); continuationToken = result.nextLink; let page = result.value || []; setContinuationToken(page, continuationToken); yield page; } } private async *listPagingAll( resourceGroupName: string, name: string, workflowName: string, runName: string, actionName: string, options?: WorkflowRunActionScopeRepetitionsListOptionalParams ): AsyncIterableIterator { for await (const page of this.listPagingPage( resourceGroupName, name, workflowName, runName, actionName, options )) { yield* page; } } /** * List the workflow run action scoped repetitions. * @param resourceGroupName Name of the resource group to which the resource belongs. * @param name Site name. * @param workflowName The workflow name. * @param runName The workflow run name. * @param actionName The workflow action name. * @param options The options parameters. */ private _list( resourceGroupName: string, name: string, workflowName: string, runName: string, actionName: string, options?: WorkflowRunActionScopeRepetitionsListOptionalParams ): Promise { return this.client.sendOperationRequest( { resourceGroupName, name, workflowName, runName, actionName, options }, listOperationSpec ); } /** * Get a workflow run action scoped repetition. * @param resourceGroupName Name of the resource group to which the resource belongs. * @param name Site name. * @param workflowName The workflow name. * @param runName The workflow run name. * @param actionName The workflow action name. * @param repetitionName The workflow repetition. * @param options The options parameters. */ get( resourceGroupName: string, name: string, workflowName: string, runName: string, actionName: string, repetitionName: string, options?: WorkflowRunActionScopeRepetitionsGetOptionalParams ): Promise { return this.client.sendOperationRequest( { resourceGroupName, name, workflowName, runName, actionName, repetitionName, options }, getOperationSpec ); } /** * ListNext * @param resourceGroupName Name of the resource group to which the resource belongs. * @param name Site name. * @param workflowName The workflow name. * @param runName The workflow run name. * @param actionName The workflow action name. * @param nextLink The nextLink from the previous successful call to the List method. * @param options The options parameters. */ private _listNext( resourceGroupName: string, name: string, workflowName: string, runName: string, actionName: string, nextLink: string, options?: WorkflowRunActionScopeRepetitionsListNextOptionalParams ): Promise { return this.client.sendOperationRequest( { resourceGroupName, name, workflowName, runName, actionName, nextLink, options }, listNextOperationSpec ); } } // Operation Specifications const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); const listOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostruntime/runtime/webhooks/workflow/api/management/workflows/{workflowName}/runs/{runName}/actions/{actionName}/scopeRepetitions", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.WorkflowRunActionRepetitionDefinitionCollection }, default: { bodyMapper: Mappers.ErrorResponse } }, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.name, Parameters.workflowName, Parameters.runName, Parameters.actionName ], headerParameters: [Parameters.accept], serializer }; const getOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/hostruntime/runtime/webhooks/workflow/api/management/workflows/{workflowName}/runs/{runName}/actions/{actionName}/scopeRepetitions/{repetitionName}", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.WorkflowRunActionRepetitionDefinition }, default: { bodyMapper: Mappers.ErrorResponse } }, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.name, Parameters.workflowName, Parameters.runName, Parameters.actionName, Parameters.repetitionName ], headerParameters: [Parameters.accept], serializer }; const listNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.WorkflowRunActionRepetitionDefinitionCollection }, default: { bodyMapper: Mappers.ErrorResponse } }, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.name, Parameters.nextLink, Parameters.workflowName, Parameters.runName, Parameters.actionName ], headerParameters: [Parameters.accept], serializer };