// *** 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.azure.mobile.outputs;

import com.pulumi.core.annotations.CustomType;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class NetworkSimStaticIpConfiguration {
    /**
     * @return The ID of attached data network on which the static IP address will be used. The combination of attached data network and slice defines the network scope of the IP address.
     * 
     */
    private String attachedDataNetworkId;
    private String sliceId;
    /**
     * @return The IPv4 address assigned to the SIM at this network scope. This address must be in the userEquipmentStaticAddressPoolPrefix defined in the attached data network.
     * 
     */
    private @Nullable String staticIpv4Address;

    private NetworkSimStaticIpConfiguration() {}
    /**
     * @return The ID of attached data network on which the static IP address will be used. The combination of attached data network and slice defines the network scope of the IP address.
     * 
     */
    public String attachedDataNetworkId() {
        return this.attachedDataNetworkId;
    }
    public String sliceId() {
        return this.sliceId;
    }
    /**
     * @return The IPv4 address assigned to the SIM at this network scope. This address must be in the userEquipmentStaticAddressPoolPrefix defined in the attached data network.
     * 
     */
    public Optional<String> staticIpv4Address() {
        return Optional.ofNullable(this.staticIpv4Address);
    }

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

    public static Builder builder(NetworkSimStaticIpConfiguration defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String attachedDataNetworkId;
        private String sliceId;
        private @Nullable String staticIpv4Address;
        public Builder() {}
        public Builder(NetworkSimStaticIpConfiguration defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.attachedDataNetworkId = defaults.attachedDataNetworkId;
    	      this.sliceId = defaults.sliceId;
    	      this.staticIpv4Address = defaults.staticIpv4Address;
        }

        @CustomType.Setter
        public Builder attachedDataNetworkId(String attachedDataNetworkId) {
            this.attachedDataNetworkId = Objects.requireNonNull(attachedDataNetworkId);
            return this;
        }
        @CustomType.Setter
        public Builder sliceId(String sliceId) {
            this.sliceId = Objects.requireNonNull(sliceId);
            return this;
        }
        @CustomType.Setter
        public Builder staticIpv4Address(@Nullable String staticIpv4Address) {
            this.staticIpv4Address = staticIpv4Address;
            return this;
        }
        public NetworkSimStaticIpConfiguration build() {
            final var o = new NetworkSimStaticIpConfiguration();
            o.attachedDataNetworkId = attachedDataNetworkId;
            o.sliceId = sliceId;
            o.staticIpv4Address = staticIpv4Address;
            return o;
        }
    }
}
