// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.AzureNative.SecurityInsights.V20230601Preview
{
    public static class GetGCPDataConnector
    {
        /// <summary>
        /// Gets a data connector.
        /// </summary>
        public static Task<GetGCPDataConnectorResult> InvokeAsync(GetGCPDataConnectorArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetGCPDataConnectorResult>("azure-native:securityinsights/v20230601preview:getGCPDataConnector", args ?? new GetGCPDataConnectorArgs(), options.WithDefaults());

        /// <summary>
        /// Gets a data connector.
        /// </summary>
        public static Output<GetGCPDataConnectorResult> Invoke(GetGCPDataConnectorInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetGCPDataConnectorResult>("azure-native:securityinsights/v20230601preview:getGCPDataConnector", args ?? new GetGCPDataConnectorInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetGCPDataConnectorArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Connector ID
        /// </summary>
        [Input("dataConnectorId", required: true)]
        public string DataConnectorId { get; set; } = null!;

        /// <summary>
        /// The name of the resource group. The name is case insensitive.
        /// </summary>
        [Input("resourceGroupName", required: true)]
        public string ResourceGroupName { get; set; } = null!;

        /// <summary>
        /// The name of the workspace.
        /// </summary>
        [Input("workspaceName", required: true)]
        public string WorkspaceName { get; set; } = null!;

        public GetGCPDataConnectorArgs()
        {
        }
        public static new GetGCPDataConnectorArgs Empty => new GetGCPDataConnectorArgs();
    }

    public sealed class GetGCPDataConnectorInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Connector ID
        /// </summary>
        [Input("dataConnectorId", required: true)]
        public Input<string> DataConnectorId { get; set; } = null!;

        /// <summary>
        /// The name of the resource group. The name is case insensitive.
        /// </summary>
        [Input("resourceGroupName", required: true)]
        public Input<string> ResourceGroupName { get; set; } = null!;

        /// <summary>
        /// The name of the workspace.
        /// </summary>
        [Input("workspaceName", required: true)]
        public Input<string> WorkspaceName { get; set; } = null!;

        public GetGCPDataConnectorInvokeArgs()
        {
        }
        public static new GetGCPDataConnectorInvokeArgs Empty => new GetGCPDataConnectorInvokeArgs();
    }


    [OutputType]
    public sealed class GetGCPDataConnectorResult
    {
        /// <summary>
        /// The auth section of the connector.
        /// </summary>
        public readonly Outputs.GCPAuthPropertiesResponse Auth;
        /// <summary>
        /// The name of the connector definition that represents the UI config.
        /// </summary>
        public readonly string ConnectorDefinitionName;
        /// <summary>
        /// The configuration of the destination of the data.
        /// </summary>
        public readonly Outputs.DCRConfigurationResponse? DcrConfig;
        /// <summary>
        /// Etag of the azure resource
        /// </summary>
        public readonly string? Etag;
        /// <summary>
        /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The kind of the data connector
        /// Expected value is 'GCP'.
        /// </summary>
        public readonly string Kind;
        /// <summary>
        /// The name of the resource
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// The request section of the connector.
        /// </summary>
        public readonly Outputs.GCPRequestPropertiesResponse Request;
        /// <summary>
        /// Azure Resource Manager metadata containing createdBy and modifiedBy information.
        /// </summary>
        public readonly Outputs.SystemDataResponse SystemData;
        /// <summary>
        /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
        /// </summary>
        public readonly string Type;

        [OutputConstructor]
        private GetGCPDataConnectorResult(
            Outputs.GCPAuthPropertiesResponse auth,

            string connectorDefinitionName,

            Outputs.DCRConfigurationResponse? dcrConfig,

            string? etag,

            string id,

            string kind,

            string name,

            Outputs.GCPRequestPropertiesResponse request,

            Outputs.SystemDataResponse systemData,

            string type)
        {
            Auth = auth;
            ConnectorDefinitionName = connectorDefinitionName;
            DcrConfig = dcrConfig;
            Etag = etag;
            Id = id;
            Kind = kind;
            Name = name;
            Request = request;
            SystemData = systemData;
            Type = type;
        }
    }
}
