# 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 oci

# Create a default config using DEFAULT profile in default location
# Refer to
# https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File
# for more info
config = oci.config.from_file()


# Initialize service client with default config file
dif_client = oci.dif.StackClient(config)


# Send the request to service, some parameters are not required, see API
# doc for more info
update_stack_response = dif_client.update_stack(
    stack_id="ocid1.test.oc1..<unique_ID>EXAMPLE-stackId-Value",
    update_stack_details=oci.dif.models.UpdateStackDetails(
        notification_email="EXAMPLE-notificationEmail-Value",
        stack_templates=["DATAPIPELINE"],
        services=["DATAFLOW"],
        adb=[
            oci.dif.models.AdbUpdateDetail(
                instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-instanceId-Value",
                ecpu=897,
                data_storage_size_in_tbs=171,
                is_mtls_connection_required=True)],
        ggcs=[
            oci.dif.models.GgcsUpdateDetail(
                instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-instanceId-Value",
                ocpu=538,
                public_subnet_id="ocid1.test.oc1..<unique_ID>EXAMPLE-publicSubnetId-Value",
                connections=[
                            oci.dif.models.GgcsConnectionDetails(
                                connection_name="EXAMPLE-connectionName-Value",
                                dif_dependencies=[
                                    oci.dif.models.DifDependencyDetails(
                                        service_type="EXAMPLE-serviceType-Value",
                                        service_instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-serviceInstanceId-Value")],
                                gg_admin_secret_id="ocid1.test.oc1..<unique_ID>EXAMPLE-ggAdminSecretId-Value",
                                connection_id="ocid1.test.oc1..<unique_ID>EXAMPLE-connectionId-Value")])],
        dataflow=[
            oci.dif.models.DataflowUpdateDetail(
                instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-instanceId-Value",
                spark_version="EXAMPLE-sparkVersion-Value",
                driver_shape="EXAMPLE-driverShape-Value",
                executor_shape="EXAMPLE-executorShape-Value",
                driver_shape_config=oci.dif.models.ShapeConfig(
                    memory_in_gbs=25,
                    ocpus=271),
                executor_shape_config=oci.dif.models.ShapeConfig(
                    memory_in_gbs=658,
                    ocpus=333),
                num_executors=770,
                private_endpoint_id="ocid1.test.oc1..<unique_ID>EXAMPLE-privateEndpointId-Value",
                connections=oci.dif.models.UpdateDataflowConnections(
                    connection_details=oci.dif.models.DataflowConnectionDetails(
                        dif_dependencies=[
                            oci.dif.models.DifDependencyDetails(
                                service_type="EXAMPLE-serviceType-Value",
                                service_instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-serviceInstanceId-Value")],
                        domain_names=["EXAMPLE--Value"])),
                log_bucket_instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-logBucketInstanceId-Value",
                warehouse_bucket_instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-warehouseBucketInstanceId-Value")],
        objectstorage=[
            oci.dif.models.ObjectStorageUpdateDetail(
                instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-instanceId-Value",
                object_versioning="SUSPENDED",
                auto_tiering="INFREQUENTACCESS")],
        genai=[
            oci.dif.models.GenAiUpdateDetail(
                instance_id="ocid1.test.oc1..<unique_ID>EXAMPLE-instanceId-Value",
                unit_count=383,
                endpoints=[
                    oci.dif.models.EndpointDetails(
                        endpoint_name="EXAMPLE-endpointName-Value",
                        is_content_moderation_enabled=False)])],
        freeform_tags={
            'EXAMPLE_KEY_LXBEz': 'EXAMPLE_VALUE_iNX4raMabXavMSVp7wkA'},
        defined_tags={
            'EXAMPLE_KEY_NvZ1N': {
                'EXAMPLE_KEY_fWCrh': 'EXAMPLE--Value'}}),
    if_match="EXAMPLE-ifMatch-Value",
    opc_request_id="STPENPKXBZOSHWR73ZGL<unique_ID>")

# Get the data from response
print(update_stack_response.headers)