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

com.pulumi.libvirt.inputs.DomainTpmArgs Maven / Gradle / Ivy

There is a newer version: 0.6.0-alpha.1732600491
Show newest version
// *** 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.libvirt.inputs;

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


public final class DomainTpmArgs extends com.pulumi.resources.ResourceArgs {

    public static final DomainTpmArgs Empty = new DomainTpmArgs();

    /**
     * Path to TPM device on the host, ex: `/dev/tpm0`
     * 
     * Additional attributes when `backend_type` is "emulator":
     * 
     */
    @Import(name="backendDevicePath")
    private @Nullable Output backendDevicePath;

    /**
     * @return Path to TPM device on the host, ex: `/dev/tpm0`
     * 
     * Additional attributes when `backend_type` is "emulator":
     * 
     */
    public Optional> backendDevicePath() {
        return Optional.ofNullable(this.backendDevicePath);
    }

    /**
     * [Secret object](https://libvirt.org/formatsecret.html) for encrypting the TPM state
     * 
     */
    @Import(name="backendEncryptionSecret")
    private @Nullable Output backendEncryptionSecret;

    /**
     * @return [Secret object](https://libvirt.org/formatsecret.html) for encrypting the TPM state
     * 
     */
    public Optional> backendEncryptionSecret() {
        return Optional.ofNullable(this.backendEncryptionSecret);
    }

    /**
     * Keep the TPM state when a transient domain is powered off or undefined
     * 
     */
    @Import(name="backendPersistentState")
    private @Nullable Output backendPersistentState;

    /**
     * @return Keep the TPM state when a transient domain is powered off or undefined
     * 
     */
    public Optional> backendPersistentState() {
        return Optional.ofNullable(this.backendPersistentState);
    }

    /**
     * TPM backend, either `passthrough` or `emulator` (default: `emulator`)
     * 
     * Additional attributes when `backend_type` is "passthrough":
     * 
     */
    @Import(name="backendType")
    private @Nullable Output backendType;

    /**
     * @return TPM backend, either `passthrough` or `emulator` (default: `emulator`)
     * 
     * Additional attributes when `backend_type` is "passthrough":
     * 
     */
    public Optional> backendType() {
        return Optional.ofNullable(this.backendType);
    }

    /**
     * TPM version
     * 
     */
    @Import(name="backendVersion")
    private @Nullable Output backendVersion;

    /**
     * @return TPM version
     * 
     */
    public Optional> backendVersion() {
        return Optional.ofNullable(this.backendVersion);
    }

    /**
     * TPM model provided to the guest
     * 
     */
    @Import(name="model")
    private @Nullable Output model;

    /**
     * @return TPM model provided to the guest
     * 
     */
    public Optional> model() {
        return Optional.ofNullable(this.model);
    }

    private DomainTpmArgs() {}

    private DomainTpmArgs(DomainTpmArgs $) {
        this.backendDevicePath = $.backendDevicePath;
        this.backendEncryptionSecret = $.backendEncryptionSecret;
        this.backendPersistentState = $.backendPersistentState;
        this.backendType = $.backendType;
        this.backendVersion = $.backendVersion;
        this.model = $.model;
    }

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

    public static final class Builder {
        private DomainTpmArgs $;

        public Builder() {
            $ = new DomainTpmArgs();
        }

        public Builder(DomainTpmArgs defaults) {
            $ = new DomainTpmArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param backendDevicePath Path to TPM device on the host, ex: `/dev/tpm0`
         * 
         * Additional attributes when `backend_type` is "emulator":
         * 
         * @return builder
         * 
         */
        public Builder backendDevicePath(@Nullable Output backendDevicePath) {
            $.backendDevicePath = backendDevicePath;
            return this;
        }

        /**
         * @param backendDevicePath Path to TPM device on the host, ex: `/dev/tpm0`
         * 
         * Additional attributes when `backend_type` is "emulator":
         * 
         * @return builder
         * 
         */
        public Builder backendDevicePath(String backendDevicePath) {
            return backendDevicePath(Output.of(backendDevicePath));
        }

        /**
         * @param backendEncryptionSecret [Secret object](https://libvirt.org/formatsecret.html) for encrypting the TPM state
         * 
         * @return builder
         * 
         */
        public Builder backendEncryptionSecret(@Nullable Output backendEncryptionSecret) {
            $.backendEncryptionSecret = backendEncryptionSecret;
            return this;
        }

        /**
         * @param backendEncryptionSecret [Secret object](https://libvirt.org/formatsecret.html) for encrypting the TPM state
         * 
         * @return builder
         * 
         */
        public Builder backendEncryptionSecret(String backendEncryptionSecret) {
            return backendEncryptionSecret(Output.of(backendEncryptionSecret));
        }

        /**
         * @param backendPersistentState Keep the TPM state when a transient domain is powered off or undefined
         * 
         * @return builder
         * 
         */
        public Builder backendPersistentState(@Nullable Output backendPersistentState) {
            $.backendPersistentState = backendPersistentState;
            return this;
        }

        /**
         * @param backendPersistentState Keep the TPM state when a transient domain is powered off or undefined
         * 
         * @return builder
         * 
         */
        public Builder backendPersistentState(Boolean backendPersistentState) {
            return backendPersistentState(Output.of(backendPersistentState));
        }

        /**
         * @param backendType TPM backend, either `passthrough` or `emulator` (default: `emulator`)
         * 
         * Additional attributes when `backend_type` is "passthrough":
         * 
         * @return builder
         * 
         */
        public Builder backendType(@Nullable Output backendType) {
            $.backendType = backendType;
            return this;
        }

        /**
         * @param backendType TPM backend, either `passthrough` or `emulator` (default: `emulator`)
         * 
         * Additional attributes when `backend_type` is "passthrough":
         * 
         * @return builder
         * 
         */
        public Builder backendType(String backendType) {
            return backendType(Output.of(backendType));
        }

        /**
         * @param backendVersion TPM version
         * 
         * @return builder
         * 
         */
        public Builder backendVersion(@Nullable Output backendVersion) {
            $.backendVersion = backendVersion;
            return this;
        }

        /**
         * @param backendVersion TPM version
         * 
         * @return builder
         * 
         */
        public Builder backendVersion(String backendVersion) {
            return backendVersion(Output.of(backendVersion));
        }

        /**
         * @param model TPM model provided to the guest
         * 
         * @return builder
         * 
         */
        public Builder model(@Nullable Output model) {
            $.model = model;
            return this;
        }

        /**
         * @param model TPM model provided to the guest
         * 
         * @return builder
         * 
         */
        public Builder model(String model) {
            return model(Output.of(model));
        }

        public DomainTpmArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy