/*
 * 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 { __awaiter } from "tslib";
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
import { WebSiteManagementClient } from "@azure/arm-appservice";
import { DefaultAzureCredential } from "@azure/identity";
import * as dotenv from "dotenv";
dotenv.config();
/**
 * This sample demonstrates how to Description for Create or update a Container App.
 *
 * @summary Description for Create or update a Container App.
 * x-ms-original-file: specification/web/resource-manager/Microsoft.Web/stable/2023-01-01/examples/CreateOrUpdateContainerApp.json
 */
function createOrUpdateContainerApp() {
    return __awaiter(this, void 0, void 0, function* () {
        const subscriptionId = process.env["APPSERVICE_SUBSCRIPTION_ID"] ||
            "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345";
        const resourceGroupName = process.env["APPSERVICE_RESOURCE_GROUP"] || "rg";
        const name = "testcontainerApp0";
        const containerAppEnvelope = {
            configuration: { ingress: { external: true, targetPort: 3000 } },
            kind: "containerApp",
            kubeEnvironmentId: "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.Web/kubeEnvironments/demokube",
            location: "East US",
            template: {
                containers: [
                    { name: "testcontainerApp0", image: "repo/testcontainerApp0:v1" }
                ],
                dapr: { appPort: 3000, enabled: true },
                scale: {
                    maxReplicas: 5,
                    minReplicas: 1,
                    rules: [
                        {
                            name: "httpscalingrule",
                            custom: { type: "http", metadata: { concurrentRequests: "50" } }
                        }
                    ]
                }
            }
        };
        const credential = new DefaultAzureCredential();
        const client = new WebSiteManagementClient(credential, subscriptionId);
        const result = yield client.containerApps.beginCreateOrUpdateAndWait(resourceGroupName, name, containerAppEnvelope);
        console.log(result);
    });
}
function main() {
    return __awaiter(this, void 0, void 0, function* () {
        createOrUpdateContainerApp();
    });
}
main().catch(console.error);
//# sourceMappingURL=containerAppsCreateOrUpdateSample.js.map