All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.emrserverless.model.UpdateApplicationRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for EMR Serverless module holds the client classes that are used for communicating with EMR Serverless.

There is a newer version: 2.29.15
Show newest version
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.emrserverless.model;

import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.DefaultValueTrait;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 */
@Generated("software.amazon.awssdk:codegen")
public final class UpdateApplicationRequest extends EmrServerlessRequest implements
        ToCopyableBuilder {
    private static final SdkField APPLICATION_ID_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("applicationId").getter(getter(UpdateApplicationRequest::applicationId))
            .setter(setter(Builder::applicationId))
            .traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("applicationId").build()).build();

    private static final SdkField CLIENT_TOKEN_FIELD = SdkField
            . builder(MarshallingType.STRING)
            .memberName("clientToken")
            .getter(getter(UpdateApplicationRequest::clientToken))
            .setter(setter(Builder::clientToken))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("clientToken").build(),
                    DefaultValueTrait.idempotencyToken()).build();

    private static final SdkField> INITIAL_CAPACITY_FIELD = SdkField
            .> builder(MarshallingType.MAP)
            .memberName("initialCapacity")
            .getter(getter(UpdateApplicationRequest::initialCapacity))
            .setter(setter(Builder::initialCapacity))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("initialCapacity").build(),
                    MapTrait.builder()
                            .keyLocationName("key")
                            .valueLocationName("value")
                            .valueFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(InitialCapacityConfig::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("value").build()).build()).build()).build();

    private static final SdkField MAXIMUM_CAPACITY_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("maximumCapacity")
            .getter(getter(UpdateApplicationRequest::maximumCapacity)).setter(setter(Builder::maximumCapacity))
            .constructor(MaximumAllowedResources::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("maximumCapacity").build()).build();

    private static final SdkField AUTO_START_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("autoStartConfiguration")
            .getter(getter(UpdateApplicationRequest::autoStartConfiguration)).setter(setter(Builder::autoStartConfiguration))
            .constructor(AutoStartConfig::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("autoStartConfiguration").build())
            .build();

    private static final SdkField AUTO_STOP_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("autoStopConfiguration")
            .getter(getter(UpdateApplicationRequest::autoStopConfiguration)).setter(setter(Builder::autoStopConfiguration))
            .constructor(AutoStopConfig::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("autoStopConfiguration").build())
            .build();

    private static final SdkField NETWORK_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("networkConfiguration")
            .getter(getter(UpdateApplicationRequest::networkConfiguration)).setter(setter(Builder::networkConfiguration))
            .constructor(NetworkConfiguration::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("networkConfiguration").build())
            .build();

    private static final SdkField ARCHITECTURE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("architecture").getter(getter(UpdateApplicationRequest::architectureAsString))
            .setter(setter(Builder::architecture))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("architecture").build()).build();

    private static final SdkField IMAGE_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("imageConfiguration")
            .getter(getter(UpdateApplicationRequest::imageConfiguration)).setter(setter(Builder::imageConfiguration))
            .constructor(ImageConfigurationInput::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("imageConfiguration").build())
            .build();

    private static final SdkField> WORKER_TYPE_SPECIFICATIONS_FIELD = SdkField
            .> builder(MarshallingType.MAP)
            .memberName("workerTypeSpecifications")
            .getter(getter(UpdateApplicationRequest::workerTypeSpecifications))
            .setter(setter(Builder::workerTypeSpecifications))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("workerTypeSpecifications").build(),
                    MapTrait.builder()
                            .keyLocationName("key")
                            .valueLocationName("value")
                            .valueFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(WorkerTypeSpecificationInput::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("value").build()).build()).build()).build();

    private static final SdkField INTERACTIVE_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("interactiveConfiguration")
            .getter(getter(UpdateApplicationRequest::interactiveConfiguration)).setter(setter(Builder::interactiveConfiguration))
            .constructor(InteractiveConfiguration::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("interactiveConfiguration").build())
            .build();

    private static final SdkField RELEASE_LABEL_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("releaseLabel").getter(getter(UpdateApplicationRequest::releaseLabel))
            .setter(setter(Builder::releaseLabel))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("releaseLabel").build()).build();

    private static final SdkField> RUNTIME_CONFIGURATION_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("runtimeConfiguration")
            .getter(getter(UpdateApplicationRequest::runtimeConfiguration))
            .setter(setter(Builder::runtimeConfiguration))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("runtimeConfiguration").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(Configuration::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField MONITORING_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("monitoringConfiguration")
            .getter(getter(UpdateApplicationRequest::monitoringConfiguration)).setter(setter(Builder::monitoringConfiguration))
            .constructor(MonitoringConfiguration::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("monitoringConfiguration").build())
            .build();

    private static final SdkField SCHEDULER_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("schedulerConfiguration")
            .getter(getter(UpdateApplicationRequest::schedulerConfiguration)).setter(setter(Builder::schedulerConfiguration))
            .constructor(SchedulerConfiguration::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("schedulerConfiguration").build())
            .build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(APPLICATION_ID_FIELD,
            CLIENT_TOKEN_FIELD, INITIAL_CAPACITY_FIELD, MAXIMUM_CAPACITY_FIELD, AUTO_START_CONFIGURATION_FIELD,
            AUTO_STOP_CONFIGURATION_FIELD, NETWORK_CONFIGURATION_FIELD, ARCHITECTURE_FIELD, IMAGE_CONFIGURATION_FIELD,
            WORKER_TYPE_SPECIFICATIONS_FIELD, INTERACTIVE_CONFIGURATION_FIELD, RELEASE_LABEL_FIELD, RUNTIME_CONFIGURATION_FIELD,
            MONITORING_CONFIGURATION_FIELD, SCHEDULER_CONFIGURATION_FIELD));

    private static final Map> SDK_NAME_TO_FIELD = Collections
            .unmodifiableMap(new HashMap>() {
                {
                    put("applicationId", APPLICATION_ID_FIELD);
                    put("clientToken", CLIENT_TOKEN_FIELD);
                    put("initialCapacity", INITIAL_CAPACITY_FIELD);
                    put("maximumCapacity", MAXIMUM_CAPACITY_FIELD);
                    put("autoStartConfiguration", AUTO_START_CONFIGURATION_FIELD);
                    put("autoStopConfiguration", AUTO_STOP_CONFIGURATION_FIELD);
                    put("networkConfiguration", NETWORK_CONFIGURATION_FIELD);
                    put("architecture", ARCHITECTURE_FIELD);
                    put("imageConfiguration", IMAGE_CONFIGURATION_FIELD);
                    put("workerTypeSpecifications", WORKER_TYPE_SPECIFICATIONS_FIELD);
                    put("interactiveConfiguration", INTERACTIVE_CONFIGURATION_FIELD);
                    put("releaseLabel", RELEASE_LABEL_FIELD);
                    put("runtimeConfiguration", RUNTIME_CONFIGURATION_FIELD);
                    put("monitoringConfiguration", MONITORING_CONFIGURATION_FIELD);
                    put("schedulerConfiguration", SCHEDULER_CONFIGURATION_FIELD);
                }
            });

    private final String applicationId;

    private final String clientToken;

    private final Map initialCapacity;

    private final MaximumAllowedResources maximumCapacity;

    private final AutoStartConfig autoStartConfiguration;

    private final AutoStopConfig autoStopConfiguration;

    private final NetworkConfiguration networkConfiguration;

    private final String architecture;

    private final ImageConfigurationInput imageConfiguration;

    private final Map workerTypeSpecifications;

    private final InteractiveConfiguration interactiveConfiguration;

    private final String releaseLabel;

    private final List runtimeConfiguration;

    private final MonitoringConfiguration monitoringConfiguration;

    private final SchedulerConfiguration schedulerConfiguration;

    private UpdateApplicationRequest(BuilderImpl builder) {
        super(builder);
        this.applicationId = builder.applicationId;
        this.clientToken = builder.clientToken;
        this.initialCapacity = builder.initialCapacity;
        this.maximumCapacity = builder.maximumCapacity;
        this.autoStartConfiguration = builder.autoStartConfiguration;
        this.autoStopConfiguration = builder.autoStopConfiguration;
        this.networkConfiguration = builder.networkConfiguration;
        this.architecture = builder.architecture;
        this.imageConfiguration = builder.imageConfiguration;
        this.workerTypeSpecifications = builder.workerTypeSpecifications;
        this.interactiveConfiguration = builder.interactiveConfiguration;
        this.releaseLabel = builder.releaseLabel;
        this.runtimeConfiguration = builder.runtimeConfiguration;
        this.monitoringConfiguration = builder.monitoringConfiguration;
        this.schedulerConfiguration = builder.schedulerConfiguration;
    }

    /**
     * 

* The ID of the application to update. *

* * @return The ID of the application to update. */ public final String applicationId() { return applicationId; } /** *

* The client idempotency token of the application to update. Its value must be unique for each request. *

* * @return The client idempotency token of the application to update. Its value must be unique for each request. */ public final String clientToken() { return clientToken; } /** * For responses, this returns true if the service returned a value for the InitialCapacity property. This DOES NOT * check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). * This is useful because the SDK will never return a null collection or map, but you may need to differentiate * between the service returning nothing (or null) and the service returning an empty collection or map. For * requests, this returns true if a value for the property was specified in the request builder, and false if a * value was not specified. */ public final boolean hasInitialCapacity() { return initialCapacity != null && !(initialCapacity instanceof SdkAutoConstructMap); } /** *

* The capacity to initialize when the application is updated. *

*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasInitialCapacity} method. *

* * @return The capacity to initialize when the application is updated. */ public final Map initialCapacity() { return initialCapacity; } /** *

* The maximum capacity to allocate when the application is updated. This is cumulative across all workers at any * given point in time during the lifespan of the application. No new resources will be created once any one of the * defined limits is hit. *

* * @return The maximum capacity to allocate when the application is updated. This is cumulative across all workers * at any given point in time during the lifespan of the application. No new resources will be created once * any one of the defined limits is hit. */ public final MaximumAllowedResources maximumCapacity() { return maximumCapacity; } /** *

* The configuration for an application to automatically start on job submission. *

* * @return The configuration for an application to automatically start on job submission. */ public final AutoStartConfig autoStartConfiguration() { return autoStartConfiguration; } /** *

* The configuration for an application to automatically stop after a certain amount of time being idle. *

* * @return The configuration for an application to automatically stop after a certain amount of time being idle. */ public final AutoStopConfig autoStopConfiguration() { return autoStopConfiguration; } /** * Returns the value of the NetworkConfiguration property for this object. * * @return The value of the NetworkConfiguration property for this object. */ public final NetworkConfiguration networkConfiguration() { return networkConfiguration; } /** *

* The CPU architecture of an application. *

*

* If the service returns an enum value that is not available in the current SDK version, {@link #architecture} will * return {@link Architecture#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from * {@link #architectureAsString}. *

* * @return The CPU architecture of an application. * @see Architecture */ public final Architecture architecture() { return Architecture.fromValue(architecture); } /** *

* The CPU architecture of an application. *

*

* If the service returns an enum value that is not available in the current SDK version, {@link #architecture} will * return {@link Architecture#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from * {@link #architectureAsString}. *

* * @return The CPU architecture of an application. * @see Architecture */ public final String architectureAsString() { return architecture; } /** *

* The image configuration to be used for all worker types. You can either set this parameter or * imageConfiguration for each worker type in WorkerTypeSpecificationInput. *

* * @return The image configuration to be used for all worker types. You can either set this parameter or * imageConfiguration for each worker type in WorkerTypeSpecificationInput. */ public final ImageConfigurationInput imageConfiguration() { return imageConfiguration; } /** * For responses, this returns true if the service returned a value for the WorkerTypeSpecifications property. This * DOES NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the * property). This is useful because the SDK will never return a null collection or map, but you may need to * differentiate between the service returning nothing (or null) and the service returning an empty collection or * map. For requests, this returns true if a value for the property was specified in the request builder, and false * if a value was not specified. */ public final boolean hasWorkerTypeSpecifications() { return workerTypeSpecifications != null && !(workerTypeSpecifications instanceof SdkAutoConstructMap); } /** *

* The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must * contain all valid worker types for a Spark or Hive application. Valid worker types include Driver * and Executor for Spark applications and HiveDriver and TezTask for Hive * applications. You can either set image details in this parameter for each worker type, or in * imageConfiguration for all worker types. *

*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasWorkerTypeSpecifications} method. *

* * @return The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter * must contain all valid worker types for a Spark or Hive application. Valid worker types include * Driver and Executor for Spark applications and HiveDriver and * TezTask for Hive applications. You can either set image details in this parameter for each * worker type, or in imageConfiguration for all worker types. */ public final Map workerTypeSpecifications() { return workerTypeSpecifications; } /** *

* The interactive configuration object that contains new interactive use cases when the application is updated. *

* * @return The interactive configuration object that contains new interactive use cases when the application is * updated. */ public final InteractiveConfiguration interactiveConfiguration() { return interactiveConfiguration; } /** *

* The Amazon EMR release label for the application. You can change the release label to use a different release of * Amazon EMR. *

* * @return The Amazon EMR release label for the application. You can change the release label to use a different * release of Amazon EMR. */ public final String releaseLabel() { return releaseLabel; } /** * For responses, this returns true if the service returned a value for the RuntimeConfiguration property. This DOES * NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). * This is useful because the SDK will never return a null collection or map, but you may need to differentiate * between the service returning nothing (or null) and the service returning an empty collection or map. For * requests, this returns true if a value for the property was specified in the request builder, and false if a * value was not specified. */ public final boolean hasRuntimeConfiguration() { return runtimeConfiguration != null && !(runtimeConfiguration instanceof SdkAutoConstructList); } /** *

* The Configuration * specifications to use when updating an application. Each configuration consists of a classification and * properties. This configuration is applied across all the job runs submitted under the application. *

*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasRuntimeConfiguration} method. *

* * @return The Configuration * specifications to use when updating an application. Each configuration consists of a classification * and properties. This configuration is applied across all the job runs submitted under the application. */ public final List runtimeConfiguration() { return runtimeConfiguration; } /** *

* The configuration setting for monitoring. *

* * @return The configuration setting for monitoring. */ public final MonitoringConfiguration monitoringConfiguration() { return monitoringConfiguration; } /** *

* The scheduler configuration for batch and streaming jobs running on this application. Supported with release * labels emr-7.0.0 and above. *

* * @return The scheduler configuration for batch and streaming jobs running on this application. Supported with * release labels emr-7.0.0 and above. */ public final SchedulerConfiguration schedulerConfiguration() { return schedulerConfiguration; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(applicationId()); hashCode = 31 * hashCode + Objects.hashCode(clientToken()); hashCode = 31 * hashCode + Objects.hashCode(hasInitialCapacity() ? initialCapacity() : null); hashCode = 31 * hashCode + Objects.hashCode(maximumCapacity()); hashCode = 31 * hashCode + Objects.hashCode(autoStartConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(autoStopConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(networkConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(architectureAsString()); hashCode = 31 * hashCode + Objects.hashCode(imageConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(hasWorkerTypeSpecifications() ? workerTypeSpecifications() : null); hashCode = 31 * hashCode + Objects.hashCode(interactiveConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(releaseLabel()); hashCode = 31 * hashCode + Objects.hashCode(hasRuntimeConfiguration() ? runtimeConfiguration() : null); hashCode = 31 * hashCode + Objects.hashCode(monitoringConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(schedulerConfiguration()); return hashCode; } @Override public final boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof UpdateApplicationRequest)) { return false; } UpdateApplicationRequest other = (UpdateApplicationRequest) obj; return Objects.equals(applicationId(), other.applicationId()) && Objects.equals(clientToken(), other.clientToken()) && hasInitialCapacity() == other.hasInitialCapacity() && Objects.equals(initialCapacity(), other.initialCapacity()) && Objects.equals(maximumCapacity(), other.maximumCapacity()) && Objects.equals(autoStartConfiguration(), other.autoStartConfiguration()) && Objects.equals(autoStopConfiguration(), other.autoStopConfiguration()) && Objects.equals(networkConfiguration(), other.networkConfiguration()) && Objects.equals(architectureAsString(), other.architectureAsString()) && Objects.equals(imageConfiguration(), other.imageConfiguration()) && hasWorkerTypeSpecifications() == other.hasWorkerTypeSpecifications() && Objects.equals(workerTypeSpecifications(), other.workerTypeSpecifications()) && Objects.equals(interactiveConfiguration(), other.interactiveConfiguration()) && Objects.equals(releaseLabel(), other.releaseLabel()) && hasRuntimeConfiguration() == other.hasRuntimeConfiguration() && Objects.equals(runtimeConfiguration(), other.runtimeConfiguration()) && Objects.equals(monitoringConfiguration(), other.monitoringConfiguration()) && Objects.equals(schedulerConfiguration(), other.schedulerConfiguration()); } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. */ @Override public final String toString() { return ToString.builder("UpdateApplicationRequest").add("ApplicationId", applicationId()) .add("ClientToken", clientToken()).add("InitialCapacity", hasInitialCapacity() ? initialCapacity() : null) .add("MaximumCapacity", maximumCapacity()).add("AutoStartConfiguration", autoStartConfiguration()) .add("AutoStopConfiguration", autoStopConfiguration()).add("NetworkConfiguration", networkConfiguration()) .add("Architecture", architectureAsString()).add("ImageConfiguration", imageConfiguration()) .add("WorkerTypeSpecifications", hasWorkerTypeSpecifications() ? workerTypeSpecifications() : null) .add("InteractiveConfiguration", interactiveConfiguration()).add("ReleaseLabel", releaseLabel()) .add("RuntimeConfiguration", hasRuntimeConfiguration() ? runtimeConfiguration() : null) .add("MonitoringConfiguration", monitoringConfiguration()) .add("SchedulerConfiguration", schedulerConfiguration()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "applicationId": return Optional.ofNullable(clazz.cast(applicationId())); case "clientToken": return Optional.ofNullable(clazz.cast(clientToken())); case "initialCapacity": return Optional.ofNullable(clazz.cast(initialCapacity())); case "maximumCapacity": return Optional.ofNullable(clazz.cast(maximumCapacity())); case "autoStartConfiguration": return Optional.ofNullable(clazz.cast(autoStartConfiguration())); case "autoStopConfiguration": return Optional.ofNullable(clazz.cast(autoStopConfiguration())); case "networkConfiguration": return Optional.ofNullable(clazz.cast(networkConfiguration())); case "architecture": return Optional.ofNullable(clazz.cast(architectureAsString())); case "imageConfiguration": return Optional.ofNullable(clazz.cast(imageConfiguration())); case "workerTypeSpecifications": return Optional.ofNullable(clazz.cast(workerTypeSpecifications())); case "interactiveConfiguration": return Optional.ofNullable(clazz.cast(interactiveConfiguration())); case "releaseLabel": return Optional.ofNullable(clazz.cast(releaseLabel())); case "runtimeConfiguration": return Optional.ofNullable(clazz.cast(runtimeConfiguration())); case "monitoringConfiguration": return Optional.ofNullable(clazz.cast(monitoringConfiguration())); case "schedulerConfiguration": return Optional.ofNullable(clazz.cast(schedulerConfiguration())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } @Override public final Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } private static Function getter(Function g) { return obj -> g.apply((UpdateApplicationRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends EmrServerlessRequest.Builder, SdkPojo, CopyableBuilder { /** *

* The ID of the application to update. *

* * @param applicationId * The ID of the application to update. * @return Returns a reference to this object so that method calls can be chained together. */ Builder applicationId(String applicationId); /** *

* The client idempotency token of the application to update. Its value must be unique for each request. *

* * @param clientToken * The client idempotency token of the application to update. Its value must be unique for each request. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clientToken(String clientToken); /** *

* The capacity to initialize when the application is updated. *

* * @param initialCapacity * The capacity to initialize when the application is updated. * @return Returns a reference to this object so that method calls can be chained together. */ Builder initialCapacity(Map initialCapacity); /** *

* The maximum capacity to allocate when the application is updated. This is cumulative across all workers at * any given point in time during the lifespan of the application. No new resources will be created once any one * of the defined limits is hit. *

* * @param maximumCapacity * The maximum capacity to allocate when the application is updated. This is cumulative across all * workers at any given point in time during the lifespan of the application. No new resources will be * created once any one of the defined limits is hit. * @return Returns a reference to this object so that method calls can be chained together. */ Builder maximumCapacity(MaximumAllowedResources maximumCapacity); /** *

* The maximum capacity to allocate when the application is updated. This is cumulative across all workers at * any given point in time during the lifespan of the application. No new resources will be created once any one * of the defined limits is hit. *

* This is a convenience method that creates an instance of the {@link MaximumAllowedResources.Builder} avoiding * the need to create one manually via {@link MaximumAllowedResources#builder()}. * *

* When the {@link Consumer} completes, {@link MaximumAllowedResources.Builder#build()} is called immediately * and its result is passed to {@link #maximumCapacity(MaximumAllowedResources)}. * * @param maximumCapacity * a consumer that will call methods on {@link MaximumAllowedResources.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #maximumCapacity(MaximumAllowedResources) */ default Builder maximumCapacity(Consumer maximumCapacity) { return maximumCapacity(MaximumAllowedResources.builder().applyMutation(maximumCapacity).build()); } /** *

* The configuration for an application to automatically start on job submission. *

* * @param autoStartConfiguration * The configuration for an application to automatically start on job submission. * @return Returns a reference to this object so that method calls can be chained together. */ Builder autoStartConfiguration(AutoStartConfig autoStartConfiguration); /** *

* The configuration for an application to automatically start on job submission. *

* This is a convenience method that creates an instance of the {@link AutoStartConfig.Builder} avoiding the * need to create one manually via {@link AutoStartConfig#builder()}. * *

* When the {@link Consumer} completes, {@link AutoStartConfig.Builder#build()} is called immediately and its * result is passed to {@link #autoStartConfiguration(AutoStartConfig)}. * * @param autoStartConfiguration * a consumer that will call methods on {@link AutoStartConfig.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #autoStartConfiguration(AutoStartConfig) */ default Builder autoStartConfiguration(Consumer autoStartConfiguration) { return autoStartConfiguration(AutoStartConfig.builder().applyMutation(autoStartConfiguration).build()); } /** *

* The configuration for an application to automatically stop after a certain amount of time being idle. *

* * @param autoStopConfiguration * The configuration for an application to automatically stop after a certain amount of time being idle. * @return Returns a reference to this object so that method calls can be chained together. */ Builder autoStopConfiguration(AutoStopConfig autoStopConfiguration); /** *

* The configuration for an application to automatically stop after a certain amount of time being idle. *

* This is a convenience method that creates an instance of the {@link AutoStopConfig.Builder} avoiding the need * to create one manually via {@link AutoStopConfig#builder()}. * *

* When the {@link Consumer} completes, {@link AutoStopConfig.Builder#build()} is called immediately and its * result is passed to {@link #autoStopConfiguration(AutoStopConfig)}. * * @param autoStopConfiguration * a consumer that will call methods on {@link AutoStopConfig.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #autoStopConfiguration(AutoStopConfig) */ default Builder autoStopConfiguration(Consumer autoStopConfiguration) { return autoStopConfiguration(AutoStopConfig.builder().applyMutation(autoStopConfiguration).build()); } /** * Sets the value of the NetworkConfiguration property for this object. * * @param networkConfiguration * The new value for the NetworkConfiguration property for this object. * @return Returns a reference to this object so that method calls can be chained together. */ Builder networkConfiguration(NetworkConfiguration networkConfiguration); /** * Sets the value of the NetworkConfiguration property for this object. * * This is a convenience method that creates an instance of the {@link NetworkConfiguration.Builder} avoiding * the need to create one manually via {@link NetworkConfiguration#builder()}. * *

* When the {@link Consumer} completes, {@link NetworkConfiguration.Builder#build()} is called immediately and * its result is passed to {@link #networkConfiguration(NetworkConfiguration)}. * * @param networkConfiguration * a consumer that will call methods on {@link NetworkConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #networkConfiguration(NetworkConfiguration) */ default Builder networkConfiguration(Consumer networkConfiguration) { return networkConfiguration(NetworkConfiguration.builder().applyMutation(networkConfiguration).build()); } /** *

* The CPU architecture of an application. *

* * @param architecture * The CPU architecture of an application. * @see Architecture * @return Returns a reference to this object so that method calls can be chained together. * @see Architecture */ Builder architecture(String architecture); /** *

* The CPU architecture of an application. *

* * @param architecture * The CPU architecture of an application. * @see Architecture * @return Returns a reference to this object so that method calls can be chained together. * @see Architecture */ Builder architecture(Architecture architecture); /** *

* The image configuration to be used for all worker types. You can either set this parameter or * imageConfiguration for each worker type in WorkerTypeSpecificationInput. *

* * @param imageConfiguration * The image configuration to be used for all worker types. You can either set this parameter or * imageConfiguration for each worker type in WorkerTypeSpecificationInput. * @return Returns a reference to this object so that method calls can be chained together. */ Builder imageConfiguration(ImageConfigurationInput imageConfiguration); /** *

* The image configuration to be used for all worker types. You can either set this parameter or * imageConfiguration for each worker type in WorkerTypeSpecificationInput. *

* This is a convenience method that creates an instance of the {@link ImageConfigurationInput.Builder} avoiding * the need to create one manually via {@link ImageConfigurationInput#builder()}. * *

* When the {@link Consumer} completes, {@link ImageConfigurationInput.Builder#build()} is called immediately * and its result is passed to {@link #imageConfiguration(ImageConfigurationInput)}. * * @param imageConfiguration * a consumer that will call methods on {@link ImageConfigurationInput.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #imageConfiguration(ImageConfigurationInput) */ default Builder imageConfiguration(Consumer imageConfiguration) { return imageConfiguration(ImageConfigurationInput.builder().applyMutation(imageConfiguration).build()); } /** *

* The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter * must contain all valid worker types for a Spark or Hive application. Valid worker types include * Driver and Executor for Spark applications and HiveDriver and * TezTask for Hive applications. You can either set image details in this parameter for each * worker type, or in imageConfiguration for all worker types. *

* * @param workerTypeSpecifications * The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This * parameter must contain all valid worker types for a Spark or Hive application. Valid worker types * include Driver and Executor for Spark applications and * HiveDriver and TezTask for Hive applications. You can either set image * details in this parameter for each worker type, or in imageConfiguration for all worker * types. * @return Returns a reference to this object so that method calls can be chained together. */ Builder workerTypeSpecifications(Map workerTypeSpecifications); /** *

* The interactive configuration object that contains new interactive use cases when the application is updated. *

* * @param interactiveConfiguration * The interactive configuration object that contains new interactive use cases when the application is * updated. * @return Returns a reference to this object so that method calls can be chained together. */ Builder interactiveConfiguration(InteractiveConfiguration interactiveConfiguration); /** *

* The interactive configuration object that contains new interactive use cases when the application is updated. *

* This is a convenience method that creates an instance of the {@link InteractiveConfiguration.Builder} * avoiding the need to create one manually via {@link InteractiveConfiguration#builder()}. * *

* When the {@link Consumer} completes, {@link InteractiveConfiguration.Builder#build()} is called immediately * and its result is passed to {@link #interactiveConfiguration(InteractiveConfiguration)}. * * @param interactiveConfiguration * a consumer that will call methods on {@link InteractiveConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #interactiveConfiguration(InteractiveConfiguration) */ default Builder interactiveConfiguration(Consumer interactiveConfiguration) { return interactiveConfiguration(InteractiveConfiguration.builder().applyMutation(interactiveConfiguration).build()); } /** *

* The Amazon EMR release label for the application. You can change the release label to use a different release * of Amazon EMR. *

* * @param releaseLabel * The Amazon EMR release label for the application. You can change the release label to use a different * release of Amazon EMR. * @return Returns a reference to this object so that method calls can be chained together. */ Builder releaseLabel(String releaseLabel); /** *

* The Configuration * specifications to use when updating an application. Each configuration consists of a classification and * properties. This configuration is applied across all the job runs submitted under the application. *

* * @param runtimeConfiguration * The * Configuration specifications to use when updating an application. Each configuration consists of a * classification and properties. This configuration is applied across all the job runs submitted under * the application. * @return Returns a reference to this object so that method calls can be chained together. */ Builder runtimeConfiguration(Collection runtimeConfiguration); /** *

* The Configuration * specifications to use when updating an application. Each configuration consists of a classification and * properties. This configuration is applied across all the job runs submitted under the application. *

* * @param runtimeConfiguration * The * Configuration specifications to use when updating an application. Each configuration consists of a * classification and properties. This configuration is applied across all the job runs submitted under * the application. * @return Returns a reference to this object so that method calls can be chained together. */ Builder runtimeConfiguration(Configuration... runtimeConfiguration); /** *

* The Configuration * specifications to use when updating an application. Each configuration consists of a classification and * properties. This configuration is applied across all the job runs submitted under the application. *

* This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.emrserverless.model.Configuration.Builder} avoiding the need to create * one manually via {@link software.amazon.awssdk.services.emrserverless.model.Configuration#builder()}. * *

* When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.emrserverless.model.Configuration.Builder#build()} is called * immediately and its result is passed to {@link #runtimeConfiguration(List)}. * * @param runtimeConfiguration * a consumer that will call methods on * {@link software.amazon.awssdk.services.emrserverless.model.Configuration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #runtimeConfiguration(java.util.Collection) */ Builder runtimeConfiguration(Consumer... runtimeConfiguration); /** *

* The configuration setting for monitoring. *

* * @param monitoringConfiguration * The configuration setting for monitoring. * @return Returns a reference to this object so that method calls can be chained together. */ Builder monitoringConfiguration(MonitoringConfiguration monitoringConfiguration); /** *

* The configuration setting for monitoring. *

* This is a convenience method that creates an instance of the {@link MonitoringConfiguration.Builder} avoiding * the need to create one manually via {@link MonitoringConfiguration#builder()}. * *

* When the {@link Consumer} completes, {@link MonitoringConfiguration.Builder#build()} is called immediately * and its result is passed to {@link #monitoringConfiguration(MonitoringConfiguration)}. * * @param monitoringConfiguration * a consumer that will call methods on {@link MonitoringConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #monitoringConfiguration(MonitoringConfiguration) */ default Builder monitoringConfiguration(Consumer monitoringConfiguration) { return monitoringConfiguration(MonitoringConfiguration.builder().applyMutation(monitoringConfiguration).build()); } /** *

* The scheduler configuration for batch and streaming jobs running on this application. Supported with release * labels emr-7.0.0 and above. *

* * @param schedulerConfiguration * The scheduler configuration for batch and streaming jobs running on this application. Supported with * release labels emr-7.0.0 and above. * @return Returns a reference to this object so that method calls can be chained together. */ Builder schedulerConfiguration(SchedulerConfiguration schedulerConfiguration); /** *

* The scheduler configuration for batch and streaming jobs running on this application. Supported with release * labels emr-7.0.0 and above. *

* This is a convenience method that creates an instance of the {@link SchedulerConfiguration.Builder} avoiding * the need to create one manually via {@link SchedulerConfiguration#builder()}. * *

* When the {@link Consumer} completes, {@link SchedulerConfiguration.Builder#build()} is called immediately and * its result is passed to {@link #schedulerConfiguration(SchedulerConfiguration)}. * * @param schedulerConfiguration * a consumer that will call methods on {@link SchedulerConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #schedulerConfiguration(SchedulerConfiguration) */ default Builder schedulerConfiguration(Consumer schedulerConfiguration) { return schedulerConfiguration(SchedulerConfiguration.builder().applyMutation(schedulerConfiguration).build()); } @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends EmrServerlessRequest.BuilderImpl implements Builder { private String applicationId; private String clientToken; private Map initialCapacity = DefaultSdkAutoConstructMap.getInstance(); private MaximumAllowedResources maximumCapacity; private AutoStartConfig autoStartConfiguration; private AutoStopConfig autoStopConfiguration; private NetworkConfiguration networkConfiguration; private String architecture; private ImageConfigurationInput imageConfiguration; private Map workerTypeSpecifications = DefaultSdkAutoConstructMap.getInstance(); private InteractiveConfiguration interactiveConfiguration; private String releaseLabel; private List runtimeConfiguration = DefaultSdkAutoConstructList.getInstance(); private MonitoringConfiguration monitoringConfiguration; private SchedulerConfiguration schedulerConfiguration; private BuilderImpl() { } private BuilderImpl(UpdateApplicationRequest model) { super(model); applicationId(model.applicationId); clientToken(model.clientToken); initialCapacity(model.initialCapacity); maximumCapacity(model.maximumCapacity); autoStartConfiguration(model.autoStartConfiguration); autoStopConfiguration(model.autoStopConfiguration); networkConfiguration(model.networkConfiguration); architecture(model.architecture); imageConfiguration(model.imageConfiguration); workerTypeSpecifications(model.workerTypeSpecifications); interactiveConfiguration(model.interactiveConfiguration); releaseLabel(model.releaseLabel); runtimeConfiguration(model.runtimeConfiguration); monitoringConfiguration(model.monitoringConfiguration); schedulerConfiguration(model.schedulerConfiguration); } public final String getApplicationId() { return applicationId; } public final void setApplicationId(String applicationId) { this.applicationId = applicationId; } @Override public final Builder applicationId(String applicationId) { this.applicationId = applicationId; return this; } public final String getClientToken() { return clientToken; } public final void setClientToken(String clientToken) { this.clientToken = clientToken; } @Override public final Builder clientToken(String clientToken) { this.clientToken = clientToken; return this; } public final Map getInitialCapacity() { Map result = InitialCapacityConfigMapCopier .copyToBuilder(this.initialCapacity); if (result instanceof SdkAutoConstructMap) { return null; } return result; } public final void setInitialCapacity(Map initialCapacity) { this.initialCapacity = InitialCapacityConfigMapCopier.copyFromBuilder(initialCapacity); } @Override public final Builder initialCapacity(Map initialCapacity) { this.initialCapacity = InitialCapacityConfigMapCopier.copy(initialCapacity); return this; } public final MaximumAllowedResources.Builder getMaximumCapacity() { return maximumCapacity != null ? maximumCapacity.toBuilder() : null; } public final void setMaximumCapacity(MaximumAllowedResources.BuilderImpl maximumCapacity) { this.maximumCapacity = maximumCapacity != null ? maximumCapacity.build() : null; } @Override public final Builder maximumCapacity(MaximumAllowedResources maximumCapacity) { this.maximumCapacity = maximumCapacity; return this; } public final AutoStartConfig.Builder getAutoStartConfiguration() { return autoStartConfiguration != null ? autoStartConfiguration.toBuilder() : null; } public final void setAutoStartConfiguration(AutoStartConfig.BuilderImpl autoStartConfiguration) { this.autoStartConfiguration = autoStartConfiguration != null ? autoStartConfiguration.build() : null; } @Override public final Builder autoStartConfiguration(AutoStartConfig autoStartConfiguration) { this.autoStartConfiguration = autoStartConfiguration; return this; } public final AutoStopConfig.Builder getAutoStopConfiguration() { return autoStopConfiguration != null ? autoStopConfiguration.toBuilder() : null; } public final void setAutoStopConfiguration(AutoStopConfig.BuilderImpl autoStopConfiguration) { this.autoStopConfiguration = autoStopConfiguration != null ? autoStopConfiguration.build() : null; } @Override public final Builder autoStopConfiguration(AutoStopConfig autoStopConfiguration) { this.autoStopConfiguration = autoStopConfiguration; return this; } public final NetworkConfiguration.Builder getNetworkConfiguration() { return networkConfiguration != null ? networkConfiguration.toBuilder() : null; } public final void setNetworkConfiguration(NetworkConfiguration.BuilderImpl networkConfiguration) { this.networkConfiguration = networkConfiguration != null ? networkConfiguration.build() : null; } @Override public final Builder networkConfiguration(NetworkConfiguration networkConfiguration) { this.networkConfiguration = networkConfiguration; return this; } public final String getArchitecture() { return architecture; } public final void setArchitecture(String architecture) { this.architecture = architecture; } @Override public final Builder architecture(String architecture) { this.architecture = architecture; return this; } @Override public final Builder architecture(Architecture architecture) { this.architecture(architecture == null ? null : architecture.toString()); return this; } public final ImageConfigurationInput.Builder getImageConfiguration() { return imageConfiguration != null ? imageConfiguration.toBuilder() : null; } public final void setImageConfiguration(ImageConfigurationInput.BuilderImpl imageConfiguration) { this.imageConfiguration = imageConfiguration != null ? imageConfiguration.build() : null; } @Override public final Builder imageConfiguration(ImageConfigurationInput imageConfiguration) { this.imageConfiguration = imageConfiguration; return this; } public final Map getWorkerTypeSpecifications() { Map result = WorkerTypeSpecificationInputMapCopier .copyToBuilder(this.workerTypeSpecifications); if (result instanceof SdkAutoConstructMap) { return null; } return result; } public final void setWorkerTypeSpecifications( Map workerTypeSpecifications) { this.workerTypeSpecifications = WorkerTypeSpecificationInputMapCopier.copyFromBuilder(workerTypeSpecifications); } @Override public final Builder workerTypeSpecifications(Map workerTypeSpecifications) { this.workerTypeSpecifications = WorkerTypeSpecificationInputMapCopier.copy(workerTypeSpecifications); return this; } public final InteractiveConfiguration.Builder getInteractiveConfiguration() { return interactiveConfiguration != null ? interactiveConfiguration.toBuilder() : null; } public final void setInteractiveConfiguration(InteractiveConfiguration.BuilderImpl interactiveConfiguration) { this.interactiveConfiguration = interactiveConfiguration != null ? interactiveConfiguration.build() : null; } @Override public final Builder interactiveConfiguration(InteractiveConfiguration interactiveConfiguration) { this.interactiveConfiguration = interactiveConfiguration; return this; } public final String getReleaseLabel() { return releaseLabel; } public final void setReleaseLabel(String releaseLabel) { this.releaseLabel = releaseLabel; } @Override public final Builder releaseLabel(String releaseLabel) { this.releaseLabel = releaseLabel; return this; } public final List getRuntimeConfiguration() { List result = ConfigurationListCopier.copyToBuilder(this.runtimeConfiguration); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setRuntimeConfiguration(Collection runtimeConfiguration) { this.runtimeConfiguration = ConfigurationListCopier.copyFromBuilder(runtimeConfiguration); } @Override public final Builder runtimeConfiguration(Collection runtimeConfiguration) { this.runtimeConfiguration = ConfigurationListCopier.copy(runtimeConfiguration); return this; } @Override @SafeVarargs public final Builder runtimeConfiguration(Configuration... runtimeConfiguration) { runtimeConfiguration(Arrays.asList(runtimeConfiguration)); return this; } @Override @SafeVarargs public final Builder runtimeConfiguration(Consumer... runtimeConfiguration) { runtimeConfiguration(Stream.of(runtimeConfiguration).map(c -> Configuration.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } public final MonitoringConfiguration.Builder getMonitoringConfiguration() { return monitoringConfiguration != null ? monitoringConfiguration.toBuilder() : null; } public final void setMonitoringConfiguration(MonitoringConfiguration.BuilderImpl monitoringConfiguration) { this.monitoringConfiguration = monitoringConfiguration != null ? monitoringConfiguration.build() : null; } @Override public final Builder monitoringConfiguration(MonitoringConfiguration monitoringConfiguration) { this.monitoringConfiguration = monitoringConfiguration; return this; } public final SchedulerConfiguration.Builder getSchedulerConfiguration() { return schedulerConfiguration != null ? schedulerConfiguration.toBuilder() : null; } public final void setSchedulerConfiguration(SchedulerConfiguration.BuilderImpl schedulerConfiguration) { this.schedulerConfiguration = schedulerConfiguration != null ? schedulerConfiguration.build() : null; } @Override public final Builder schedulerConfiguration(SchedulerConfiguration schedulerConfiguration) { this.schedulerConfiguration = schedulerConfiguration; return this; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public UpdateApplicationRequest build() { return new UpdateApplicationRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } @Override public Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy