// *** 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.aws.codegurureviewer.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;


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

    public static final RepositoryAssociationRepositoryGithubEnterpriseServerArgs Empty = new RepositoryAssociationRepositoryGithubEnterpriseServerArgs();

    /**
     * The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection.
     * 
     */
    @Import(name="connectionArn", required=true)
    private Output<String> connectionArn;

    /**
     * @return The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection.
     * 
     */
    public Output<String> connectionArn() {
        return this.connectionArn;
    }

    /**
     * The name of the third party source repository.
     * 
     */
    @Import(name="name", required=true)
    private Output<String> name;

    /**
     * @return The name of the third party source repository.
     * 
     */
    public Output<String> name() {
        return this.name;
    }

    /**
     * The username for the account that owns the repository.
     * 
     */
    @Import(name="owner", required=true)
    private Output<String> owner;

    /**
     * @return The username for the account that owns the repository.
     * 
     */
    public Output<String> owner() {
        return this.owner;
    }

    private RepositoryAssociationRepositoryGithubEnterpriseServerArgs() {}

    private RepositoryAssociationRepositoryGithubEnterpriseServerArgs(RepositoryAssociationRepositoryGithubEnterpriseServerArgs $) {
        this.connectionArn = $.connectionArn;
        this.name = $.name;
        this.owner = $.owner;
    }

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

    public static final class Builder {
        private RepositoryAssociationRepositoryGithubEnterpriseServerArgs $;

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

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

        /**
         * @param connectionArn The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection.
         * 
         * @return builder
         * 
         */
        public Builder connectionArn(Output<String> connectionArn) {
            $.connectionArn = connectionArn;
            return this;
        }

        /**
         * @param connectionArn The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection.
         * 
         * @return builder
         * 
         */
        public Builder connectionArn(String connectionArn) {
            return connectionArn(Output.of(connectionArn));
        }

        /**
         * @param name The name of the third party source repository.
         * 
         * @return builder
         * 
         */
        public Builder name(Output<String> name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the third party source repository.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param owner The username for the account that owns the repository.
         * 
         * @return builder
         * 
         */
        public Builder owner(Output<String> owner) {
            $.owner = owner;
            return this;
        }

        /**
         * @param owner The username for the account that owns the repository.
         * 
         * @return builder
         * 
         */
        public Builder owner(String owner) {
            return owner(Output.of(owner));
        }

        public RepositoryAssociationRepositoryGithubEnterpriseServerArgs build() {
            $.connectionArn = Objects.requireNonNull($.connectionArn, "expected parameter 'connectionArn' to be non-null");
            $.name = Objects.requireNonNull($.name, "expected parameter 'name' to be non-null");
            $.owner = Objects.requireNonNull($.owner, "expected parameter 'owner' to be non-null");
            return $;
        }
    }

}
