sdk/java/src/main/java/com/pulumi/ovh/CloudProjectDatabase/outputs/GetDatabaseResult.java
// *** 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.ovh.CloudProjectDatabase.outputs;

import com.pulumi.core.annotations.CustomType;
import com.pulumi.ovh.CloudProjectDatabase.outputs.GetDatabaseEndpoint;
import com.pulumi.ovh.CloudProjectDatabase.outputs.GetDatabaseNode;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;

@CustomType
public final class GetDatabaseResult {
    /**
     * @return Advanced configuration key / value.
     * 
     */
    private Map<String,String> advancedConfiguration;
    /**
     * @return Time on which backups start every day.
     * 
     */
    private String backupTime;
    /**
     * @return Date of the creation of the cluster.
     * 
     */
    private String createdAt;
    /**
     * @return Small description of the database service.
     * 
     */
    private String description;
    /**
     * @return The disk size (in GB) of the database service.
     * 
     */
    private Integer diskSize;
    /**
     * @return The disk type of the database service.
     * 
     */
    private String diskType;
    /**
     * @return List of all endpoints objects of the service.
     * 
     */
    private List<GetDatabaseEndpoint> endpoints;
    /**
     * @return See Argument Reference above.
     * 
     */
    private String engine;
    /**
     * @return A valid OVHcloud public cloud database flavor name in which the nodes will be started.
     * 
     */
    private String flavor;
    /**
     * @return See Argument Reference above.
     * 
     */
    private String id;
    /**
     * @return Defines whether the REST API is enabled on a kafka cluster.
     * 
     */
    private Boolean kafkaRestApi;
    /**
     * @return Time on which maintenances can start every day.
     * 
     */
    private String maintenanceTime;
    /**
     * @return Type of network of the cluster.
     * 
     */
    private String networkType;
    /**
     * @return List of nodes object.
     * 
     */
    private List<GetDatabaseNode> nodes;
    private Boolean opensearchAclsEnabled;
    /**
     * @return Plan of the cluster.
     * 
     */
    private String plan;
    /**
     * @return See Argument Reference above.
     * 
     */
    private String serviceName;
    /**
     * @return Current status of the cluster.
     * 
     */
    private String status;
    /**
     * @return The version of the engine in which the service should be deployed
     * 
     */
    private String version;

    private GetDatabaseResult() {}
    /**
     * @return Advanced configuration key / value.
     * 
     */
    public Map<String,String> advancedConfiguration() {
        return this.advancedConfiguration;
    }
    /**
     * @return Time on which backups start every day.
     * 
     */
    public String backupTime() {
        return this.backupTime;
    }
    /**
     * @return Date of the creation of the cluster.
     * 
     */
    public String createdAt() {
        return this.createdAt;
    }
    /**
     * @return Small description of the database service.
     * 
     */
    public String description() {
        return this.description;
    }
    /**
     * @return The disk size (in GB) of the database service.
     * 
     */
    public Integer diskSize() {
        return this.diskSize;
    }
    /**
     * @return The disk type of the database service.
     * 
     */
    public String diskType() {
        return this.diskType;
    }
    /**
     * @return List of all endpoints objects of the service.
     * 
     */
    public List<GetDatabaseEndpoint> endpoints() {
        return this.endpoints;
    }
    /**
     * @return See Argument Reference above.
     * 
     */
    public String engine() {
        return this.engine;
    }
    /**
     * @return A valid OVHcloud public cloud database flavor name in which the nodes will be started.
     * 
     */
    public String flavor() {
        return this.flavor;
    }
    /**
     * @return See Argument Reference above.
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return Defines whether the REST API is enabled on a kafka cluster.
     * 
     */
    public Boolean kafkaRestApi() {
        return this.kafkaRestApi;
    }
    /**
     * @return Time on which maintenances can start every day.
     * 
     */
    public String maintenanceTime() {
        return this.maintenanceTime;
    }
    /**
     * @return Type of network of the cluster.
     * 
     */
    public String networkType() {
        return this.networkType;
    }
    /**
     * @return List of nodes object.
     * 
     */
    public List<GetDatabaseNode> nodes() {
        return this.nodes;
    }
    public Boolean opensearchAclsEnabled() {
        return this.opensearchAclsEnabled;
    }
    /**
     * @return Plan of the cluster.
     * 
     */
    public String plan() {
        return this.plan;
    }
    /**
     * @return See Argument Reference above.
     * 
     */
    public String serviceName() {
        return this.serviceName;
    }
    /**
     * @return Current status of the cluster.
     * 
     */
    public String status() {
        return this.status;
    }
    /**
     * @return The version of the engine in which the service should be deployed
     * 
     */
    public String version() {
        return this.version;
    }

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

