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

software.amazon.awssdk.services.ssm.model.AssociationDescription Maven / Gradle / Ivy

/*
 * 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.ssm.model;

import java.io.Serializable;
import java.time.Instant;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
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.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.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;

/**
 * 

* Describes the parameters for a document. *

*/ @Generated("software.amazon.awssdk:codegen") public final class AssociationDescription implements SdkPojo, Serializable, ToCopyableBuilder { private static final SdkField NAME_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Name") .getter(getter(AssociationDescription::name)).setter(setter(Builder::name)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Name").build()).build(); private static final SdkField INSTANCE_ID_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("InstanceId").getter(getter(AssociationDescription::instanceId)).setter(setter(Builder::instanceId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("InstanceId").build()).build(); private static final SdkField ASSOCIATION_VERSION_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("AssociationVersion").getter(getter(AssociationDescription::associationVersion)) .setter(setter(Builder::associationVersion)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AssociationVersion").build()) .build(); private static final SdkField DATE_FIELD = SdkField. builder(MarshallingType.INSTANT).memberName("Date") .getter(getter(AssociationDescription::date)).setter(setter(Builder::date)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Date").build()).build(); private static final SdkField LAST_UPDATE_ASSOCIATION_DATE_FIELD = SdkField . builder(MarshallingType.INSTANT).memberName("LastUpdateAssociationDate") .getter(getter(AssociationDescription::lastUpdateAssociationDate)).setter(setter(Builder::lastUpdateAssociationDate)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LastUpdateAssociationDate").build()) .build(); private static final SdkField STATUS_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("Status") .getter(getter(AssociationDescription::status)).setter(setter(Builder::status)) .constructor(AssociationStatus::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Status").build()).build(); private static final SdkField OVERVIEW_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("Overview") .getter(getter(AssociationDescription::overview)).setter(setter(Builder::overview)) .constructor(AssociationOverview::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Overview").build()).build(); private static final SdkField DOCUMENT_VERSION_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("DocumentVersion").getter(getter(AssociationDescription::documentVersion)) .setter(setter(Builder::documentVersion)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DocumentVersion").build()).build(); private static final SdkField AUTOMATION_TARGET_PARAMETER_NAME_FIELD = SdkField . builder(MarshallingType.STRING) .memberName("AutomationTargetParameterName") .getter(getter(AssociationDescription::automationTargetParameterName)) .setter(setter(Builder::automationTargetParameterName)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AutomationTargetParameterName") .build()).build(); private static final SdkField>> PARAMETERS_FIELD = SdkField .>> builder(MarshallingType.MAP) .memberName("Parameters") .getter(getter(AssociationDescription::parameters)) .setter(setter(Builder::parameters)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Parameters").build(), MapTrait.builder() .keyLocationName("key") .valueLocationName("value") .valueFieldInfo( SdkField.> builder(MarshallingType.LIST) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("value").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.STRING) .traits(LocationTrait.builder() .location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()) .build()).build()).build()).build(); private static final SdkField ASSOCIATION_ID_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("AssociationId").getter(getter(AssociationDescription::associationId)) .setter(setter(Builder::associationId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AssociationId").build()).build(); private static final SdkField> TARGETS_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("Targets") .getter(getter(AssociationDescription::targets)) .setter(setter(Builder::targets)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Targets").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.SDK_POJO) .constructor(Target::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()).build()).build(); private static final SdkField SCHEDULE_EXPRESSION_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("ScheduleExpression").getter(getter(AssociationDescription::scheduleExpression)) .setter(setter(Builder::scheduleExpression)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ScheduleExpression").build()) .build(); private static final SdkField OUTPUT_LOCATION_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("OutputLocation") .getter(getter(AssociationDescription::outputLocation)).setter(setter(Builder::outputLocation)) .constructor(InstanceAssociationOutputLocation::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("OutputLocation").build()).build(); private static final SdkField LAST_EXECUTION_DATE_FIELD = SdkField. builder(MarshallingType.INSTANT) .memberName("LastExecutionDate").getter(getter(AssociationDescription::lastExecutionDate)) .setter(setter(Builder::lastExecutionDate)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LastExecutionDate").build()).build(); private static final SdkField LAST_SUCCESSFUL_EXECUTION_DATE_FIELD = SdkField . builder(MarshallingType.INSTANT) .memberName("LastSuccessfulExecutionDate") .getter(getter(AssociationDescription::lastSuccessfulExecutionDate)) .setter(setter(Builder::lastSuccessfulExecutionDate)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LastSuccessfulExecutionDate") .build()).build(); private static final SdkField ASSOCIATION_NAME_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("AssociationName").getter(getter(AssociationDescription::associationName)) .setter(setter(Builder::associationName)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AssociationName").build()).build(); private static final SdkField MAX_ERRORS_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("MaxErrors").getter(getter(AssociationDescription::maxErrors)).setter(setter(Builder::maxErrors)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MaxErrors").build()).build(); private static final SdkField MAX_CONCURRENCY_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("MaxConcurrency").getter(getter(AssociationDescription::maxConcurrency)) .setter(setter(Builder::maxConcurrency)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MaxConcurrency").build()).build(); private static final SdkField COMPLIANCE_SEVERITY_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("ComplianceSeverity").getter(getter(AssociationDescription::complianceSeverityAsString)) .setter(setter(Builder::complianceSeverity)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ComplianceSeverity").build()) .build(); private static final SdkField SYNC_COMPLIANCE_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("SyncCompliance").getter(getter(AssociationDescription::syncComplianceAsString)) .setter(setter(Builder::syncCompliance)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SyncCompliance").build()).build(); private static final SdkField APPLY_ONLY_AT_CRON_INTERVAL_FIELD = SdkField . builder(MarshallingType.BOOLEAN).memberName("ApplyOnlyAtCronInterval") .getter(getter(AssociationDescription::applyOnlyAtCronInterval)).setter(setter(Builder::applyOnlyAtCronInterval)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ApplyOnlyAtCronInterval").build()) .build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(NAME_FIELD, INSTANCE_ID_FIELD, ASSOCIATION_VERSION_FIELD, DATE_FIELD, LAST_UPDATE_ASSOCIATION_DATE_FIELD, STATUS_FIELD, OVERVIEW_FIELD, DOCUMENT_VERSION_FIELD, AUTOMATION_TARGET_PARAMETER_NAME_FIELD, PARAMETERS_FIELD, ASSOCIATION_ID_FIELD, TARGETS_FIELD, SCHEDULE_EXPRESSION_FIELD, OUTPUT_LOCATION_FIELD, LAST_EXECUTION_DATE_FIELD, LAST_SUCCESSFUL_EXECUTION_DATE_FIELD, ASSOCIATION_NAME_FIELD, MAX_ERRORS_FIELD, MAX_CONCURRENCY_FIELD, COMPLIANCE_SEVERITY_FIELD, SYNC_COMPLIANCE_FIELD, APPLY_ONLY_AT_CRON_INTERVAL_FIELD)); private static final long serialVersionUID = 1L; private final String name; private final String instanceId; private final String associationVersion; private final Instant date; private final Instant lastUpdateAssociationDate; private final AssociationStatus status; private final AssociationOverview overview; private final String documentVersion; private final String automationTargetParameterName; private final Map> parameters; private final String associationId; private final List targets; private final String scheduleExpression; private final InstanceAssociationOutputLocation outputLocation; private final Instant lastExecutionDate; private final Instant lastSuccessfulExecutionDate; private final String associationName; private final String maxErrors; private final String maxConcurrency; private final String complianceSeverity; private final String syncCompliance; private final Boolean applyOnlyAtCronInterval; private AssociationDescription(BuilderImpl builder) { this.name = builder.name; this.instanceId = builder.instanceId; this.associationVersion = builder.associationVersion; this.date = builder.date; this.lastUpdateAssociationDate = builder.lastUpdateAssociationDate; this.status = builder.status; this.overview = builder.overview; this.documentVersion = builder.documentVersion; this.automationTargetParameterName = builder.automationTargetParameterName; this.parameters = builder.parameters; this.associationId = builder.associationId; this.targets = builder.targets; this.scheduleExpression = builder.scheduleExpression; this.outputLocation = builder.outputLocation; this.lastExecutionDate = builder.lastExecutionDate; this.lastSuccessfulExecutionDate = builder.lastSuccessfulExecutionDate; this.associationName = builder.associationName; this.maxErrors = builder.maxErrors; this.maxConcurrency = builder.maxConcurrency; this.complianceSeverity = builder.complianceSeverity; this.syncCompliance = builder.syncCompliance; this.applyOnlyAtCronInterval = builder.applyOnlyAtCronInterval; } /** *

* The name of the Systems Manager document. *

* * @return The name of the Systems Manager document. */ public String name() { return name; } /** *

* The ID of the instance. *

* * @return The ID of the instance. */ public String instanceId() { return instanceId; } /** *

* The association version. *

* * @return The association version. */ public String associationVersion() { return associationVersion; } /** *

* The date when the association was made. *

* * @return The date when the association was made. */ public Instant date() { return date; } /** *

* The date when the association was last updated. *

* * @return The date when the association was last updated. */ public Instant lastUpdateAssociationDate() { return lastUpdateAssociationDate; } /** *

* The association status. *

* * @return The association status. */ public AssociationStatus status() { return status; } /** *

* Information about the association. *

* * @return Information about the association. */ public AssociationOverview overview() { return overview; } /** *

* The document version. *

* * @return The document version. */ public String documentVersion() { return documentVersion; } /** *

* Specify the target for the association. This target is required for associations that use an Automation document * and target resources by using rate controls. *

* * @return Specify the target for the association. This target is required for associations that use an Automation * document and target resources by using rate controls. */ public String automationTargetParameterName() { return automationTargetParameterName; } /** * Returns true if the Parameters property was specified by the sender (it may be empty), or false if the sender did * not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS service. */ public boolean hasParameters() { return parameters != null && !(parameters instanceof SdkAutoConstructMap); } /** *

* A description of the parameters for a document. *

*

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

*

* You can use {@link #hasParameters()} to see if a value was sent in this field. *

* * @return A description of the parameters for a document. */ public Map> parameters() { return parameters; } /** *

* The association ID. *

* * @return The association ID. */ public String associationId() { return associationId; } /** * Returns true if the Targets property was specified by the sender (it may be empty), or false if the sender did * not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS service. */ public boolean hasTargets() { return targets != null && !(targets instanceof SdkAutoConstructList); } /** *

* The instances targeted by the request. *

*

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

*

* You can use {@link #hasTargets()} to see if a value was sent in this field. *

* * @return The instances targeted by the request. */ public List targets() { return targets; } /** *

* A cron expression that specifies a schedule when the association runs. *

* * @return A cron expression that specifies a schedule when the association runs. */ public String scheduleExpression() { return scheduleExpression; } /** *

* An S3 bucket where you want to store the output details of the request. *

* * @return An S3 bucket where you want to store the output details of the request. */ public InstanceAssociationOutputLocation outputLocation() { return outputLocation; } /** *

* The date on which the association was last run. *

* * @return The date on which the association was last run. */ public Instant lastExecutionDate() { return lastExecutionDate; } /** *

* The last date on which the association was successfully run. *

* * @return The last date on which the association was successfully run. */ public Instant lastSuccessfulExecutionDate() { return lastSuccessfulExecutionDate; } /** *

* The association name. *

* * @return The association name. */ public String associationName() { return associationName; } /** *

* The number of errors that are allowed before the system stops sending requests to run the association on * additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the * target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth * error is received. If you specify 0, then the system stops sending requests after the first error is returned. If * you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when * the sixth error is received. *

*

* Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of * these executions may fail as well. If you need to ensure that there won't be more than max-errors failed * executions, set MaxConcurrency to 1 so that executions proceed one at a time. *

* * @return The number of errors that are allowed before the system stops sending requests to run the association on * additional targets. You can specify either an absolute number of errors, for example 10, or a percentage * of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when * the fourth error is received. If you specify 0, then the system stops sending requests after the first * error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system * stops sending the request when the sixth error is received.

*

* Executions that are already running an association when MaxErrors is reached are allowed to complete, but * some of these executions may fail as well. If you need to ensure that there won't be more than max-errors * failed executions, set MaxConcurrency to 1 so that executions proceed one at a time. */ public String maxErrors() { return maxErrors; } /** *

* The maximum number of targets allowed to run the association at the same time. You can specify a number, for * example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all * targets run the association at the same time. *

*

* If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency * associations, the association is allowed to run. During the next association interval, the new instance will * process its association within the limit specified for MaxConcurrency. *

* * @return The maximum number of targets allowed to run the association at the same time. You can specify a number, * for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which * means all targets run the association at the same time.

*

* If a new instance starts and attempts to run an association while Systems Manager is running * MaxConcurrency associations, the association is allowed to run. During the next association interval, the * new instance will process its association within the limit specified for MaxConcurrency. */ public String maxConcurrency() { return maxConcurrency; } /** *

* The severity level that is assigned to the association. *

*

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

* * @return The severity level that is assigned to the association. * @see AssociationComplianceSeverity */ public AssociationComplianceSeverity complianceSeverity() { return AssociationComplianceSeverity.fromValue(complianceSeverity); } /** *

* The severity level that is assigned to the association. *

*

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

* * @return The severity level that is assigned to the association. * @see AssociationComplianceSeverity */ public String complianceSeverityAsString() { return complianceSeverity; } /** *

* The mode for generating association compliance. You can specify AUTO or MANUAL. In * AUTO mode, the system uses the status of the association execution to determine the compliance * status. If the association execution runs successfully, then the association is COMPLIANT. If the * association execution doesn't run successfully, the association is NON-COMPLIANT. *

*

* In MANUAL mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not managed by State Manager. It is * managed by your direct call to the PutComplianceItems API action. *

*

* By default, all associations use AUTO mode. *

*

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

* * @return The mode for generating association compliance. You can specify AUTO or MANUAL. * In AUTO mode, the system uses the status of the association execution to determine the * compliance status. If the association execution runs successfully, then the association is * COMPLIANT. If the association execution doesn't run successfully, the association is * NON-COMPLIANT.

*

* In MANUAL mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not managed by State Manager. It * is managed by your direct call to the PutComplianceItems API action. *

*

* By default, all associations use AUTO mode. * @see AssociationSyncCompliance */ public AssociationSyncCompliance syncCompliance() { return AssociationSyncCompliance.fromValue(syncCompliance); } /** *

* The mode for generating association compliance. You can specify AUTO or MANUAL. In * AUTO mode, the system uses the status of the association execution to determine the compliance * status. If the association execution runs successfully, then the association is COMPLIANT. If the * association execution doesn't run successfully, the association is NON-COMPLIANT. *

*

* In MANUAL mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not managed by State Manager. It is * managed by your direct call to the PutComplianceItems API action. *

*

* By default, all associations use AUTO mode. *

*

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

* * @return The mode for generating association compliance. You can specify AUTO or MANUAL. * In AUTO mode, the system uses the status of the association execution to determine the * compliance status. If the association execution runs successfully, then the association is * COMPLIANT. If the association execution doesn't run successfully, the association is * NON-COMPLIANT.

*

* In MANUAL mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not managed by State Manager. It * is managed by your direct call to the PutComplianceItems API action. *

*

* By default, all associations use AUTO mode. * @see AssociationSyncCompliance */ public String syncComplianceAsString() { return syncCompliance; } /** *

* By default, when you create a new associations, the system runs it immediately after it is created and then * according to the schedule you specified. Specify this option if you don't want an association to run immediately * after you create it. *

* * @return By default, when you create a new associations, the system runs it immediately after it is created and * then according to the schedule you specified. Specify this option if you don't want an association to run * immediately after you create it. */ public Boolean applyOnlyAtCronInterval() { return applyOnlyAtCronInterval; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(name()); hashCode = 31 * hashCode + Objects.hashCode(instanceId()); hashCode = 31 * hashCode + Objects.hashCode(associationVersion()); hashCode = 31 * hashCode + Objects.hashCode(date()); hashCode = 31 * hashCode + Objects.hashCode(lastUpdateAssociationDate()); hashCode = 31 * hashCode + Objects.hashCode(status()); hashCode = 31 * hashCode + Objects.hashCode(overview()); hashCode = 31 * hashCode + Objects.hashCode(documentVersion()); hashCode = 31 * hashCode + Objects.hashCode(automationTargetParameterName()); hashCode = 31 * hashCode + Objects.hashCode(parameters()); hashCode = 31 * hashCode + Objects.hashCode(associationId()); hashCode = 31 * hashCode + Objects.hashCode(targets()); hashCode = 31 * hashCode + Objects.hashCode(scheduleExpression()); hashCode = 31 * hashCode + Objects.hashCode(outputLocation()); hashCode = 31 * hashCode + Objects.hashCode(lastExecutionDate()); hashCode = 31 * hashCode + Objects.hashCode(lastSuccessfulExecutionDate()); hashCode = 31 * hashCode + Objects.hashCode(associationName()); hashCode = 31 * hashCode + Objects.hashCode(maxErrors()); hashCode = 31 * hashCode + Objects.hashCode(maxConcurrency()); hashCode = 31 * hashCode + Objects.hashCode(complianceSeverityAsString()); hashCode = 31 * hashCode + Objects.hashCode(syncComplianceAsString()); hashCode = 31 * hashCode + Objects.hashCode(applyOnlyAtCronInterval()); return hashCode; } @Override public boolean equals(Object obj) { return equalsBySdkFields(obj); } @Override public boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof AssociationDescription)) { return false; } AssociationDescription other = (AssociationDescription) obj; return Objects.equals(name(), other.name()) && Objects.equals(instanceId(), other.instanceId()) && Objects.equals(associationVersion(), other.associationVersion()) && Objects.equals(date(), other.date()) && Objects.equals(lastUpdateAssociationDate(), other.lastUpdateAssociationDate()) && Objects.equals(status(), other.status()) && Objects.equals(overview(), other.overview()) && Objects.equals(documentVersion(), other.documentVersion()) && Objects.equals(automationTargetParameterName(), other.automationTargetParameterName()) && Objects.equals(parameters(), other.parameters()) && Objects.equals(associationId(), other.associationId()) && Objects.equals(targets(), other.targets()) && Objects.equals(scheduleExpression(), other.scheduleExpression()) && Objects.equals(outputLocation(), other.outputLocation()) && Objects.equals(lastExecutionDate(), other.lastExecutionDate()) && Objects.equals(lastSuccessfulExecutionDate(), other.lastSuccessfulExecutionDate()) && Objects.equals(associationName(), other.associationName()) && Objects.equals(maxErrors(), other.maxErrors()) && Objects.equals(maxConcurrency(), other.maxConcurrency()) && Objects.equals(complianceSeverityAsString(), other.complianceSeverityAsString()) && Objects.equals(syncComplianceAsString(), other.syncComplianceAsString()) && Objects.equals(applyOnlyAtCronInterval(), other.applyOnlyAtCronInterval()); } /** * 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 String toString() { return ToString.builder("AssociationDescription").add("Name", name()).add("InstanceId", instanceId()) .add("AssociationVersion", associationVersion()).add("Date", date()) .add("LastUpdateAssociationDate", lastUpdateAssociationDate()).add("Status", status()) .add("Overview", overview()).add("DocumentVersion", documentVersion()) .add("AutomationTargetParameterName", automationTargetParameterName()).add("Parameters", parameters()) .add("AssociationId", associationId()).add("Targets", targets()).add("ScheduleExpression", scheduleExpression()) .add("OutputLocation", outputLocation()).add("LastExecutionDate", lastExecutionDate()) .add("LastSuccessfulExecutionDate", lastSuccessfulExecutionDate()).add("AssociationName", associationName()) .add("MaxErrors", maxErrors()).add("MaxConcurrency", maxConcurrency()) .add("ComplianceSeverity", complianceSeverityAsString()).add("SyncCompliance", syncComplianceAsString()) .add("ApplyOnlyAtCronInterval", applyOnlyAtCronInterval()).build(); } public Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "Name": return Optional.ofNullable(clazz.cast(name())); case "InstanceId": return Optional.ofNullable(clazz.cast(instanceId())); case "AssociationVersion": return Optional.ofNullable(clazz.cast(associationVersion())); case "Date": return Optional.ofNullable(clazz.cast(date())); case "LastUpdateAssociationDate": return Optional.ofNullable(clazz.cast(lastUpdateAssociationDate())); case "Status": return Optional.ofNullable(clazz.cast(status())); case "Overview": return Optional.ofNullable(clazz.cast(overview())); case "DocumentVersion": return Optional.ofNullable(clazz.cast(documentVersion())); case "AutomationTargetParameterName": return Optional.ofNullable(clazz.cast(automationTargetParameterName())); case "Parameters": return Optional.ofNullable(clazz.cast(parameters())); case "AssociationId": return Optional.ofNullable(clazz.cast(associationId())); case "Targets": return Optional.ofNullable(clazz.cast(targets())); case "ScheduleExpression": return Optional.ofNullable(clazz.cast(scheduleExpression())); case "OutputLocation": return Optional.ofNullable(clazz.cast(outputLocation())); case "LastExecutionDate": return Optional.ofNullable(clazz.cast(lastExecutionDate())); case "LastSuccessfulExecutionDate": return Optional.ofNullable(clazz.cast(lastSuccessfulExecutionDate())); case "AssociationName": return Optional.ofNullable(clazz.cast(associationName())); case "MaxErrors": return Optional.ofNullable(clazz.cast(maxErrors())); case "MaxConcurrency": return Optional.ofNullable(clazz.cast(maxConcurrency())); case "ComplianceSeverity": return Optional.ofNullable(clazz.cast(complianceSeverityAsString())); case "SyncCompliance": return Optional.ofNullable(clazz.cast(syncComplianceAsString())); case "ApplyOnlyAtCronInterval": return Optional.ofNullable(clazz.cast(applyOnlyAtCronInterval())); default: return Optional.empty(); } } @Override public List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((AssociationDescription) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** *

* The name of the Systems Manager document. *

* * @param name * The name of the Systems Manager document. * @return Returns a reference to this object so that method calls can be chained together. */ Builder name(String name); /** *

* The ID of the instance. *

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

* The association version. *

* * @param associationVersion * The association version. * @return Returns a reference to this object so that method calls can be chained together. */ Builder associationVersion(String associationVersion); /** *

* The date when the association was made. *

* * @param date * The date when the association was made. * @return Returns a reference to this object so that method calls can be chained together. */ Builder date(Instant date); /** *

* The date when the association was last updated. *

* * @param lastUpdateAssociationDate * The date when the association was last updated. * @return Returns a reference to this object so that method calls can be chained together. */ Builder lastUpdateAssociationDate(Instant lastUpdateAssociationDate); /** *

* The association status. *

* * @param status * The association status. * @return Returns a reference to this object so that method calls can be chained together. */ Builder status(AssociationStatus status); /** *

* The association status. *

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

* Information about the association. *

* * @param overview * Information about the association. * @return Returns a reference to this object so that method calls can be chained together. */ Builder overview(AssociationOverview overview); /** *

* Information about the association. *

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

* The document version. *

* * @param documentVersion * The document version. * @return Returns a reference to this object so that method calls can be chained together. */ Builder documentVersion(String documentVersion); /** *

* Specify the target for the association. This target is required for associations that use an Automation * document and target resources by using rate controls. *

* * @param automationTargetParameterName * Specify the target for the association. This target is required for associations that use an * Automation document and target resources by using rate controls. * @return Returns a reference to this object so that method calls can be chained together. */ Builder automationTargetParameterName(String automationTargetParameterName); /** *

* A description of the parameters for a document. *

* * @param parameters * A description of the parameters for a document. * @return Returns a reference to this object so that method calls can be chained together. */ Builder parameters(Map> parameters); /** *

* The association ID. *

* * @param associationId * The association ID. * @return Returns a reference to this object so that method calls can be chained together. */ Builder associationId(String associationId); /** *

* The instances targeted by the request. *

* * @param targets * The instances targeted by the request. * @return Returns a reference to this object so that method calls can be chained together. */ Builder targets(Collection targets); /** *

* The instances targeted by the request. *

* * @param targets * The instances targeted by the request. * @return Returns a reference to this object so that method calls can be chained together. */ Builder targets(Target... targets); /** *

* The instances targeted by the request. *

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

* A cron expression that specifies a schedule when the association runs. *

* * @param scheduleExpression * A cron expression that specifies a schedule when the association runs. * @return Returns a reference to this object so that method calls can be chained together. */ Builder scheduleExpression(String scheduleExpression); /** *

* An S3 bucket where you want to store the output details of the request. *

* * @param outputLocation * An S3 bucket where you want to store the output details of the request. * @return Returns a reference to this object so that method calls can be chained together. */ Builder outputLocation(InstanceAssociationOutputLocation outputLocation); /** *

* An S3 bucket where you want to store the output details of the request. *

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

* The date on which the association was last run. *

* * @param lastExecutionDate * The date on which the association was last run. * @return Returns a reference to this object so that method calls can be chained together. */ Builder lastExecutionDate(Instant lastExecutionDate); /** *

* The last date on which the association was successfully run. *

* * @param lastSuccessfulExecutionDate * The last date on which the association was successfully run. * @return Returns a reference to this object so that method calls can be chained together. */ Builder lastSuccessfulExecutionDate(Instant lastSuccessfulExecutionDate); /** *

* The association name. *

* * @param associationName * The association name. * @return Returns a reference to this object so that method calls can be chained together. */ Builder associationName(String associationName); /** *

* The number of errors that are allowed before the system stops sending requests to run the association on * additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of * the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the * fourth error is received. If you specify 0, then the system stops sending requests after the first error is * returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending * the request when the sixth error is received. *

*

* Executions that are already running an association when MaxErrors is reached are allowed to complete, but * some of these executions may fail as well. If you need to ensure that there won't be more than max-errors * failed executions, set MaxConcurrency to 1 so that executions proceed one at a time. *

* * @param maxErrors * The number of errors that are allowed before the system stops sending requests to run the association * on additional targets. You can specify either an absolute number of errors, for example 10, or a * percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system stops sending requests * after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, * then the system stops sending the request when the sixth error is received.

*

* Executions that are already running an association when MaxErrors is reached are allowed to complete, * but some of these executions may fail as well. If you need to ensure that there won't be more than * max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time. * @return Returns a reference to this object so that method calls can be chained together. */ Builder maxErrors(String maxErrors); /** *

* The maximum number of targets allowed to run the association at the same time. You can specify a number, for * example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all * targets run the association at the same time. *

*

* If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency * associations, the association is allowed to run. During the next association interval, the new instance will * process its association within the limit specified for MaxConcurrency. *

* * @param maxConcurrency * The maximum number of targets allowed to run the association at the same time. You can specify a * number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, * which means all targets run the association at the same time.

*

* If a new instance starts and attempts to run an association while Systems Manager is running * MaxConcurrency associations, the association is allowed to run. During the next association interval, * the new instance will process its association within the limit specified for MaxConcurrency. * @return Returns a reference to this object so that method calls can be chained together. */ Builder maxConcurrency(String maxConcurrency); /** *

* The severity level that is assigned to the association. *

* * @param complianceSeverity * The severity level that is assigned to the association. * @see AssociationComplianceSeverity * @return Returns a reference to this object so that method calls can be chained together. * @see AssociationComplianceSeverity */ Builder complianceSeverity(String complianceSeverity); /** *

* The severity level that is assigned to the association. *

* * @param complianceSeverity * The severity level that is assigned to the association. * @see AssociationComplianceSeverity * @return Returns a reference to this object so that method calls can be chained together. * @see AssociationComplianceSeverity */ Builder complianceSeverity(AssociationComplianceSeverity complianceSeverity); /** *

* The mode for generating association compliance. You can specify AUTO or MANUAL. In * AUTO mode, the system uses the status of the association execution to determine the compliance * status. If the association execution runs successfully, then the association is COMPLIANT. If * the association execution doesn't run successfully, the association is NON-COMPLIANT. *

*

* In MANUAL mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not managed by State Manager. It is * managed by your direct call to the PutComplianceItems API action. *

*

* By default, all associations use AUTO mode. *

* * @param syncCompliance * The mode for generating association compliance. You can specify AUTO or * MANUAL. In AUTO mode, the system uses the status of the association * execution to determine the compliance status. If the association execution runs successfully, then the * association is COMPLIANT. If the association execution doesn't run successfully, the * association is NON-COMPLIANT.

*

* In MANUAL mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not managed by State Manager. * It is managed by your direct call to the PutComplianceItems API action. *

*

* By default, all associations use AUTO mode. * @see AssociationSyncCompliance * @return Returns a reference to this object so that method calls can be chained together. * @see AssociationSyncCompliance */ Builder syncCompliance(String syncCompliance); /** *

* The mode for generating association compliance. You can specify AUTO or MANUAL. In * AUTO mode, the system uses the status of the association execution to determine the compliance * status. If the association execution runs successfully, then the association is COMPLIANT. If * the association execution doesn't run successfully, the association is NON-COMPLIANT. *

*

* In MANUAL mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not managed by State Manager. It is * managed by your direct call to the PutComplianceItems API action. *

*

* By default, all associations use AUTO mode. *

* * @param syncCompliance * The mode for generating association compliance. You can specify AUTO or * MANUAL. In AUTO mode, the system uses the status of the association * execution to determine the compliance status. If the association execution runs successfully, then the * association is COMPLIANT. If the association execution doesn't run successfully, the * association is NON-COMPLIANT.

*

* In MANUAL mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not managed by State Manager. * It is managed by your direct call to the PutComplianceItems API action. *

*

* By default, all associations use AUTO mode. * @see AssociationSyncCompliance * @return Returns a reference to this object so that method calls can be chained together. * @see AssociationSyncCompliance */ Builder syncCompliance(AssociationSyncCompliance syncCompliance); /** *

* By default, when you create a new associations, the system runs it immediately after it is created and then * according to the schedule you specified. Specify this option if you don't want an association to run * immediately after you create it. *

* * @param applyOnlyAtCronInterval * By default, when you create a new associations, the system runs it immediately after it is created and * then according to the schedule you specified. Specify this option if you don't want an association to * run immediately after you create it. * @return Returns a reference to this object so that method calls can be chained together. */ Builder applyOnlyAtCronInterval(Boolean applyOnlyAtCronInterval); } static final class BuilderImpl implements Builder { private String name; private String instanceId; private String associationVersion; private Instant date; private Instant lastUpdateAssociationDate; private AssociationStatus status; private AssociationOverview overview; private String documentVersion; private String automationTargetParameterName; private Map> parameters = DefaultSdkAutoConstructMap.getInstance(); private String associationId; private List targets = DefaultSdkAutoConstructList.getInstance(); private String scheduleExpression; private InstanceAssociationOutputLocation outputLocation; private Instant lastExecutionDate; private Instant lastSuccessfulExecutionDate; private String associationName; private String maxErrors; private String maxConcurrency; private String complianceSeverity; private String syncCompliance; private Boolean applyOnlyAtCronInterval; private BuilderImpl() { } private BuilderImpl(AssociationDescription model) { name(model.name); instanceId(model.instanceId); associationVersion(model.associationVersion); date(model.date); lastUpdateAssociationDate(model.lastUpdateAssociationDate); status(model.status); overview(model.overview); documentVersion(model.documentVersion); automationTargetParameterName(model.automationTargetParameterName); parameters(model.parameters); associationId(model.associationId); targets(model.targets); scheduleExpression(model.scheduleExpression); outputLocation(model.outputLocation); lastExecutionDate(model.lastExecutionDate); lastSuccessfulExecutionDate(model.lastSuccessfulExecutionDate); associationName(model.associationName); maxErrors(model.maxErrors); maxConcurrency(model.maxConcurrency); complianceSeverity(model.complianceSeverity); syncCompliance(model.syncCompliance); applyOnlyAtCronInterval(model.applyOnlyAtCronInterval); } public final String getName() { return name; } @Override public final Builder name(String name) { this.name = name; return this; } public final void setName(String name) { this.name = name; } public final String getInstanceId() { return instanceId; } @Override public final Builder instanceId(String instanceId) { this.instanceId = instanceId; return this; } public final void setInstanceId(String instanceId) { this.instanceId = instanceId; } public final String getAssociationVersion() { return associationVersion; } @Override public final Builder associationVersion(String associationVersion) { this.associationVersion = associationVersion; return this; } public final void setAssociationVersion(String associationVersion) { this.associationVersion = associationVersion; } public final Instant getDate() { return date; } @Override public final Builder date(Instant date) { this.date = date; return this; } public final void setDate(Instant date) { this.date = date; } public final Instant getLastUpdateAssociationDate() { return lastUpdateAssociationDate; } @Override public final Builder lastUpdateAssociationDate(Instant lastUpdateAssociationDate) { this.lastUpdateAssociationDate = lastUpdateAssociationDate; return this; } public final void setLastUpdateAssociationDate(Instant lastUpdateAssociationDate) { this.lastUpdateAssociationDate = lastUpdateAssociationDate; } public final AssociationStatus.Builder getStatus() { return status != null ? status.toBuilder() : null; } @Override public final Builder status(AssociationStatus status) { this.status = status; return this; } public final void setStatus(AssociationStatus.BuilderImpl status) { this.status = status != null ? status.build() : null; } public final AssociationOverview.Builder getOverview() { return overview != null ? overview.toBuilder() : null; } @Override public final Builder overview(AssociationOverview overview) { this.overview = overview; return this; } public final void setOverview(AssociationOverview.BuilderImpl overview) { this.overview = overview != null ? overview.build() : null; } public final String getDocumentVersion() { return documentVersion; } @Override public final Builder documentVersion(String documentVersion) { this.documentVersion = documentVersion; return this; } public final void setDocumentVersion(String documentVersion) { this.documentVersion = documentVersion; } public final String getAutomationTargetParameterName() { return automationTargetParameterName; } @Override public final Builder automationTargetParameterName(String automationTargetParameterName) { this.automationTargetParameterName = automationTargetParameterName; return this; } public final void setAutomationTargetParameterName(String automationTargetParameterName) { this.automationTargetParameterName = automationTargetParameterName; } public final Map> getParameters() { return parameters; } @Override public final Builder parameters(Map> parameters) { this.parameters = ParametersCopier.copy(parameters); return this; } public final void setParameters(Map> parameters) { this.parameters = ParametersCopier.copy(parameters); } public final String getAssociationId() { return associationId; } @Override public final Builder associationId(String associationId) { this.associationId = associationId; return this; } public final void setAssociationId(String associationId) { this.associationId = associationId; } public final Collection getTargets() { return targets != null ? targets.stream().map(Target::toBuilder).collect(Collectors.toList()) : null; } @Override public final Builder targets(Collection targets) { this.targets = TargetsCopier.copy(targets); return this; } @Override @SafeVarargs public final Builder targets(Target... targets) { targets(Arrays.asList(targets)); return this; } @Override @SafeVarargs public final Builder targets(Consumer... targets) { targets(Stream.of(targets).map(c -> Target.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final void setTargets(Collection targets) { this.targets = TargetsCopier.copyFromBuilder(targets); } public final String getScheduleExpression() { return scheduleExpression; } @Override public final Builder scheduleExpression(String scheduleExpression) { this.scheduleExpression = scheduleExpression; return this; } public final void setScheduleExpression(String scheduleExpression) { this.scheduleExpression = scheduleExpression; } public final InstanceAssociationOutputLocation.Builder getOutputLocation() { return outputLocation != null ? outputLocation.toBuilder() : null; } @Override public final Builder outputLocation(InstanceAssociationOutputLocation outputLocation) { this.outputLocation = outputLocation; return this; } public final void setOutputLocation(InstanceAssociationOutputLocation.BuilderImpl outputLocation) { this.outputLocation = outputLocation != null ? outputLocation.build() : null; } public final Instant getLastExecutionDate() { return lastExecutionDate; } @Override public final Builder lastExecutionDate(Instant lastExecutionDate) { this.lastExecutionDate = lastExecutionDate; return this; } public final void setLastExecutionDate(Instant lastExecutionDate) { this.lastExecutionDate = lastExecutionDate; } public final Instant getLastSuccessfulExecutionDate() { return lastSuccessfulExecutionDate; } @Override public final Builder lastSuccessfulExecutionDate(Instant lastSuccessfulExecutionDate) { this.lastSuccessfulExecutionDate = lastSuccessfulExecutionDate; return this; } public final void setLastSuccessfulExecutionDate(Instant lastSuccessfulExecutionDate) { this.lastSuccessfulExecutionDate = lastSuccessfulExecutionDate; } public final String getAssociationName() { return associationName; } @Override public final Builder associationName(String associationName) { this.associationName = associationName; return this; } public final void setAssociationName(String associationName) { this.associationName = associationName; } public final String getMaxErrors() { return maxErrors; } @Override public final Builder maxErrors(String maxErrors) { this.maxErrors = maxErrors; return this; } public final void setMaxErrors(String maxErrors) { this.maxErrors = maxErrors; } public final String getMaxConcurrency() { return maxConcurrency; } @Override public final Builder maxConcurrency(String maxConcurrency) { this.maxConcurrency = maxConcurrency; return this; } public final void setMaxConcurrency(String maxConcurrency) { this.maxConcurrency = maxConcurrency; } public final String getComplianceSeverity() { return complianceSeverity; } @Override public final Builder complianceSeverity(String complianceSeverity) { this.complianceSeverity = complianceSeverity; return this; } @Override public final Builder complianceSeverity(AssociationComplianceSeverity complianceSeverity) { this.complianceSeverity(complianceSeverity == null ? null : complianceSeverity.toString()); return this; } public final void setComplianceSeverity(String complianceSeverity) { this.complianceSeverity = complianceSeverity; } public final String getSyncCompliance() { return syncCompliance; } @Override public final Builder syncCompliance(String syncCompliance) { this.syncCompliance = syncCompliance; return this; } @Override public final Builder syncCompliance(AssociationSyncCompliance syncCompliance) { this.syncCompliance(syncCompliance == null ? null : syncCompliance.toString()); return this; } public final void setSyncCompliance(String syncCompliance) { this.syncCompliance = syncCompliance; } public final Boolean getApplyOnlyAtCronInterval() { return applyOnlyAtCronInterval; } @Override public final Builder applyOnlyAtCronInterval(Boolean applyOnlyAtCronInterval) { this.applyOnlyAtCronInterval = applyOnlyAtCronInterval; return this; } public final void setApplyOnlyAtCronInterval(Boolean applyOnlyAtCronInterval) { this.applyOnlyAtCronInterval = applyOnlyAtCronInterval; } @Override public AssociationDescription build() { return new AssociationDescription(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy