* The tags to add to the hub resource when you enable Security Hub.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasTags} method.
*
*
* @return The tags to add to the hub resource when you enable Security Hub.
*/
public final Map tags() {
return tags;
}
/**
*
* Whether to enable the security standards that Security Hub has designated as automatically enabled. If you do not
* provide a value for EnableDefaultStandards, it is set to true. To not enable the
* automatically enabled standards, set EnableDefaultStandards to false.
*
*
* @return Whether to enable the security standards that Security Hub has designated as automatically enabled. If
* you do not provide a value for EnableDefaultStandards, it is set to true. To
* not enable the automatically enabled standards, set EnableDefaultStandards to
* false.
*/
public final Boolean enableDefaultStandards() {
return enableDefaultStandards;
}
/**
*
* This field, used when enabling Security Hub, specifies whether the calling account has consolidated control
* findings turned on. If the value for this field is set to SECURITY_CONTROL, Security Hub generates a
* single finding for a control check even when the check applies to multiple enabled standards.
*
*
* If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate findings for
* a control check when the check applies to multiple enabled standards.
*
*
* The value for this field in a member account matches the value in the administrator account. For accounts that
* aren't part of an organization, the default value of this field is SECURITY_CONTROL if you enabled
* Security Hub on or after February 23, 2023.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #controlFindingGenerator} will return {@link ControlFindingGenerator#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #controlFindingGeneratorAsString}.
*
*
* @return This field, used when enabling Security Hub, specifies whether the calling account has consolidated
* control findings turned on. If the value for this field is set to SECURITY_CONTROL, Security
* Hub generates a single finding for a control check even when the check applies to multiple enabled
* standards.
*
* If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate
* findings for a control check when the check applies to multiple enabled standards.
*
*
* The value for this field in a member account matches the value in the administrator account. For accounts
* that aren't part of an organization, the default value of this field is SECURITY_CONTROL if
* you enabled Security Hub on or after February 23, 2023.
* @see ControlFindingGenerator
*/
public final ControlFindingGenerator controlFindingGenerator() {
return ControlFindingGenerator.fromValue(controlFindingGenerator);
}
/**
*
* This field, used when enabling Security Hub, specifies whether the calling account has consolidated control
* findings turned on. If the value for this field is set to SECURITY_CONTROL, Security Hub generates a
* single finding for a control check even when the check applies to multiple enabled standards.
*
*
* If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate findings for
* a control check when the check applies to multiple enabled standards.
*
*
* The value for this field in a member account matches the value in the administrator account. For accounts that
* aren't part of an organization, the default value of this field is SECURITY_CONTROL if you enabled
* Security Hub on or after February 23, 2023.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #controlFindingGenerator} will return {@link ControlFindingGenerator#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #controlFindingGeneratorAsString}.
*
*
* @return This field, used when enabling Security Hub, specifies whether the calling account has consolidated
* control findings turned on. If the value for this field is set to SECURITY_CONTROL, Security
* Hub generates a single finding for a control check even when the check applies to multiple enabled
* standards.
*
* If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate
* findings for a control check when the check applies to multiple enabled standards.
*
*
* The value for this field in a member account matches the value in the administrator account. For accounts
* that aren't part of an organization, the default value of this field is SECURITY_CONTROL if
* you enabled Security Hub on or after February 23, 2023.
* @see ControlFindingGenerator
*/
public final String controlFindingGeneratorAsString() {
return controlFindingGenerator;
}
@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 final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null);
hashCode = 31 * hashCode + Objects.hashCode(enableDefaultStandards());
hashCode = 31 * hashCode + Objects.hashCode(controlFindingGeneratorAsString());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof EnableSecurityHubRequest)) {
return false;
}
EnableSecurityHubRequest other = (EnableSecurityHubRequest) obj;
return hasTags() == other.hasTags() && Objects.equals(tags(), other.tags())
&& Objects.equals(enableDefaultStandards(), other.enableDefaultStandards())
&& Objects.equals(controlFindingGeneratorAsString(), other.controlFindingGeneratorAsString());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public final String toString() {
return ToString.builder("EnableSecurityHubRequest").add("Tags", hasTags() ? tags() : null)
.add("EnableDefaultStandards", enableDefaultStandards())
.add("ControlFindingGenerator", controlFindingGeneratorAsString()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "Tags":
return Optional.ofNullable(clazz.cast(tags()));
case "EnableDefaultStandards":
return Optional.ofNullable(clazz.cast(enableDefaultStandards()));
case "ControlFindingGenerator":
return Optional.ofNullable(clazz.cast(controlFindingGeneratorAsString()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((EnableSecurityHubRequest) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends SecurityHubRequest.Builder, SdkPojo, CopyableBuilder {
/**
*
* The tags to add to the hub resource when you enable Security Hub.
*
*
* @param tags
* The tags to add to the hub resource when you enable Security Hub.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder tags(Map tags);
/**
*
* Whether to enable the security standards that Security Hub has designated as automatically enabled. If you do
* not provide a value for EnableDefaultStandards, it is set to true. To not enable
* the automatically enabled standards, set EnableDefaultStandards to false.
*
*
* @param enableDefaultStandards
* Whether to enable the security standards that Security Hub has designated as automatically enabled. If
* you do not provide a value for EnableDefaultStandards, it is set to true. To
* not enable the automatically enabled standards, set EnableDefaultStandards to
* false.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder enableDefaultStandards(Boolean enableDefaultStandards);
/**
*
* This field, used when enabling Security Hub, specifies whether the calling account has consolidated control
* findings turned on. If the value for this field is set to SECURITY_CONTROL, Security Hub
* generates a single finding for a control check even when the check applies to multiple enabled standards.
*
*
* If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate findings
* for a control check when the check applies to multiple enabled standards.
*
*
* The value for this field in a member account matches the value in the administrator account. For accounts
* that aren't part of an organization, the default value of this field is SECURITY_CONTROL if you
* enabled Security Hub on or after February 23, 2023.
*
*
* @param controlFindingGenerator
* This field, used when enabling Security Hub, specifies whether the calling account has consolidated
* control findings turned on. If the value for this field is set to SECURITY_CONTROL,
* Security Hub generates a single finding for a control check even when the check applies to multiple
* enabled standards.
*
* If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate
* findings for a control check when the check applies to multiple enabled standards.
*
*
* The value for this field in a member account matches the value in the administrator account. For
* accounts that aren't part of an organization, the default value of this field is
* SECURITY_CONTROL if you enabled Security Hub on or after February 23, 2023.
* @see ControlFindingGenerator
* @return Returns a reference to this object so that method calls can be chained together.
* @see ControlFindingGenerator
*/
Builder controlFindingGenerator(String controlFindingGenerator);
/**
*
* This field, used when enabling Security Hub, specifies whether the calling account has consolidated control
* findings turned on. If the value for this field is set to SECURITY_CONTROL, Security Hub
* generates a single finding for a control check even when the check applies to multiple enabled standards.
*
*
* If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate findings
* for a control check when the check applies to multiple enabled standards.
*
*
* The value for this field in a member account matches the value in the administrator account. For accounts
* that aren't part of an organization, the default value of this field is SECURITY_CONTROL if you
* enabled Security Hub on or after February 23, 2023.
*
*
* @param controlFindingGenerator
* This field, used when enabling Security Hub, specifies whether the calling account has consolidated
* control findings turned on. If the value for this field is set to SECURITY_CONTROL,
* Security Hub generates a single finding for a control check even when the check applies to multiple
* enabled standards.
*
* If the value for this field is set to STANDARD_CONTROL, Security Hub generates separate
* findings for a control check when the check applies to multiple enabled standards.
*
*
* The value for this field in a member account matches the value in the administrator account. For
* accounts that aren't part of an organization, the default value of this field is
* SECURITY_CONTROL if you enabled Security Hub on or after February 23, 2023.
* @see ControlFindingGenerator
* @return Returns a reference to this object so that method calls can be chained together.
* @see ControlFindingGenerator
*/
Builder controlFindingGenerator(ControlFindingGenerator controlFindingGenerator);
@Override
Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration);
@Override
Builder overrideConfiguration(Consumer builderConsumer);
}
static final class BuilderImpl extends SecurityHubRequest.BuilderImpl implements Builder {
private Map tags = DefaultSdkAutoConstructMap.getInstance();
private Boolean enableDefaultStandards;
private String controlFindingGenerator;
private BuilderImpl() {
}
private BuilderImpl(EnableSecurityHubRequest model) {
super(model);
tags(model.tags);
enableDefaultStandards(model.enableDefaultStandards);
controlFindingGenerator(model.controlFindingGenerator);
}
public final Map getTags() {
if (tags instanceof SdkAutoConstructMap) {
return null;
}
return tags;
}
public final void setTags(Map tags) {
this.tags = TagMapCopier.copy(tags);
}
@Override
public final Builder tags(Map tags) {
this.tags = TagMapCopier.copy(tags);
return this;
}
public final Boolean getEnableDefaultStandards() {
return enableDefaultStandards;
}
public final void setEnableDefaultStandards(Boolean enableDefaultStandards) {
this.enableDefaultStandards = enableDefaultStandards;
}
@Override
public final Builder enableDefaultStandards(Boolean enableDefaultStandards) {
this.enableDefaultStandards = enableDefaultStandards;
return this;
}
public final String getControlFindingGenerator() {
return controlFindingGenerator;
}
public final void setControlFindingGenerator(String controlFindingGenerator) {
this.controlFindingGenerator = controlFindingGenerator;
}
@Override
public final Builder controlFindingGenerator(String controlFindingGenerator) {
this.controlFindingGenerator = controlFindingGenerator;
return this;
}
@Override
public final Builder controlFindingGenerator(ControlFindingGenerator controlFindingGenerator) {
this.controlFindingGenerator(controlFindingGenerator == null ? null : controlFindingGenerator.toString());
return this;
}
@Override
public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) {
super.overrideConfiguration(overrideConfiguration);
return this;
}
@Override
public Builder overrideConfiguration(Consumer builderConsumer) {
super.overrideConfiguration(builderConsumer);
return this;
}
@Override
public EnableSecurityHubRequest build() {
return new EnableSecurityHubRequest(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}