io.awspring.cloud.autoconfigure.secretsmanager.AwsSecretsManagerConfigDataResource Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-cloud-starter-aws-secrets-manager-config Show documentation
Show all versions of spring-cloud-starter-aws-secrets-manager-config Show documentation
Spring Cloud AWS Secrets Manager Configuration Starter
/*
* Copyright 2013-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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 io.awspring.cloud.autoconfigure.secretsmanager;
import java.util.Objects;
import io.awspring.cloud.secretsmanager.AwsSecretsManagerPropertySources;
import org.springframework.boot.context.config.ConfigDataResource;
import org.springframework.core.style.ToStringCreator;
/**
* Config data resource for AWS Secret Manager integration.
*
* @author Eddú Meléndez
* @author Maciej Walkowiak
* @since 2.3.0
*/
public class AwsSecretsManagerConfigDataResource extends ConfigDataResource {
private final String context;
private final boolean optional;
private final AwsSecretsManagerPropertySources propertySources;
public AwsSecretsManagerConfigDataResource(String context, boolean optional,
AwsSecretsManagerPropertySources propertySources) {
this.context = context;
this.optional = optional;
this.propertySources = propertySources;
}
/**
* Returns context which is equal to Secret Manager secret name.
* @return the context
*/
public String getContext() {
return this.context;
}
/**
* If application startup should fail when secret cannot be loaded or does not exist.
* @return is optional
*/
public boolean isOptional() {
return this.optional;
}
public AwsSecretsManagerPropertySources getPropertySources() {
return this.propertySources;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
AwsSecretsManagerConfigDataResource that = (AwsSecretsManagerConfigDataResource) o;
return this.optional == that.optional && this.context.equals(that.context);
}
@Override
public int hashCode() {
return Objects.hash(this.optional, this.context);
}
@Override
public String toString() {
return new ToStringCreator(this).append("context", context).append("optional", optional).toString();
}
}