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

import com.pulumi.core.annotations.CustomType;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;

@CustomType
public final class GetResolverFirewallRuleGroupAssociationResult {
    private String arn;
    private String creationTime;
    private String creatorRequestId;
    private String firewallRuleGroupAssociationId;
    private String firewallRuleGroupId;
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    private String id;
    private String managedOwnerName;
    private String modificationTime;
    private String mutationProtection;
    private String name;
    private Integer priority;
    private String status;
    private String statusMessage;
    private String vpcId;

    private GetResolverFirewallRuleGroupAssociationResult() {}
    public String arn() {
        return this.arn;
    }
    public String creationTime() {
        return this.creationTime;
    }
    public String creatorRequestId() {
        return this.creatorRequestId;
    }
    public String firewallRuleGroupAssociationId() {
        return this.firewallRuleGroupAssociationId;
    }
    public String firewallRuleGroupId() {
        return this.firewallRuleGroupId;
    }
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    public String id() {
        return this.id;
    }
    public String managedOwnerName() {
        return this.managedOwnerName;
    }
    public String modificationTime() {
        return this.modificationTime;
    }
    public String mutationProtection() {
        return this.mutationProtection;
    }
    public String name() {
        return this.name;
    }
    public Integer priority() {
        return this.priority;
    }
    public String status() {
        return this.status;
    }
    public String statusMessage() {
        return this.statusMessage;
    }
    public String vpcId() {
        return this.vpcId;
    }

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

    public static Builder builder(GetResolverFirewallRuleGroupAssociationResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String arn;
        private String creationTime;
        private String creatorRequestId;
        private String firewallRuleGroupAssociationId;
        private String firewallRuleGroupId;
        private String id;
        private String managedOwnerName;
        private String modificationTime;
        private String mutationProtection;
        private String name;
        private Integer priority;
        private String status;
        private String statusMessage;
        private String vpcId;
        public Builder() {}
        public Builder(GetResolverFirewallRuleGroupAssociationResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.arn = defaults.arn;
    	      this.creationTime = defaults.creationTime;
    	      this.creatorRequestId = defaults.creatorRequestId;
    	      this.firewallRuleGroupAssociationId = defaults.firewallRuleGroupAssociationId;
    	      this.firewallRuleGroupId = defaults.firewallRuleGroupId;
    	      this.id = defaults.id;
    	      this.managedOwnerName = defaults.managedOwnerName;
    	      this.modificationTime = defaults.modificationTime;
    	      this.mutationProtection = defaults.mutationProtection;
    	      this.name = defaults.name;
    	      this.priority = defaults.priority;
    	      this.status = defaults.status;
    	      this.statusMessage = defaults.statusMessage;
    	      this.vpcId = defaults.vpcId;
        }

        @CustomType.Setter
        public Builder arn(String arn) {
            this.arn = Objects.requireNonNull(arn);
            return this;
        }
        @CustomType.Setter
        public Builder creationTime(String creationTime) {
            this.creationTime = Objects.requireNonNull(creationTime);
            return this;
        }
        @CustomType.Setter
        public Builder creatorRequestId(String creatorRequestId) {
            this.creatorRequestId = Objects.requireNonNull(creatorRequestId);
            return this;
        }
        @CustomType.Setter
        public Builder firewallRuleGroupAssociationId(String firewallRuleGroupAssociationId) {
            this.firewallRuleGroupAssociationId = Objects.requireNonNull(firewallRuleGroupAssociationId);
            return this;
        }
        @CustomType.Setter
        public Builder firewallRuleGroupId(String firewallRuleGroupId) {
            this.firewallRuleGroupId = Objects.requireNonNull(firewallRuleGroupId);
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            this.id = Objects.requireNonNull(id);
            return this;
        }
        @CustomType.Setter
        public Builder managedOwnerName(String managedOwnerName) {
            this.managedOwnerName = Objects.requireNonNull(managedOwnerName);
            return this;
        }
        @CustomType.Setter
        public Builder modificationTime(String modificationTime) {
            this.modificationTime = Objects.requireNonNull(modificationTime);
            return this;
        }
        @CustomType.Setter
        public Builder mutationProtection(String mutationProtection) {
            this.mutationProtection = Objects.requireNonNull(mutationProtection);
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            this.name = Objects.requireNonNull(name);
            return this;
        }
        @CustomType.Setter
        public Builder priority(Integer priority) {
            this.priority = Objects.requireNonNull(priority);
            return this;
        }
        @CustomType.Setter
        public Builder status(String status) {
            this.status = Objects.requireNonNull(status);
            return this;
        }
        @CustomType.Setter
        public Builder statusMessage(String statusMessage) {
            this.statusMessage = Objects.requireNonNull(statusMessage);
            return this;
        }
        @CustomType.Setter
        public Builder vpcId(String vpcId) {
            this.vpcId = Objects.requireNonNull(vpcId);
            return this;
        }
        public GetResolverFirewallRuleGroupAssociationResult build() {
            final var o = new GetResolverFirewallRuleGroupAssociationResult();
            o.arn = arn;
            o.creationTime = creationTime;
            o.creatorRequestId = creatorRequestId;
            o.firewallRuleGroupAssociationId = firewallRuleGroupAssociationId;
            o.firewallRuleGroupId = firewallRuleGroupId;
            o.id = id;
            o.managedOwnerName = managedOwnerName;
            o.modificationTime = modificationTime;
            o.mutationProtection = mutationProtection;
            o.name = name;
            o.priority = priority;
            o.status = status;
            o.statusMessage = statusMessage;
            o.vpcId = vpcId;
            return o;
        }
    }
}
