/* * 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 { Containers } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { ContainerInstanceManagementClient } from "../containerInstanceManagementClient"; import { ContainersListLogsOptionalParams, ContainersListLogsResponse, ContainerExecRequest, ContainersExecuteCommandOptionalParams, ContainersExecuteCommandResponse, ContainersAttachOptionalParams, ContainersAttachResponse } from "../models"; /** Class containing Containers operations. */ export class ContainersImpl implements Containers { private readonly client: ContainerInstanceManagementClient; /** * Initialize a new instance of the class Containers class. * @param client Reference to the service client */ constructor(client: ContainerInstanceManagementClient) { this.client = client; } /** * Get the logs for a specified container instance in a specified resource group and container group. * @param resourceGroupName The name of the resource group. * @param containerGroupName The name of the container group. * @param containerName The name of the container instance. * @param options The options parameters. */ listLogs( resourceGroupName: string, containerGroupName: string, containerName: string, options?: ContainersListLogsOptionalParams ): Promise { return this.client.sendOperationRequest( { resourceGroupName, containerGroupName, containerName, options }, listLogsOperationSpec ); } /** * Executes a command for a specific container instance in a specified resource group and container * group. * @param resourceGroupName The name of the resource group. * @param containerGroupName The name of the container group. * @param containerName The name of the container instance. * @param containerExecRequest The request for the exec command. * @param options The options parameters. */ executeCommand( resourceGroupName: string, containerGroupName: string, containerName: string, containerExecRequest: ContainerExecRequest, options?: ContainersExecuteCommandOptionalParams ): Promise { return this.client.sendOperationRequest( { resourceGroupName, containerGroupName, containerName, containerExecRequest, options }, executeCommandOperationSpec ); } /** * Attach to the output stream of a specific container instance in a specified resource group and * container group. * @param resourceGroupName The name of the resource group. * @param containerGroupName The name of the container group. * @param containerName The name of the container instance. * @param options The options parameters. */ attach( resourceGroupName: string, containerGroupName: string, containerName: string, options?: ContainersAttachOptionalParams ): Promise { return this.client.sendOperationRequest( { resourceGroupName, containerGroupName, containerName, options }, attachOperationSpec ); } } // Operation Specifications const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); const listLogsOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/containers/{containerName}/logs", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.Logs }, default: { bodyMapper: Mappers.CloudError } }, queryParameters: [ Parameters.apiVersion, Parameters.tail, Parameters.timestamps ], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.containerGroupName, Parameters.containerName ], headerParameters: [Parameters.accept], serializer }; const executeCommandOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/containers/{containerName}/exec", httpMethod: "POST", responses: { 200: { bodyMapper: Mappers.ContainerExecResponse }, default: { bodyMapper: Mappers.CloudError } }, requestBody: Parameters.containerExecRequest, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.containerGroupName, Parameters.containerName ], headerParameters: [Parameters.accept, Parameters.contentType], mediaType: "json", serializer }; const attachOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}/containers/{containerName}/attach", httpMethod: "POST", responses: { 200: { bodyMapper: Mappers.ContainerAttachResponse }, default: { bodyMapper: Mappers.CloudError } }, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.containerGroupName, Parameters.containerName ], headerParameters: [Parameters.accept], serializer };