/* * Copyright 2018-2023 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 com.amazonaws.services.simplesystemsmanagement.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Information about the source of the data included in the resource data sync. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class ResourceDataSyncSource implements Serializable, Cloneable, StructuredPojo { /** *
* The type of data source for the resource data sync. SourceType
is either
* AwsOrganizations
(if an organization is present in Organizations) or
* SingleAccountMultiRegions
.
*
* Information about the AwsOrganizationsSource
resource data sync source. A sync source of this type
* can synchronize data from Organizations.
*
* The SyncSource
Amazon Web Services Regions included in the resource data sync.
*
* Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those Regions * come online. *
*/ private Boolean includeFutureRegions; /** ** When you create a resource data sync, if you choose one of the Organizations options, then Systems Manager * automatically enables all OpsData sources in the selected Amazon Web Services Regions for all Amazon Web Services * accounts in your organization (or in the selected organization units). For more information, see About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager User * Guide. *
*/ private Boolean enableAllOpsDataSources; /** *
* The type of data source for the resource data sync. SourceType
is either
* AwsOrganizations
(if an organization is present in Organizations) or
* SingleAccountMultiRegions
.
*
SourceType
is either
* AwsOrganizations
(if an organization is present in Organizations) or
* SingleAccountMultiRegions
.
*/
public void setSourceType(String sourceType) {
this.sourceType = sourceType;
}
/**
*
* The type of data source for the resource data sync. SourceType
is either
* AwsOrganizations
(if an organization is present in Organizations) or
* SingleAccountMultiRegions
.
*
SourceType
is either
* AwsOrganizations
(if an organization is present in Organizations) or
* SingleAccountMultiRegions
.
*/
public String getSourceType() {
return this.sourceType;
}
/**
*
* The type of data source for the resource data sync. SourceType
is either
* AwsOrganizations
(if an organization is present in Organizations) or
* SingleAccountMultiRegions
.
*
SourceType
is either
* AwsOrganizations
(if an organization is present in Organizations) or
* SingleAccountMultiRegions
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ResourceDataSyncSource withSourceType(String sourceType) {
setSourceType(sourceType);
return this;
}
/**
*
* Information about the AwsOrganizationsSource
resource data sync source. A sync source of this type
* can synchronize data from Organizations.
*
AwsOrganizationsSource
resource data sync source. A sync source of this
* type can synchronize data from Organizations.
*/
public void setAwsOrganizationsSource(ResourceDataSyncAwsOrganizationsSource awsOrganizationsSource) {
this.awsOrganizationsSource = awsOrganizationsSource;
}
/**
*
* Information about the AwsOrganizationsSource
resource data sync source. A sync source of this type
* can synchronize data from Organizations.
*
AwsOrganizationsSource
resource data sync source. A sync source of
* this type can synchronize data from Organizations.
*/
public ResourceDataSyncAwsOrganizationsSource getAwsOrganizationsSource() {
return this.awsOrganizationsSource;
}
/**
*
* Information about the AwsOrganizationsSource
resource data sync source. A sync source of this type
* can synchronize data from Organizations.
*
AwsOrganizationsSource
resource data sync source. A sync source of this
* type can synchronize data from Organizations.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ResourceDataSyncSource withAwsOrganizationsSource(ResourceDataSyncAwsOrganizationsSource awsOrganizationsSource) {
setAwsOrganizationsSource(awsOrganizationsSource);
return this;
}
/**
*
* The SyncSource
Amazon Web Services Regions included in the resource data sync.
*
SyncSource
Amazon Web Services Regions included in the resource data sync.
*/
public java.util.List
* The SyncSource
Amazon Web Services Regions included in the resource data sync.
*
SyncSource
Amazon Web Services Regions included in the resource data sync.
*/
public void setSourceRegions(java.util.Collection
* The SyncSource
Amazon Web Services Regions included in the resource data sync.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setSourceRegions(java.util.Collection)} or {@link #withSourceRegions(java.util.Collection)} if you want * to override the existing values. *
* * @param sourceRegions * TheSyncSource
Amazon Web Services Regions included in the resource data sync.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ResourceDataSyncSource withSourceRegions(String... sourceRegions) {
if (this.sourceRegions == null) {
setSourceRegions(new com.amazonaws.internal.SdkInternalList
* The SyncSource
Amazon Web Services Regions included in the resource data sync.
*
SyncSource
Amazon Web Services Regions included in the resource data sync.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ResourceDataSyncSource withSourceRegions(java.util.Collection* Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those Regions * come online. *
* * @param includeFutureRegions * Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those * Regions come online. */ public void setIncludeFutureRegions(Boolean includeFutureRegions) { this.includeFutureRegions = includeFutureRegions; } /** ** Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those Regions * come online. *
* * @return Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those * Regions come online. */ public Boolean getIncludeFutureRegions() { return this.includeFutureRegions; } /** ** Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those Regions * come online. *
* * @param includeFutureRegions * Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those * Regions come online. * @return Returns a reference to this object so that method calls can be chained together. */ public ResourceDataSyncSource withIncludeFutureRegions(Boolean includeFutureRegions) { setIncludeFutureRegions(includeFutureRegions); return this; } /** ** Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those Regions * come online. *
* * @return Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those * Regions come online. */ public Boolean isIncludeFutureRegions() { return this.includeFutureRegions; } /** ** When you create a resource data sync, if you choose one of the Organizations options, then Systems Manager * automatically enables all OpsData sources in the selected Amazon Web Services Regions for all Amazon Web Services * accounts in your organization (or in the selected organization units). For more information, see About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager User * Guide. *
* * @param enableAllOpsDataSources * When you create a resource data sync, if you choose one of the Organizations options, then Systems Manager * automatically enables all OpsData sources in the selected Amazon Web Services Regions for all Amazon Web * Services accounts in your organization (or in the selected organization units). For more information, see * About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager * User Guide. */ public void setEnableAllOpsDataSources(Boolean enableAllOpsDataSources) { this.enableAllOpsDataSources = enableAllOpsDataSources; } /** ** When you create a resource data sync, if you choose one of the Organizations options, then Systems Manager * automatically enables all OpsData sources in the selected Amazon Web Services Regions for all Amazon Web Services * accounts in your organization (or in the selected organization units). For more information, see About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager User * Guide. *
* * @return When you create a resource data sync, if you choose one of the Organizations options, then Systems * Manager automatically enables all OpsData sources in the selected Amazon Web Services Regions for all * Amazon Web Services accounts in your organization (or in the selected organization units). For more * information, see About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager * User Guide. */ public Boolean getEnableAllOpsDataSources() { return this.enableAllOpsDataSources; } /** ** When you create a resource data sync, if you choose one of the Organizations options, then Systems Manager * automatically enables all OpsData sources in the selected Amazon Web Services Regions for all Amazon Web Services * accounts in your organization (or in the selected organization units). For more information, see About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager User * Guide. *
* * @param enableAllOpsDataSources * When you create a resource data sync, if you choose one of the Organizations options, then Systems Manager * automatically enables all OpsData sources in the selected Amazon Web Services Regions for all Amazon Web * Services accounts in your organization (or in the selected organization units). For more information, see * About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager * User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public ResourceDataSyncSource withEnableAllOpsDataSources(Boolean enableAllOpsDataSources) { setEnableAllOpsDataSources(enableAllOpsDataSources); return this; } /** ** When you create a resource data sync, if you choose one of the Organizations options, then Systems Manager * automatically enables all OpsData sources in the selected Amazon Web Services Regions for all Amazon Web Services * accounts in your organization (or in the selected organization units). For more information, see About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager User * Guide. *
* * @return When you create a resource data sync, if you choose one of the Organizations options, then Systems * Manager automatically enables all OpsData sources in the selected Amazon Web Services Regions for all * Amazon Web Services accounts in your organization (or in the selected organization units). For more * information, see About multiple account and Region resource data syncs in the Amazon Web Services Systems Manager * User Guide. */ public Boolean isEnableAllOpsDataSources() { return this.enableAllOpsDataSources; } /** * 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. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getSourceType() != null) sb.append("SourceType: ").append(getSourceType()).append(","); if (getAwsOrganizationsSource() != null) sb.append("AwsOrganizationsSource: ").append(getAwsOrganizationsSource()).append(","); if (getSourceRegions() != null) sb.append("SourceRegions: ").append(getSourceRegions()).append(","); if (getIncludeFutureRegions() != null) sb.append("IncludeFutureRegions: ").append(getIncludeFutureRegions()).append(","); if (getEnableAllOpsDataSources() != null) sb.append("EnableAllOpsDataSources: ").append(getEnableAllOpsDataSources()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof ResourceDataSyncSource == false) return false; ResourceDataSyncSource other = (ResourceDataSyncSource) obj; if (other.getSourceType() == null ^ this.getSourceType() == null) return false; if (other.getSourceType() != null && other.getSourceType().equals(this.getSourceType()) == false) return false; if (other.getAwsOrganizationsSource() == null ^ this.getAwsOrganizationsSource() == null) return false; if (other.getAwsOrganizationsSource() != null && other.getAwsOrganizationsSource().equals(this.getAwsOrganizationsSource()) == false) return false; if (other.getSourceRegions() == null ^ this.getSourceRegions() == null) return false; if (other.getSourceRegions() != null && other.getSourceRegions().equals(this.getSourceRegions()) == false) return false; if (other.getIncludeFutureRegions() == null ^ this.getIncludeFutureRegions() == null) return false; if (other.getIncludeFutureRegions() != null && other.getIncludeFutureRegions().equals(this.getIncludeFutureRegions()) == false) return false; if (other.getEnableAllOpsDataSources() == null ^ this.getEnableAllOpsDataSources() == null) return false; if (other.getEnableAllOpsDataSources() != null && other.getEnableAllOpsDataSources().equals(this.getEnableAllOpsDataSources()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getSourceType() == null) ? 0 : getSourceType().hashCode()); hashCode = prime * hashCode + ((getAwsOrganizationsSource() == null) ? 0 : getAwsOrganizationsSource().hashCode()); hashCode = prime * hashCode + ((getSourceRegions() == null) ? 0 : getSourceRegions().hashCode()); hashCode = prime * hashCode + ((getIncludeFutureRegions() == null) ? 0 : getIncludeFutureRegions().hashCode()); hashCode = prime * hashCode + ((getEnableAllOpsDataSources() == null) ? 0 : getEnableAllOpsDataSources().hashCode()); return hashCode; } @Override public ResourceDataSyncSource clone() { try { return (ResourceDataSyncSource) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.simplesystemsmanagement.model.transform.ResourceDataSyncSourceMarshaller.getInstance().marshall(this, protocolMarshaller); } }