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

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

@CustomType
public final class GetInsightsResult {
    /**
     * @return The App ID associated with this Application Insights component.
     * 
     */
    private String appId;
    /**
     * @return The type of the component.
     * 
     */
    private String applicationType;
    /**
     * @return The connection string of the Application Insights component. (Sensitive)
     * 
     */
    private String connectionString;
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    private String id;
    /**
     * @return The instrumentation key of the Application Insights component.
     * 
     */
    private String instrumentationKey;
    /**
     * @return The Azure location where the component exists.
     * 
     */
    private String location;
    private String name;
    private String resourceGroupName;
    /**
     * @return The retention period in days.
     * 
     */
    private Integer retentionInDays;
    /**
     * @return Tags applied to the component.
     * 
     */
    private Map<String,String> tags;
    /**
     * @return The id of the associated Log Analytics workspace
     * 
     */
    private String workspaceId;

    private GetInsightsResult() {}
    /**
     * @return The App ID associated with this Application Insights component.
     * 
     */
    public String appId() {
        return this.appId;
    }
    /**
     * @return The type of the component.
     * 
     */
    public String applicationType() {
        return this.applicationType;
    }
    /**
     * @return The connection string of the Application Insights component. (Sensitive)
     * 
     */
    public String connectionString() {
        return this.connectionString;
    }
    /**
     * @return The provider-assigned unique ID for this managed resource.
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return The instrumentation key of the Application Insights component.
     * 
     */
    public String instrumentationKey() {
        return this.instrumentationKey;
    }
    /**
     * @return The Azure location where the component exists.
     * 
     */
    public String location() {
        return this.location;
    }
    public String name() {
        return this.name;
    }
    public String resourceGroupName() {
        return this.resourceGroupName;
    }
    /**
     * @return The retention period in days.
     * 
     */
    public Integer retentionInDays() {
        return this.retentionInDays;
    }
    /**
     * @return Tags applied to the component.
     * 
     */
    public Map<String,String> tags() {
        return this.tags;
    }
    /**
     * @return The id of the associated Log Analytics workspace
     * 
     */
    public String workspaceId() {
        return this.workspaceId;
    }

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

    public static Builder builder(GetInsightsResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String appId;
        private String applicationType;
        private String connectionString;
        private String id;
        private String instrumentationKey;
        private String location;
        private String name;
        private String resourceGroupName;
        private Integer retentionInDays;
        private Map<String,String> tags;
        private String workspaceId;
        public Builder() {}
        public Builder(GetInsightsResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.appId = defaults.appId;
    	      this.applicationType = defaults.applicationType;
    	      this.connectionString = defaults.connectionString;
    	      this.id = defaults.id;
    	      this.instrumentationKey = defaults.instrumentationKey;
    	      this.location = defaults.location;
    	      this.name = defaults.name;
    	      this.resourceGroupName = defaults.resourceGroupName;
    	      this.retentionInDays = defaults.retentionInDays;
    	      this.tags = defaults.tags;
    	      this.workspaceId = defaults.workspaceId;
        }

        @CustomType.Setter
        public Builder appId(String appId) {
            this.appId = Objects.requireNonNull(appId);
            return this;
        }
        @CustomType.Setter
        public Builder applicationType(String applicationType) {
            this.applicationType = Objects.requireNonNull(applicationType);
            return this;
        }
        @CustomType.Setter
        public Builder connectionString(String connectionString) {
            this.connectionString = Objects.requireNonNull(connectionString);
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            this.id = Objects.requireNonNull(id);
            return this;
        }
        @CustomType.Setter
        public Builder instrumentationKey(String instrumentationKey) {
            this.instrumentationKey = Objects.requireNonNull(instrumentationKey);
            return this;
        }
        @CustomType.Setter
        public Builder location(String location) {
            this.location = Objects.requireNonNull(location);
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            this.name = Objects.requireNonNull(name);
            return this;
        }
        @CustomType.Setter
        public Builder resourceGroupName(String resourceGroupName) {
            this.resourceGroupName = Objects.requireNonNull(resourceGroupName);
            return this;
        }
        @CustomType.Setter
        public Builder retentionInDays(Integer retentionInDays) {
            this.retentionInDays = Objects.requireNonNull(retentionInDays);
            return this;
        }
        @CustomType.Setter
        public Builder tags(Map<String,String> tags) {
            this.tags = Objects.requireNonNull(tags);
            return this;
        }
        @CustomType.Setter
        public Builder workspaceId(String workspaceId) {
            this.workspaceId = Objects.requireNonNull(workspaceId);
            return this;
        }
        public GetInsightsResult build() {
            final var o = new GetInsightsResult();
            o.appId = appId;
            o.applicationType = applicationType;
            o.connectionString = connectionString;
            o.id = id;
            o.instrumentationKey = instrumentationKey;
            o.location = location;
            o.name = name;
            o.resourceGroupName = resourceGroupName;
            o.retentionInDays = retentionInDays;
            o.tags = tags;
            o.workspaceId = workspaceId;
            return o;
        }
    }
}
