// *** 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.gcp.osconfig.inputs;

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


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

    public static final OsPolicyAssignmentOsPolicyResourceGroupResourcePkgDebSourceRemoteArgs Empty = new OsPolicyAssignmentOsPolicyResourceGroupResourcePkgDebSourceRemoteArgs();

    /**
     * SHA256 checksum of the remote file.
     * 
     */
    @Import(name="sha256Checksum")
    private @Nullable Output<String> sha256Checksum;

    /**
     * @return SHA256 checksum of the remote file.
     * 
     */
    public Optional<Output<String>> sha256Checksum() {
        return Optional.ofNullable(this.sha256Checksum);
    }

    /**
     * URI from which to fetch the object. It should contain
     * both the protocol and path following the format `{protocol}://{location}`.
     * 
     */
    @Import(name="uri", required=true)
    private Output<String> uri;

    /**
     * @return URI from which to fetch the object. It should contain
     * both the protocol and path following the format `{protocol}://{location}`.
     * 
     */
    public Output<String> uri() {
        return this.uri;
    }

    private OsPolicyAssignmentOsPolicyResourceGroupResourcePkgDebSourceRemoteArgs() {}

    private OsPolicyAssignmentOsPolicyResourceGroupResourcePkgDebSourceRemoteArgs(OsPolicyAssignmentOsPolicyResourceGroupResourcePkgDebSourceRemoteArgs $) {
        this.sha256Checksum = $.sha256Checksum;
        this.uri = $.uri;
    }

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

    public static final class Builder {
        private OsPolicyAssignmentOsPolicyResourceGroupResourcePkgDebSourceRemoteArgs $;

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

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

        /**
         * @param sha256Checksum SHA256 checksum of the remote file.
         * 
         * @return builder
         * 
         */
        public Builder sha256Checksum(@Nullable Output<String> sha256Checksum) {
            $.sha256Checksum = sha256Checksum;
            return this;
        }

        /**
         * @param sha256Checksum SHA256 checksum of the remote file.
         * 
         * @return builder
         * 
         */
        public Builder sha256Checksum(String sha256Checksum) {
            return sha256Checksum(Output.of(sha256Checksum));
        }

        /**
         * @param uri URI from which to fetch the object. It should contain
         * both the protocol and path following the format `{protocol}://{location}`.
         * 
         * @return builder
         * 
         */
        public Builder uri(Output<String> uri) {
            $.uri = uri;
            return this;
        }

        /**
         * @param uri URI from which to fetch the object. It should contain
         * both the protocol and path following the format `{protocol}://{location}`.
         * 
         * @return builder
         * 
         */
        public Builder uri(String uri) {
            return uri(Output.of(uri));
        }

        public OsPolicyAssignmentOsPolicyResourceGroupResourcePkgDebSourceRemoteArgs build() {
            $.uri = Objects.requireNonNull($.uri, "expected parameter 'uri' to be non-null");
            return $;
        }
    }

}
