<gh_stars>0// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** 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.Tctest.Cam
{
    [TctestResourceType("tctest:Cam/oIDCSSO:OIDCSSO")]
    public partial class OIDCSSO : Pulumi.CustomResource
    {
        /// <summary>
        /// Authorization request Endpoint, OpenID Connect identity provider authorization address. Corresponds to the value of the
        /// `authorization_endpoint` field in the Openid-configuration provided by the Enterprise IdP.
        /// </summary>
        [Output("authorizationEndpoint")]
        public Output<string> AuthorizationEndpoint { get; private set; } = null!;

        /// <summary>
        /// Client ID, the client ID registered with the OpenID Connect identity provider.
        /// </summary>
        [Output("clientId")]
        public Output<string> ClientId { get; private set; } = null!;

        /// <summary>
        /// The signature public key requires base64_encode. Verify the public key signed by the OpenID Connect identity provider ID
        /// Token. For the security of your account, we recommend that you rotate the signed public key regularly.
        /// </summary>
        [Output("identityKey")]
        public Output<string> IdentityKey { get; private set; } = null!;

        /// <summary>
        /// Identity provider URL. OpenID Connect identity provider identity.Corresponds to the value of the `issuer` field in the
        /// Openid-configuration provided by the Enterprise IdP.
        /// </summary>
        [Output("identityUrl")]
        public Output<string> IdentityUrl { get; private set; } = null!;

        /// <summary>
        /// Map field names. Which field in the IdP's id_token maps to the user name of the subuser, usually the sub or name field.
        /// </summary>
        [Output("mappingFiled")]
        public Output<string> MappingFiled { get; private set; } = null!;

        /// <summary>
        /// Authorize the request Forsonse mode. Authorization request return mode, form_post and frogment two optional modes,
        /// recommended to select form_post mode.
        /// </summary>
        [Output("responseMode")]
        public Output<string> ResponseMode { get; private set; } = null!;

        /// <summary>
        /// Authorization requests The Response type, with a fixed value id_token.
        /// </summary>
        [Output("responseType")]
        public Output<string> ResponseType { get; private set; } = null!;

        /// <summary>
        /// Authorize the request Scope. openid; email; profile; Authorization request information scope. The default is required
        /// openid.
        /// </summary>
        [Output("scopes")]
        public Output<ImmutableArray<string>> Scopes { get; private set; } = null!;


        /// <summary>
        /// Create a OIDCSSO resource with the given unique name, arguments, and options.
        /// </summary>
        ///
        /// <param name="name">The unique name of the resource</param>
        /// <param name="args">The arguments used to populate this resource's properties</param>
        /// <param name="options">A bag of options that control this resource's behavior</param>
        public OIDCSSO(string name, OIDCSSOArgs args, CustomResourceOptions? options = null)
            : base("tctest:Cam/oIDCSSO:OIDCSSO", name, args ?? new OIDCSSOArgs(), MakeResourceOptions(options, ""))
        {
        }

        private OIDCSSO(string name, Input<string> id, OIDCSSOState? state = null, CustomResourceOptions? options = null)
            : base("tctest:Cam/oIDCSSO:OIDCSSO", name, state, MakeResourceOptions(options, id))
        {
        }

        private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
        {
            var defaultOptions = new CustomResourceOptions
            {
                Version = Utilities.Version,
            };
            var merged = CustomResourceOptions.Merge(defaultOptions, options);
            // Override the ID if one was specified for consistency with other language SDKs.
            merged.Id = id ?? merged.Id;
            return merged;
        }
        /// <summary>
        /// Get an existing OIDCSSO resource's state with the given name, ID, and optional extra
        /// properties used to qualify the lookup.
        /// </summary>
        ///
        /// <param name="name">The unique name of the resulting resource.</param>
        /// <param name="id">The unique provider ID of the resource to lookup.</param>
        /// <param name="state">Any extra arguments used during the lookup.</param>
        /// <param name="options">A bag of options that control this resource's behavior</param>
        public static OIDCSSO Get(string name, Input<string> id, OIDCSSOState? state = null, CustomResourceOptions? options = null)
        {
            return new OIDCSSO(name, id, state, options);
        }
    }

    public sealed class OIDCSSOArgs : Pulumi.ResourceArgs
    {
        /// <summary>
        /// Authorization request Endpoint, OpenID Connect identity provider authorization address. Corresponds to the value of the
        /// `authorization_endpoint` field in the Openid-configuration provided by the Enterprise IdP.
        /// </summary>
        [Input("authorizationEndpoint", required: true)]
        public Input<string> AuthorizationEndpoint { get; set; } = null!;

        /// <summary>
        /// Client ID, the client ID registered with the OpenID Connect identity provider.
        /// </summary>
        [Input("clientId", required: true)]
        public Input<string> ClientId { get; set; } = null!;

        /// <summary>
        /// The signature public key requires base64_encode. Verify the public key signed by the OpenID Connect identity provider ID
        /// Token. For the security of your account, we recommend that you rotate the signed public key regularly.
        /// </summary>
        [Input("identityKey", required: true)]
        public Input<string> IdentityKey { get; set; } = null!;

        /// <summary>
        /// Identity provider URL. OpenID Connect identity provider identity.Corresponds to the value of the `issuer` field in the
        /// Openid-configuration provided by the Enterprise IdP.
        /// </summary>
        [Input("identityUrl", required: true)]
        public Input<string> IdentityUrl { get; set; } = null!;

        /// <summary>
        /// Map field names. Which field in the IdP's id_token maps to the user name of the subuser, usually the sub or name field.
        /// </summary>
        [Input("mappingFiled", required: true)]
        public Input<string> MappingFiled { get; set; } = null!;

        /// <summary>
        /// Authorize the request Forsonse mode. Authorization request return mode, form_post and frogment two optional modes,
        /// recommended to select form_post mode.
        /// </summary>
        [Input("responseMode", required: true)]
        public Input<string> ResponseMode { get; set; } = null!;

        /// <summary>
        /// Authorization requests The Response type, with a fixed value id_token.
        /// </summary>
        [Input("responseType", required: true)]
        public Input<string> ResponseType { get; set; } = null!;

        [Input("scopes")]
        private InputList<string>? _scopes;

        /// <summary>
        /// Authorize the request Scope. openid; email; profile; Authorization request information scope. The default is required
        /// openid.
        /// </summary>
        public InputList<string> Scopes
        {
            get => _scopes ?? (_scopes = new InputList<string>());
            set => _scopes = value;
        }

        public OIDCSSOArgs()
        {
        }
    }

    public sealed class OIDCSSOState : Pulumi.ResourceArgs
    {
        /// <summary>
        /// Authorization request Endpoint, OpenID Connect identity provider authorization address. Corresponds to the value of the
        /// `authorization_endpoint` field in the Openid-configuration provided by the Enterprise IdP.
        /// </summary>
        [Input("authorizationEndpoint")]
        public Input<string>? AuthorizationEndpoint { get; set; }

        /// <summary>
        /// Client ID, the client ID registered with the OpenID Connect identity provider.
        /// </summary>
        [Input("clientId")]
        public Input<string>? ClientId { get; set; }

        /// <summary>
        /// The signature public key requires base64_encode. Verify the public key signed by the OpenID Connect identity provider ID
        /// Token. For the security of your account, we recommend that you rotate the signed public key regularly.
        /// </summary>
        [Input("identityKey")]
        public Input<string>? IdentityKey { get; set; }

        /// <summary>
        /// Identity provider URL. OpenID Connect identity provider identity.Corresponds to the value of the `issuer` field in the
        /// Openid-configuration provided by the Enterprise IdP.
        /// </summary>
        [Input("identityUrl")]
        public Input<string>? IdentityUrl { get; set; }

        /// <summary>
        /// Map field names. Which field in the IdP's id_token maps to the user name of the subuser, usually the sub or name field.
        /// </summary>
        [Input("mappingFiled")]
        public Input<string>? MappingFiled { get; set; }

        /// <summary>
        /// Authorize the request Forsonse mode. Authorization request return mode, form_post and frogment two optional modes,
        /// recommended to select form_post mode.
        /// </summary>
        [Input("responseMode")]
        public Input<string>? ResponseMode { get; set; }

        /// <summary>
        /// Authorization requests The Response type, with a fixed value id_token.
        /// </summary>
        [Input("responseType")]
        public Input<string>? ResponseType { get; set; }

        [Input("scopes")]
        private InputList<string>? _scopes;

        /// <summary>
        /// Authorize the request Scope. openid; email; profile; Authorization request information scope. The default is required
        /// openid.
        /// </summary>
        public InputList<string> Scopes
        {
            get => _scopes ?? (_scopes = new InputList<string>());
            set => _scopes = value;
        }

        public OIDCSSOState()
        {
        }
    }
}
