// This is an automatically generated code sample.
// To make this code sample work in your Oracle Cloud tenancy,
// please replace the values for any parameters whose current values do not fit
// your use case (such as resource IDs, strings containing ‘EXAMPLE’ or ‘unique_id’, and
// boolean, number, and enum parameters with values not fitting your use case).

import * as bds from "oci-bds";
import common = require("oci-common");

// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.

const provider: common.ConfigFileAuthenticationDetailsProvider = new common.ConfigFileAuthenticationDetailsProvider();

(async () => {
  try {
    // Create a service client
    const client = new bds.BdsClient({ authenticationDetailsProvider: provider });

    // Create a request and dependent object(s).
    const changeShapeDetails = {
      clusterAdminPassword: "EXAMPLE-clusterAdminPassword-Value",
      nodes: {
        worker: "EXAMPLE-worker-Value",
        workerShapeConfig: {
          ocpus: 633,
          memoryInGBs: 988,
          nvmes: 1
        },
        computeOnlyWorker: "EXAMPLE-computeOnlyWorker-Value",
        computeOnlyWorkerShapeConfig: {
          ocpus: 68,
          memoryInGBs: 805,
          nvmes: 2
        },
        master: "EXAMPLE-master-Value",
        masterShapeConfig: {
          ocpus: 836,
          memoryInGBs: 459,
          nvmes: 3
        },
        utility: "EXAMPLE-utility-Value",
        utilityShapeConfig: {
          ocpus: 770,
          memoryInGBs: 45,
          nvmes: 2
        },
        cloudsql: "EXAMPLE-cloudsql-Value",
        cloudsqlShapeConfig: {
          ocpus: 718,
          memoryInGBs: 739,
          nvmes: 2
        },
        edge: "EXAMPLE-edge-Value",
        edgeShapeConfig: {
          ocpus: 201,
          memoryInGBs: 508,
          nvmes: 1
        },
        kafkaBroker: "EXAMPLE-kafkaBroker-Value",
        kafkaBrokerShapeConfig: {
          ocpus: 241,
          memoryInGBs: 79,
          nvmes: 2
        }
      }
    };

    const changeShapeRequest: bds.requests.ChangeShapeRequest = {
      bdsInstanceId: "ocid1.test.oc1..<unique_ID>EXAMPLE-bdsInstanceId-Value",
      changeShapeDetails: changeShapeDetails,
      opcRequestId: "PYGNDOTDX4ADRHJABIN0<unique_ID>",
      ifMatch: "EXAMPLE-ifMatch-Value",
      opcRetryToken: "EXAMPLE-opcRetryToken-Value"
    };

    // Send request to the Client.
    const changeShapeResponse = await client.changeShape(changeShapeRequest);
  } catch (error) {
    console.log("changeShape Failed with error  " + error);
  }
})();