    public static Builder builder(GetDatabaseResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private Map<String,String> advancedConfiguration;
        private String backupTime;
        private String createdAt;
        private String description;
        private Integer diskSize;
        private String diskType;
        private List<GetDatabaseEndpoint> endpoints;
        private String engine;
        private String flavor;
        private String id;
        private Boolean kafkaRestApi;
        private String maintenanceTime;
        private String networkType;
        private List<GetDatabaseNode> nodes;
        private Boolean opensearchAclsEnabled;
        private String plan;
        private String serviceName;
        private String status;
        private String version;
        public Builder() {}
        public Builder(GetDatabaseResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.advancedConfiguration = defaults.advancedConfiguration;
    	      this.backupTime = defaults.backupTime;
    	      this.createdAt = defaults.createdAt;
    	      this.description = defaults.description;
    	      this.diskSize = defaults.diskSize;
    	      this.diskType = defaults.diskType;
    	      this.endpoints = defaults.endpoints;
    	      this.engine = defaults.engine;
    	      this.flavor = defaults.flavor;
    	      this.id = defaults.id;
    	      this.kafkaRestApi = defaults.kafkaRestApi;
    	      this.maintenanceTime = defaults.maintenanceTime;
    	      this.networkType = defaults.networkType;
    	      this.nodes = defaults.nodes;
    	      this.opensearchAclsEnabled = defaults.opensearchAclsEnabled;
    	      this.plan = defaults.plan;
    	      this.serviceName = defaults.serviceName;
    	      this.status = defaults.status;
    	      this.version = defaults.version;
        }

        @CustomType.Setter
        public Builder advancedConfiguration(Map<String,String> advancedConfiguration) {
            this.advancedConfiguration = Objects.requireNonNull(advancedConfiguration);
            return this;
        }
        @CustomType.Setter
        public Builder backupTime(String backupTime) {
            this.backupTime = Objects.requireNonNull(backupTime);
            return this;
        }
        @CustomType.Setter
        public Builder createdAt(String createdAt) {
            this.createdAt = Objects.requireNonNull(createdAt);
            return this;
        }
        @CustomType.Setter
        public Builder description(String description) {
            this.description = Objects.requireNonNull(description);
            return this;
        }
        @CustomType.Setter
        public Builder diskSize(Integer diskSize) {
            this.diskSize = Objects.requireNonNull(diskSize);
            return this;
        }
        @CustomType.Setter
        public Builder diskType(String diskType) {
            this.diskType = Objects.requireNonNull(diskType);
            return this;
        }
        @CustomType.Setter
        public Builder endpoints(List<GetDatabaseEndpoint> endpoints) {
            this.endpoints = Objects.requireNonNull(endpoints);
            return this;
        }
        public Builder endpoints(GetDatabaseEndpoint... endpoints) {
            return endpoints(List.of(endpoints));
        }
        @CustomType.Setter
        public Builder engine(String engine) {
            this.engine = Objects.requireNonNull(engine);
            return this;
        }
        @CustomType.Setter
        public Builder flavor(String flavor) {
            this.flavor = Objects.requireNonNull(flavor);
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            this.id = Objects.requireNonNull(id);
            return this;
        }
        @CustomType.Setter
        public Builder kafkaRestApi(Boolean kafkaRestApi) {
            this.kafkaRestApi = Objects.requireNonNull(kafkaRestApi);
            return this;
        }
        @CustomType.Setter
        public Builder maintenanceTime(String maintenanceTime) {
            this.maintenanceTime = Objects.requireNonNull(maintenanceTime);
            return this;
        }
        @CustomType.Setter
        public Builder networkType(String networkType) {
            this.networkType = Objects.requireNonNull(networkType);
            return this;
        }
        @CustomType.Setter
        public Builder nodes(List<GetDatabaseNode> nodes) {
            this.nodes = Objects.requireNonNull(nodes);
            return this;
        }
        public Builder nodes(GetDatabaseNode... nodes) {
            return nodes(List.of(nodes));
        }
        @CustomType.Setter
        public Builder opensearchAclsEnabled(Boolean opensearchAclsEnabled) {
            this.opensearchAclsEnabled = Objects.requireNonNull(opensearchAclsEnabled);
            return this;
        }
        @CustomType.Setter
        public Builder plan(String plan) {
            this.plan = Objects.requireNonNull(plan);
            return this;
        }
        @CustomType.Setter
        public Builder serviceName(String serviceName) {
            this.serviceName = Objects.requireNonNull(serviceName);
            return this;
        }
        @CustomType.Setter
        public Builder status(String status) {
            this.status = Objects.requireNonNull(status);
            return this;
        }
        @CustomType.Setter
        public Builder version(String version) {
            this.version = Objects.requireNonNull(version);
            return this;
        }
        public GetDatabaseResult build() {
            final var o = new GetDatabaseResult();
            o.advancedConfiguration = advancedConfiguration;
            o.backupTime = backupTime;
            o.createdAt = createdAt;
            o.description = description;
            o.diskSize = diskSize;
            o.diskType = diskType;
            o.endpoints = endpoints;
            o.engine = engine;
            o.flavor = flavor;
            o.id = id;
            o.kafkaRestApi = kafkaRestApi;
            o.maintenanceTime = maintenanceTime;
            o.networkType = networkType;
            o.nodes = nodes;
            o.opensearchAclsEnabled = opensearchAclsEnabled;
            o.plan = plan;
            o.serviceName = serviceName;
            o.status = status;
            o.version = version;
            return o;
        }
    }
}
