Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
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 extends Builder> 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;
}
}
}