@azure/arm-monitor
Version:
A generated SDK for MonitorClient.
448 lines (430 loc) • 14 kB
text/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 { 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
};