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

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

@CustomType
public final class GetRouterConfigurationRouter {
    /**
     * @return Router platform
     * 
     */
    private String platform;
    /**
     * @return ID of the Router Type. For example: `CiscoSystemsInc-2900SeriesRouters-IOS124`
     * 
     * There is currently no AWS API to retrieve the full list of `router_type_identifier` values. Here is a list of known `RouterType` objects that can be used:
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *     }
     * }
     * ```
     * 
     */
    private String routerTypeIdentifier;
    /**
     * @return Router operating system
     * 
     */
    private String software;
    /**
     * @return Router vendor
     * 
     */
    private String vendor;
    /**
     * @return Router XSLT Template Name
     * 
     */
    private String xsltTemplateName;
    private String xsltTemplateNameForMacSec;

    private GetRouterConfigurationRouter() {}
    /**
     * @return Router platform
     * 
     */
    public String platform() {
        return this.platform;
    }
    /**
     * @return ID of the Router Type. For example: `CiscoSystemsInc-2900SeriesRouters-IOS124`
     * 
     * There is currently no AWS API to retrieve the full list of `router_type_identifier` values. Here is a list of known `RouterType` objects that can be used:
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *     }
     * }
     * ```
     * 
     */
    public String routerTypeIdentifier() {
        return this.routerTypeIdentifier;
    }
    /**
     * @return Router operating system
     * 
     */
    public String software() {
        return this.software;
    }
    /**
     * @return Router vendor
     * 
     */
    public String vendor() {
        return this.vendor;
    }
    /**
     * @return Router XSLT Template Name
     * 
     */
    public String xsltTemplateName() {
        return this.xsltTemplateName;
    }
    public String xsltTemplateNameForMacSec() {
        return this.xsltTemplateNameForMacSec;
    }

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

    public static Builder builder(GetRouterConfigurationRouter defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String platform;
        private String routerTypeIdentifier;
        private String software;
        private String vendor;
        private String xsltTemplateName;
        private String xsltTemplateNameForMacSec;
        public Builder() {}
        public Builder(GetRouterConfigurationRouter defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.platform = defaults.platform;
    	      this.routerTypeIdentifier = defaults.routerTypeIdentifier;
    	      this.software = defaults.software;
    	      this.vendor = defaults.vendor;
    	      this.xsltTemplateName = defaults.xsltTemplateName;
    	      this.xsltTemplateNameForMacSec = defaults.xsltTemplateNameForMacSec;
        }

        @CustomType.Setter
        public Builder platform(String platform) {
            this.platform = Objects.requireNonNull(platform);
            return this;
        }
        @CustomType.Setter
        public Builder routerTypeIdentifier(String routerTypeIdentifier) {
            this.routerTypeIdentifier = Objects.requireNonNull(routerTypeIdentifier);
            return this;
        }
        @CustomType.Setter
        public Builder software(String software) {
            this.software = Objects.requireNonNull(software);
            return this;
        }
        @CustomType.Setter
        public Builder vendor(String vendor) {
            this.vendor = Objects.requireNonNull(vendor);
            return this;
        }
        @CustomType.Setter
        public Builder xsltTemplateName(String xsltTemplateName) {
            this.xsltTemplateName = Objects.requireNonNull(xsltTemplateName);
            return this;
        }
        @CustomType.Setter
        public Builder xsltTemplateNameForMacSec(String xsltTemplateNameForMacSec) {
            this.xsltTemplateNameForMacSec = Objects.requireNonNull(xsltTemplateNameForMacSec);
            return this;
        }
        public GetRouterConfigurationRouter build() {
            final var o = new GetRouterConfigurationRouter();
            o.platform = platform;
            o.routerTypeIdentifier = routerTypeIdentifier;
            o.software = software;
            o.vendor = vendor;
            o.xsltTemplateName = xsltTemplateName;
            o.xsltTemplateNameForMacSec = xsltTemplateNameForMacSec;
            return o;
        }
    }
}
