/* * 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; /** *

* The data type name for including resource data sync state. There are four sync states: *

*

* OrganizationNotExists (Your organization doesn't exist) *

*

* NoPermissions (The system can't locate the service-linked role. This role is automatically created when * a user creates a resource data sync in Amazon Web Services Systems Manager Explorer.) *

*

* InvalidOrganizationalUnit (You specified or selected an invalid unit in the resource data sync * configuration.) *

*

* TrustedAccessDisabled (You disabled Systems Manager access in the organization in Organizations.) *

* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class ResourceDataSyncSourceWithState 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. *

*/ private String sourceType; /** *

* The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource type. *

*/ private ResourceDataSyncAwsOrganizationsSource awsOrganizationsSource; /** *

* The SyncSource Amazon Web Services Regions included in the resource data sync. *

*/ private com.amazonaws.internal.SdkInternalList sourceRegions; /** *

* Whether to automatically synchronize and aggregate data from new Amazon Web Services Regions when those Regions * come online. *

*/ private Boolean includeFutureRegions; /** *

* The data type name for including resource data sync state. There are four sync states: *

*

* OrganizationNotExists: Your organization doesn't exist. *

*

* NoPermissions: The system can't locate the service-linked role. This role is automatically created * when a user creates a resource data sync in Explorer. *

*

* InvalidOrganizationalUnit: You specified or selected an invalid unit in the resource data sync * configuration. *

*

* TrustedAccessDisabled: You disabled Systems Manager access in the organization in Organizations. *

*/ private String state; /** *

* 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. *

* * @param sourceType * The type of data source for the resource data sync. 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. *

* * @return The type of data source for the resource data sync. 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. *

* * @param sourceType * The type of data source for the resource data sync. 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 ResourceDataSyncSourceWithState withSourceType(String sourceType) { setSourceType(sourceType); return this; } /** *

* The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource type. *

* * @param awsOrganizationsSource * The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource * type. */ public void setAwsOrganizationsSource(ResourceDataSyncAwsOrganizationsSource awsOrganizationsSource) { this.awsOrganizationsSource = awsOrganizationsSource; } /** *

* The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource type. *

* * @return The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource * type. */ public ResourceDataSyncAwsOrganizationsSource getAwsOrganizationsSource() { return this.awsOrganizationsSource; } /** *

* The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource type. *

* * @param awsOrganizationsSource * The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource * type. * @return Returns a reference to this object so that method calls can be chained together. */ public ResourceDataSyncSourceWithState withAwsOrganizationsSource(ResourceDataSyncAwsOrganizationsSource awsOrganizationsSource) { setAwsOrganizationsSource(awsOrganizationsSource); return this; } /** *

* The SyncSource Amazon Web Services Regions included in the resource data sync. *

* * @return The SyncSource Amazon Web Services Regions included in the resource data sync. */ public java.util.List getSourceRegions() { if (sourceRegions == null) { sourceRegions = new com.amazonaws.internal.SdkInternalList(); } return sourceRegions; } /** *

* The SyncSource Amazon Web Services Regions included in the resource data sync. *

* * @param sourceRegions * The SyncSource Amazon Web Services Regions included in the resource data sync. */ public void setSourceRegions(java.util.Collection sourceRegions) { if (sourceRegions == null) { this.sourceRegions = null; return; } this.sourceRegions = new com.amazonaws.internal.SdkInternalList(sourceRegions); } /** *

* 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 * The 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 ResourceDataSyncSourceWithState withSourceRegions(String... sourceRegions) { if (this.sourceRegions == null) { setSourceRegions(new com.amazonaws.internal.SdkInternalList(sourceRegions.length)); } for (String ele : sourceRegions) { this.sourceRegions.add(ele); } return this; } /** *

* The SyncSource Amazon Web Services Regions included in the resource data sync. *

* * @param sourceRegions * The 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 ResourceDataSyncSourceWithState withSourceRegions(java.util.Collection sourceRegions) { setSourceRegions(sourceRegions); return this; } /** *

* 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 ResourceDataSyncSourceWithState 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; } /** *

* The data type name for including resource data sync state. There are four sync states: *

*

* OrganizationNotExists: Your organization doesn't exist. *

*

* NoPermissions: The system can't locate the service-linked role. This role is automatically created * when a user creates a resource data sync in Explorer. *

*

* InvalidOrganizationalUnit: You specified or selected an invalid unit in the resource data sync * configuration. *

*

* TrustedAccessDisabled: You disabled Systems Manager access in the organization in Organizations. *

* * @param state * The data type name for including resource data sync state. There are four sync states:

*

* OrganizationNotExists: Your organization doesn't exist. *

*

* NoPermissions: The system can't locate the service-linked role. This role is automatically * created when a user creates a resource data sync in Explorer. *

*

* InvalidOrganizationalUnit: You specified or selected an invalid unit in the resource data * sync configuration. *

*

* TrustedAccessDisabled: You disabled Systems Manager access in the organization in * Organizations. */ public void setState(String state) { this.state = state; } /** *

* The data type name for including resource data sync state. There are four sync states: *

*

* OrganizationNotExists: Your organization doesn't exist. *

*

* NoPermissions: The system can't locate the service-linked role. This role is automatically created * when a user creates a resource data sync in Explorer. *

*

* InvalidOrganizationalUnit: You specified or selected an invalid unit in the resource data sync * configuration. *

*

* TrustedAccessDisabled: You disabled Systems Manager access in the organization in Organizations. *

* * @return The data type name for including resource data sync state. There are four sync states:

*

* OrganizationNotExists: Your organization doesn't exist. *

*

* NoPermissions: The system can't locate the service-linked role. This role is automatically * created when a user creates a resource data sync in Explorer. *

*

* InvalidOrganizationalUnit: You specified or selected an invalid unit in the resource data * sync configuration. *

*

* TrustedAccessDisabled: You disabled Systems Manager access in the organization in * Organizations. */ public String getState() { return this.state; } /** *

* The data type name for including resource data sync state. There are four sync states: *

*

* OrganizationNotExists: Your organization doesn't exist. *

*

* NoPermissions: The system can't locate the service-linked role. This role is automatically created * when a user creates a resource data sync in Explorer. *

*

* InvalidOrganizationalUnit: You specified or selected an invalid unit in the resource data sync * configuration. *

*

* TrustedAccessDisabled: You disabled Systems Manager access in the organization in Organizations. *

* * @param state * The data type name for including resource data sync state. There are four sync states:

*

* OrganizationNotExists: Your organization doesn't exist. *

*

* NoPermissions: The system can't locate the service-linked role. This role is automatically * created when a user creates a resource data sync in Explorer. *

*

* InvalidOrganizationalUnit: You specified or selected an invalid unit in the resource data * sync configuration. *

*

* TrustedAccessDisabled: You disabled Systems Manager access in the organization in * Organizations. * @return Returns a reference to this object so that method calls can be chained together. */ public ResourceDataSyncSourceWithState withState(String state) { setState(state); 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. *

* * @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 ResourceDataSyncSourceWithState 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 (getState() != null) sb.append("State: ").append(getState()).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 ResourceDataSyncSourceWithState == false) return false; ResourceDataSyncSourceWithState other = (ResourceDataSyncSourceWithState) 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.getState() == null ^ this.getState() == null) return false; if (other.getState() != null && other.getState().equals(this.getState()) == 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 + ((getState() == null) ? 0 : getState().hashCode()); hashCode = prime * hashCode + ((getEnableAllOpsDataSources() == null) ? 0 : getEnableAllOpsDataSources().hashCode()); return hashCode; } @Override public ResourceDataSyncSourceWithState clone() { try { return (ResourceDataSyncSourceWithState) 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.ResourceDataSyncSourceWithStateMarshaller.getInstance().marshall(this, protocolMarshaller); } }