All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.route53.model.HostedZone Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon Route53 module holds the client classes that are used for communicating with Amazon Route53 Service

There is a newer version: 2.28.4
Show newest version
/*
 * 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.route53.model;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
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.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

* A complex type that contains general information about the hosted zone. *

*/ @Generated("software.amazon.awssdk:codegen") public final class HostedZone implements SdkPojo, Serializable, ToCopyableBuilder { private static final SdkField ID_FIELD = SdkField . builder(MarshallingType.STRING) .memberName("Id") .getter(getter(HostedZone::id)) .setter(setter(Builder::id)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Id").unmarshallLocationName("Id") .build()).build(); private static final SdkField NAME_FIELD = SdkField . builder(MarshallingType.STRING) .memberName("Name") .getter(getter(HostedZone::name)) .setter(setter(Builder::name)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Name") .unmarshallLocationName("Name").build()).build(); private static final SdkField CALLER_REFERENCE_FIELD = SdkField . builder(MarshallingType.STRING) .memberName("CallerReference") .getter(getter(HostedZone::callerReference)) .setter(setter(Builder::callerReference)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CallerReference") .unmarshallLocationName("CallerReference").build()).build(); private static final SdkField CONFIG_FIELD = SdkField . builder(MarshallingType.SDK_POJO) .memberName("Config") .getter(getter(HostedZone::config)) .setter(setter(Builder::config)) .constructor(HostedZoneConfig::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Config") .unmarshallLocationName("Config").build()).build(); private static final SdkField RESOURCE_RECORD_SET_COUNT_FIELD = SdkField . builder(MarshallingType.LONG) .memberName("ResourceRecordSetCount") .getter(getter(HostedZone::resourceRecordSetCount)) .setter(setter(Builder::resourceRecordSetCount)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ResourceRecordSetCount") .unmarshallLocationName("ResourceRecordSetCount").build()).build(); private static final SdkField LINKED_SERVICE_FIELD = SdkField . builder(MarshallingType.SDK_POJO) .memberName("LinkedService") .getter(getter(HostedZone::linkedService)) .setter(setter(Builder::linkedService)) .constructor(LinkedService::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LinkedService") .unmarshallLocationName("LinkedService").build()).build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(ID_FIELD, NAME_FIELD, CALLER_REFERENCE_FIELD, CONFIG_FIELD, RESOURCE_RECORD_SET_COUNT_FIELD, LINKED_SERVICE_FIELD)); private static final long serialVersionUID = 1L; private final String id; private final String name; private final String callerReference; private final HostedZoneConfig config; private final Long resourceRecordSetCount; private final LinkedService linkedService; private HostedZone(BuilderImpl builder) { this.id = builder.id; this.name = builder.name; this.callerReference = builder.callerReference; this.config = builder.config; this.resourceRecordSetCount = builder.resourceRecordSetCount; this.linkedService = builder.linkedService; } /** *

* The ID that Amazon Route 53 assigned to the hosted zone when you created it. *

* * @return The ID that Amazon Route 53 assigned to the hosted zone when you created it. */ public final String id() { return id; } /** *

* The name of the domain. For public hosted zones, this is the name that you have registered with your DNS * registrar. *

*

* For information about how to specify characters other than a-z, 0-9, and - * (hyphen) and how to specify internationalized domain names, see CreateHostedZone. *

* * @return The name of the domain. For public hosted zones, this is the name that you have registered with your DNS * registrar.

*

* For information about how to specify characters other than a-z, 0-9, and * - (hyphen) and how to specify internationalized domain names, see CreateHostedZone. */ public final String name() { return name; } /** *

* The value that you specified for CallerReference when you created the hosted zone. *

* * @return The value that you specified for CallerReference when you created the hosted zone. */ public final String callerReference() { return callerReference; } /** *

* A complex type that includes the Comment and PrivateZone elements. If you omitted the * HostedZoneConfig and Comment elements from the request, the Config and * Comment elements don't appear in the response. *

* * @return A complex type that includes the Comment and PrivateZone elements. If you * omitted the HostedZoneConfig and Comment elements from the request, the * Config and Comment elements don't appear in the response. */ public final HostedZoneConfig config() { return config; } /** *

* The number of resource record sets in the hosted zone. *

* * @return The number of resource record sets in the hosted zone. */ public final Long resourceRecordSetCount() { return resourceRecordSetCount; } /** *

* If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone * is created by another service, you can't edit or delete it using Route 53. *

* * @return If the hosted zone was created by another service, the service that created the hosted zone. When a * hosted zone is created by another service, you can't edit or delete it using Route 53. */ public final LinkedService linkedService() { return linkedService; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(id()); hashCode = 31 * hashCode + Objects.hashCode(name()); hashCode = 31 * hashCode + Objects.hashCode(callerReference()); hashCode = 31 * hashCode + Objects.hashCode(config()); hashCode = 31 * hashCode + Objects.hashCode(resourceRecordSetCount()); hashCode = 31 * hashCode + Objects.hashCode(linkedService()); return hashCode; } @Override public final boolean equals(Object obj) { return equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof HostedZone)) { return false; } HostedZone other = (HostedZone) obj; return Objects.equals(id(), other.id()) && Objects.equals(name(), other.name()) && Objects.equals(callerReference(), other.callerReference()) && Objects.equals(config(), other.config()) && Objects.equals(resourceRecordSetCount(), other.resourceRecordSetCount()) && Objects.equals(linkedService(), other.linkedService()); } /** * 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("HostedZone").add("Id", id()).add("Name", name()).add("CallerReference", callerReference()) .add("Config", config()).add("ResourceRecordSetCount", resourceRecordSetCount()) .add("LinkedService", linkedService()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "Id": return Optional.ofNullable(clazz.cast(id())); case "Name": return Optional.ofNullable(clazz.cast(name())); case "CallerReference": return Optional.ofNullable(clazz.cast(callerReference())); case "Config": return Optional.ofNullable(clazz.cast(config())); case "ResourceRecordSetCount": return Optional.ofNullable(clazz.cast(resourceRecordSetCount())); case "LinkedService": return Optional.ofNullable(clazz.cast(linkedService())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((HostedZone) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** *

* The ID that Amazon Route 53 assigned to the hosted zone when you created it. *

* * @param id * The ID that Amazon Route 53 assigned to the hosted zone when you created it. * @return Returns a reference to this object so that method calls can be chained together. */ Builder id(String id); /** *

* The name of the domain. For public hosted zones, this is the name that you have registered with your DNS * registrar. *

*

* For information about how to specify characters other than a-z, 0-9, and * - (hyphen) and how to specify internationalized domain names, see CreateHostedZone. *

* * @param name * The name of the domain. For public hosted zones, this is the name that you have registered with your * DNS registrar.

*

* For information about how to specify characters other than a-z, 0-9, and * - (hyphen) and how to specify internationalized domain names, see CreateHostedZone. * @return Returns a reference to this object so that method calls can be chained together. */ Builder name(String name); /** *

* The value that you specified for CallerReference when you created the hosted zone. *

* * @param callerReference * The value that you specified for CallerReference when you created the hosted zone. * @return Returns a reference to this object so that method calls can be chained together. */ Builder callerReference(String callerReference); /** *

* A complex type that includes the Comment and PrivateZone elements. If you omitted * the HostedZoneConfig and Comment elements from the request, the Config * and Comment elements don't appear in the response. *

* * @param config * A complex type that includes the Comment and PrivateZone elements. If you * omitted the HostedZoneConfig and Comment elements from the request, the * Config and Comment elements don't appear in the response. * @return Returns a reference to this object so that method calls can be chained together. */ Builder config(HostedZoneConfig config); /** *

* A complex type that includes the Comment and PrivateZone elements. If you omitted * the HostedZoneConfig and Comment elements from the request, the Config * and Comment elements don't appear in the response. *

* This is a convenience method that creates an instance of the {@link HostedZoneConfig.Builder} avoiding the * need to create one manually via {@link HostedZoneConfig#builder()}. * *

* When the {@link Consumer} completes, {@link HostedZoneConfig.Builder#build()} is called immediately and its * result is passed to {@link #config(HostedZoneConfig)}. * * @param config * a consumer that will call methods on {@link HostedZoneConfig.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #config(HostedZoneConfig) */ default Builder config(Consumer config) { return config(HostedZoneConfig.builder().applyMutation(config).build()); } /** *

* The number of resource record sets in the hosted zone. *

* * @param resourceRecordSetCount * The number of resource record sets in the hosted zone. * @return Returns a reference to this object so that method calls can be chained together. */ Builder resourceRecordSetCount(Long resourceRecordSetCount); /** *

* If the hosted zone was created by another service, the service that created the hosted zone. When a hosted * zone is created by another service, you can't edit or delete it using Route 53. *

* * @param linkedService * If the hosted zone was created by another service, the service that created the hosted zone. When a * hosted zone is created by another service, you can't edit or delete it using Route 53. * @return Returns a reference to this object so that method calls can be chained together. */ Builder linkedService(LinkedService linkedService); /** *

* If the hosted zone was created by another service, the service that created the hosted zone. When a hosted * zone is created by another service, you can't edit or delete it using Route 53. *

* This is a convenience method that creates an instance of the {@link LinkedService.Builder} avoiding the need * to create one manually via {@link LinkedService#builder()}. * *

* When the {@link Consumer} completes, {@link LinkedService.Builder#build()} is called immediately and its * result is passed to {@link #linkedService(LinkedService)}. * * @param linkedService * a consumer that will call methods on {@link LinkedService.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #linkedService(LinkedService) */ default Builder linkedService(Consumer linkedService) { return linkedService(LinkedService.builder().applyMutation(linkedService).build()); } } static final class BuilderImpl implements Builder { private String id; private String name; private String callerReference; private HostedZoneConfig config; private Long resourceRecordSetCount; private LinkedService linkedService; private BuilderImpl() { } private BuilderImpl(HostedZone model) { id(model.id); name(model.name); callerReference(model.callerReference); config(model.config); resourceRecordSetCount(model.resourceRecordSetCount); linkedService(model.linkedService); } public final String getId() { return id; } public final void setId(String id) { this.id = id; } @Override public final Builder id(String id) { this.id = id; return this; } public final String getName() { return name; } public final void setName(String name) { this.name = name; } @Override public final Builder name(String name) { this.name = name; return this; } public final String getCallerReference() { return callerReference; } public final void setCallerReference(String callerReference) { this.callerReference = callerReference; } @Override public final Builder callerReference(String callerReference) { this.callerReference = callerReference; return this; } public final HostedZoneConfig.Builder getConfig() { return config != null ? config.toBuilder() : null; } public final void setConfig(HostedZoneConfig.BuilderImpl config) { this.config = config != null ? config.build() : null; } @Override public final Builder config(HostedZoneConfig config) { this.config = config; return this; } public final Long getResourceRecordSetCount() { return resourceRecordSetCount; } public final void setResourceRecordSetCount(Long resourceRecordSetCount) { this.resourceRecordSetCount = resourceRecordSetCount; } @Override public final Builder resourceRecordSetCount(Long resourceRecordSetCount) { this.resourceRecordSetCount = resourceRecordSetCount; return this; } public final LinkedService.Builder getLinkedService() { return linkedService != null ? linkedService.toBuilder() : null; } public final void setLinkedService(LinkedService.BuilderImpl linkedService) { this.linkedService = linkedService != null ? linkedService.build() : null; } @Override public final Builder linkedService(LinkedService linkedService) { this.linkedService = linkedService; return this; } @Override public HostedZone build() { return new HostedZone(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy