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

com.pulumi.azurenative.providerhub.outputs.SkuLocationInfoResponse Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.providerhub.outputs;

import com.pulumi.azurenative.providerhub.outputs.SkuZoneDetailResponse;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class SkuLocationInfoResponse {
    private @Nullable List extendedLocations;
    private String location;
    private @Nullable String type;
    private @Nullable List zoneDetails;
    private @Nullable List zones;

    private SkuLocationInfoResponse() {}
    public List extendedLocations() {
        return this.extendedLocations == null ? List.of() : this.extendedLocations;
    }
    public String location() {
        return this.location;
    }
    public Optional type() {
        return Optional.ofNullable(this.type);
    }
    public List zoneDetails() {
        return this.zoneDetails == null ? List.of() : this.zoneDetails;
    }
    public List zones() {
        return this.zones == null ? List.of() : this.zones;
    }

    public static Builder builder() {
        return new Builder();
    }

    public static Builder builder(SkuLocationInfoResponse defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable List extendedLocations;
        private String location;
        private @Nullable String type;
        private @Nullable List zoneDetails;
        private @Nullable List zones;
        public Builder() {}
        public Builder(SkuLocationInfoResponse defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.extendedLocations = defaults.extendedLocations;
    	      this.location = defaults.location;
    	      this.type = defaults.type;
    	      this.zoneDetails = defaults.zoneDetails;
    	      this.zones = defaults.zones;
        }

        @CustomType.Setter
        public Builder extendedLocations(@Nullable List extendedLocations) {

            this.extendedLocations = extendedLocations;
            return this;
        }
        public Builder extendedLocations(String... extendedLocations) {
            return extendedLocations(List.of(extendedLocations));
        }
        @CustomType.Setter
        public Builder location(String location) {
            if (location == null) {
              throw new MissingRequiredPropertyException("SkuLocationInfoResponse", "location");
            }
            this.location = location;
            return this;
        }
        @CustomType.Setter
        public Builder type(@Nullable String type) {

            this.type = type;
            return this;
        }
        @CustomType.Setter
        public Builder zoneDetails(@Nullable List zoneDetails) {

            this.zoneDetails = zoneDetails;
            return this;
        }
        public Builder zoneDetails(SkuZoneDetailResponse... zoneDetails) {
            return zoneDetails(List.of(zoneDetails));
        }
        @CustomType.Setter
        public Builder zones(@Nullable List zones) {

            this.zones = zones;
            return this;
        }
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }
        public SkuLocationInfoResponse build() {
            final var _resultValue = new SkuLocationInfoResponse();
            _resultValue.extendedLocations = extendedLocations;
            _resultValue.location = location;
            _resultValue.type = type;
            _resultValue.zoneDetails = zoneDetails;
            _resultValue.zones = zones;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy