UNPKG

@azure/arm-monitor

Version:
448 lines (430 loc) 14 kB
/* * 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 } from "@azure/core-paging"; import { DataCollectionRuleAssociations } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { MonitorClient } from "../monitorClient"; import { DataCollectionRuleAssociationProxyOnlyResource, DataCollectionRuleAssociationsListByResourceNextOptionalParams, DataCollectionRuleAssociationsListByResourceOptionalParams, DataCollectionRuleAssociationsListByRuleNextOptionalParams, DataCollectionRuleAssociationsListByRuleOptionalParams, DataCollectionRuleAssociationsListByResourceResponse, DataCollectionRuleAssociationsListByRuleResponse, DataCollectionRuleAssociationsGetOptionalParams, DataCollectionRuleAssociationsGetResponse, DataCollectionRuleAssociationsCreateOptionalParams, DataCollectionRuleAssociationsCreateResponse, DataCollectionRuleAssociationsDeleteOptionalParams, DataCollectionRuleAssociationsListByResourceNextResponse, DataCollectionRuleAssociationsListByRuleNextResponse } from "../models"; /// <reference lib="esnext.asynciterable" /> /** Class containing DataCollectionRuleAssociations operations. */ export class DataCollectionRuleAssociationsImpl implements DataCollectionRuleAssociations { private readonly client: MonitorClient; /** * Initialize a new instance of the class DataCollectionRuleAssociations class. * @param client Reference to the service client */ constructor(client: MonitorClient) { this.client = client; } /** * Lists associations for the specified resource. * @param resourceUri The identifier of the resource. * @param options The options parameters. */ public listByResource( resourceUri: string, options?: DataCollectionRuleAssociationsListByResourceOptionalParams ): PagedAsyncIterableIterator< DataCollectionRuleAssociationProxyOnlyResource > { const iter = this.listByResourcePagingAll(resourceUri, options); return { next() { return iter.next(); }, [Symbol.asyncIterator]() { return this; }, byPage: () => { return this.listByResourcePagingPage(resourceUri, options); } }; } private async *listByResourcePagingPage( resourceUri: string, options?: DataCollectionRuleAssociationsListByResourceOptionalParams ): AsyncIterableIterator<DataCollectionRuleAssociationProxyOnlyResource[]> { let result = await this._listByResource(resourceUri, options); yield result.value || []; let continuationToken = result.nextLink; while (continuationToken) { result = await this._listByResourceNext( resourceUri, continuationToken, options ); continuationToken = result.nextLink; yield result.value || []; } } private async *listByResourcePagingAll( resourceUri: string, options?: DataCollectionRuleAssociationsListByResourceOptionalParams ): AsyncIterableIterator<DataCollectionRuleAssociationProxyOnlyResource> { for await (const page of this.listByResourcePagingPage( resourceUri, options )) { yield* page; } } /** * Lists associations for the specified data collection rule. * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param dataCollectionRuleName The name of the data collection rule. The name is case insensitive. * @param options The options parameters. */ public listByRule( resourceGroupName: string, dataCollectionRuleName: string, options?: DataCollectionRuleAssociationsListByRuleOptionalParams ): PagedAsyncIterableIterator< DataCollectionRuleAssociationProxyOnlyResource > { const iter = this.listByRulePagingAll( resourceGroupName, dataCollectionRuleName, options ); return { next() { return iter.next(); }, [Symbol.asyncIterator]() { return this; }, byPage: () => { return this.listByRulePagingPage( resourceGroupName, dataCollectionRuleName, options ); } }; } private async *listByRulePagingPage( resourceGroupName: string, dataCollectionRuleName: string, options?: DataCollectionRuleAssociationsListByRuleOptionalParams ): AsyncIterableIterator<DataCollectionRuleAssociationProxyOnlyResource[]> { let result = await this._listByRule( resourceGroupName, dataCollectionRuleName, options ); yield result.value || []; let continuationToken = result.nextLink; while (continuationToken) { result = await this._listByRuleNext( resourceGroupName, dataCollectionRuleName, continuationToken, options ); continuationToken = result.nextLink; yield result.value || []; } } private async *listByRulePagingAll( resourceGroupName: string, dataCollectionRuleName: string, options?: DataCollectionRuleAssociationsListByRuleOptionalParams ): AsyncIterableIterator<DataCollectionRuleAssociationProxyOnlyResource> { for await (const page of this.listByRulePagingPage( resourceGroupName, dataCollectionRuleName, options )) { yield* page; } } /** * Lists associations for the specified resource. * @param resourceUri The identifier of the resource. * @param options The options parameters. */ private _listByResource( resourceUri: string, options?: DataCollectionRuleAssociationsListByResourceOptionalParams ): Promise<DataCollectionRuleAssociationsListByResourceResponse> { return this.client.sendOperationRequest( { resourceUri, options }, listByResourceOperationSpec ); } /** * Lists associations for the specified data collection rule. * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param dataCollectionRuleName The name of the data collection rule. The name is case insensitive. * @param options The options parameters. */ private _listByRule( resourceGroupName: string, dataCollectionRuleName: string, options?: DataCollectionRuleAssociationsListByRuleOptionalParams ): Promise<DataCollectionRuleAssociationsListByRuleResponse> { return this.client.sendOperationRequest( { resourceGroupName, dataCollectionRuleName, options }, listByRuleOperationSpec ); } /** * Returns the specified association. * @param resourceUri The identifier of the resource. * @param associationName The name of the association. The name is case insensitive. * @param options The options parameters. */ get( resourceUri: string, associationName: string, options?: DataCollectionRuleAssociationsGetOptionalParams ): Promise<DataCollectionRuleAssociationsGetResponse> { return this.client.sendOperationRequest( { resourceUri, associationName, options }, getOperationSpec ); } /** * Creates or updates an association. * @param resourceUri The identifier of the resource. * @param associationName The name of the association. The name is case insensitive. * @param options The options parameters. */ create( resourceUri: string, associationName: string, options?: DataCollectionRuleAssociationsCreateOptionalParams ): Promise<DataCollectionRuleAssociationsCreateResponse> { return this.client.sendOperationRequest( { resourceUri, associationName, options }, createOperationSpec ); } /** * Deletes an association. * @param resourceUri The identifier of the resource. * @param associationName The name of the association. The name is case insensitive. * @param options The options parameters. */ delete( resourceUri: string, associationName: string, options?: DataCollectionRuleAssociationsDeleteOptionalParams ): Promise<void> { return this.client.sendOperationRequest( { resourceUri, associationName, options }, deleteOperationSpec ); } /** * ListByResourceNext * @param resourceUri The identifier of the resource. * @param nextLink The nextLink from the previous successful call to the ListByResource method. * @param options The options parameters. */ private _listByResourceNext( resourceUri: string, nextLink: string, options?: DataCollectionRuleAssociationsListByResourceNextOptionalParams ): Promise<DataCollectionRuleAssociationsListByResourceNextResponse> { return this.client.sendOperationRequest( { resourceUri, nextLink, options }, listByResourceNextOperationSpec ); } /** * ListByRuleNext * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param dataCollectionRuleName The name of the data collection rule. The name is case insensitive. * @param nextLink The nextLink from the previous successful call to the ListByRule method. * @param options The options parameters. */ private _listByRuleNext( resourceGroupName: string, dataCollectionRuleName: string, nextLink: string, options?: DataCollectionRuleAssociationsListByRuleNextOptionalParams ): Promise<DataCollectionRuleAssociationsListByRuleNextResponse> { return this.client.sendOperationRequest( { resourceGroupName, dataCollectionRuleName, nextLink, options }, listByRuleNextOperationSpec ); } } // Operation Specifications const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); const listByResourceOperationSpec: coreClient.OperationSpec = { path: "/{resourceUri}/providers/Microsoft.Insights/dataCollectionRuleAssociations", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.DataCollectionRuleAssociationProxyOnlyResourceListResult }, default: { bodyMapper: Mappers.ErrorResponseCommonV2 } }, queryParameters: [Parameters.apiVersion12], urlParameters: [Parameters.$host, Parameters.resourceUri1], headerParameters: [Parameters.accept], serializer }; const listByRuleOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}/associations", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.DataCollectionRuleAssociationProxyOnlyResourceListResult }, default: { bodyMapper: Mappers.ErrorResponseCommonV2 } }, queryParameters: [Parameters.apiVersion12], urlParameters: [ Parameters.$host, Parameters.resourceGroupName, Parameters.subscriptionId, Parameters.dataCollectionRuleName ], headerParameters: [Parameters.accept], serializer }; const getOperationSpec: coreClient.OperationSpec = { path: "/{resourceUri}/providers/Microsoft.Insights/dataCollectionRuleAssociations/{associationName}", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.DataCollectionRuleAssociationProxyOnlyResource }, default: { bodyMapper: Mappers.ErrorResponseCommonV2 } }, queryParameters: [Parameters.apiVersion12], urlParameters: [ Parameters.$host, Parameters.resourceUri1, Parameters.associationName ], headerParameters: [Parameters.accept], serializer }; const createOperationSpec: coreClient.OperationSpec = { path: "/{resourceUri}/providers/Microsoft.Insights/dataCollectionRuleAssociations/{associationName}", httpMethod: "PUT", responses: { 200: { bodyMapper: Mappers.DataCollectionRuleAssociationProxyOnlyResource }, 201: { bodyMapper: Mappers.DataCollectionRuleAssociationProxyOnlyResource }, default: { bodyMapper: Mappers.ErrorResponseCommonV2 } }, requestBody: Parameters.body2, queryParameters: [Parameters.apiVersion12], urlParameters: [ Parameters.$host, Parameters.resourceUri1, Parameters.associationName ], headerParameters: [Parameters.accept, Parameters.contentType], mediaType: "json", serializer }; const deleteOperationSpec: coreClient.OperationSpec = { path: "/{resourceUri}/providers/Microsoft.Insights/dataCollectionRuleAssociations/{associationName}", httpMethod: "DELETE", responses: { 200: {}, 204: {}, default: { bodyMapper: Mappers.ErrorResponseCommonV2 } }, queryParameters: [Parameters.apiVersion12], urlParameters: [ Parameters.$host, Parameters.resourceUri1, Parameters.associationName ], headerParameters: [Parameters.accept], serializer }; const listByResourceNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.DataCollectionRuleAssociationProxyOnlyResourceListResult }, default: { bodyMapper: Mappers.ErrorResponseCommonV2 } }, queryParameters: [Parameters.apiVersion12], urlParameters: [ Parameters.$host, Parameters.nextLink, Parameters.resourceUri1 ], headerParameters: [Parameters.accept], serializer }; const listByRuleNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.DataCollectionRuleAssociationProxyOnlyResourceListResult }, default: { bodyMapper: Mappers.ErrorResponseCommonV2 } }, queryParameters: [Parameters.apiVersion12], urlParameters: [ Parameters.$host, Parameters.resourceGroupName, Parameters.subscriptionId, Parameters.nextLink, Parameters.dataCollectionRuleName ], headerParameters: [Parameters.accept], serializer };