UNPKG

pulumi-fusionauth

Version:

A Pulumi package for managing FusionAuth instances.

222 lines (221 loc) 13.2 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * ## # LinkedIn Identity Provider Resource * * The LinkedIn identity provider type will use OAuth 2.0 to authenticate a user with LinkedIn. It will also provide a * `Login with LinkedIn` button on FusionAuth’s login page that will direct a user to the LinkedIn login page. * Additionally, after successful user authentication, this identity provider will call LinkedIn’s `/v2/me` and * `/v2/emailAddress` APIs to load additional details about the user and store them in FusionAuth. * * The email address returned by the LinkedIn `/v2/emailAddress` API will be used to create or look up the existing user. * Additional claims returned by LinkedIn can be used to reconcile the User to FusionAuth by using a LinkedIn Reconcile * lambda. Unless you assign a reconcile lambda to this provider, only the email address will be used from the available * claims returned by LinkedIn. * * FusionAuth will also store the LinkedIn `accessToken` returned from the login endpoint in the `identityProviderLink` * object. This object is accessible using the Link API. * * The `identityProviderLink` object stores the token so that you can use it in your application to call LinkedIn APIs on * behalf of the user if desired. * * [LinkedIn Identity Providers API](https://fusionauth.io/docs/v1/tech/apis/identity-providers/linkedin) * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as fusionauth from "pulumi-fusionauth"; * * const linkedin = new fusionauth.FusionAuthIdpLinkedIn("linkedin", { * applicationConfigurations: [{ * applicationId: fusionauth_application.myapp.id, * createRegistration: true, * enabled: true, * }], * buttonText: "Login with LinkedIn", * debug: false, * enabled: true, * clientId: "9876543210", * clientSecret: "716a572f917640698cdb99e9d7e64115", * scope: "r_emailaddress r_liteprofile", * }); * ``` */ export declare class FusionAuthIdpLinkedIn extends pulumi.CustomResource { /** * Get an existing FusionAuthIdpLinkedIn resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: FusionAuthIdpLinkedInState, opts?: pulumi.CustomResourceOptions): FusionAuthIdpLinkedIn; /** * Returns true if the given object is an instance of FusionAuthIdpLinkedIn. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is FusionAuthIdpLinkedIn; /** * The configuration for each Application that the identity provider is enabled for. */ readonly applicationConfigurations: pulumi.Output<outputs.FusionAuthIdpLinkedInApplicationConfiguration[] | undefined>; /** * The top-level button text to use on the FusionAuth login page for this Identity Provider. */ readonly buttonText: pulumi.Output<string>; /** * The top-level LinkedIn client id for your Application. This value is retrieved from the LinkedIn developer website when you set up your LinkedIn app. */ readonly clientId: pulumi.Output<string>; /** * The top-level client secret to use with the LinkedIn Identity Provider when retrieving the long-lived token. This value is retrieved from the LinkedIn developer website when you set up your LinkedIn app. */ readonly clientSecret: pulumi.Output<string>; /** * Determines if debug is enabled for this provider. When enabled, an Event Log is created each time this provider is invoked to reconcile a login. */ readonly debug: pulumi.Output<boolean | undefined>; /** * Determines if this provider is enabled. If it is false then it will be disabled globally. */ readonly enabled: pulumi.Output<boolean | undefined>; /** * The unique Id of the lambda to used during the user reconcile process to map custom claims from the external identity provider to the FusionAuth user. */ readonly lambdaReconcileId: pulumi.Output<string>; /** * The linking strategy to use when creating the link between the Facebook Identity Provider and the user. * The valid values are: * * `CreatePendingLink` - Do not automatically link, instead return a pending link identifier that can be used to link to an existing user. * * `LinkAnonymously` - Always create a link based upon the unique Id returned by the identity provider. A username or email is not required and will not be used to link the user. A reconcile lambda will not be used in this configuration. * * `LinkByEmail` - Link to an existing user based upon email. A user will be created with the email returned by the identity provider if one does not already exist. * * `LinkByEmailForExistingUser` - Only link to an existing user based upon email. A user will not be created if one does not already exist with email returned by the identity provider. * * `LinkByUsername` - Link to an existing user based upon username. A user will be created with the username returned by the identity provider if one does not already exist. * * `LinkByUsernameForExistingUser` - Only link to an existing user based upon username. A user will not be created if one does not already exist with username returned by the identity provider. */ readonly linkingStrategy: pulumi.Output<string>; /** * The top-level scope that you are requesting from LinkedIn. */ readonly scope: pulumi.Output<string | undefined>; /** * The configuration for each Tenant that limits the number of links a user may have for a particular identity provider. */ readonly tenantConfigurations: pulumi.Output<outputs.FusionAuthIdpLinkedInTenantConfiguration[] | undefined>; /** * Create a FusionAuthIdpLinkedIn resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: FusionAuthIdpLinkedInArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FusionAuthIdpLinkedIn resources. */ export interface FusionAuthIdpLinkedInState { /** * The configuration for each Application that the identity provider is enabled for. */ applicationConfigurations?: pulumi.Input<pulumi.Input<inputs.FusionAuthIdpLinkedInApplicationConfiguration>[]>; /** * The top-level button text to use on the FusionAuth login page for this Identity Provider. */ buttonText?: pulumi.Input<string>; /** * The top-level LinkedIn client id for your Application. This value is retrieved from the LinkedIn developer website when you set up your LinkedIn app. */ clientId?: pulumi.Input<string>; /** * The top-level client secret to use with the LinkedIn Identity Provider when retrieving the long-lived token. This value is retrieved from the LinkedIn developer website when you set up your LinkedIn app. */ clientSecret?: pulumi.Input<string>; /** * Determines if debug is enabled for this provider. When enabled, an Event Log is created each time this provider is invoked to reconcile a login. */ debug?: pulumi.Input<boolean>; /** * Determines if this provider is enabled. If it is false then it will be disabled globally. */ enabled?: pulumi.Input<boolean>; /** * The unique Id of the lambda to used during the user reconcile process to map custom claims from the external identity provider to the FusionAuth user. */ lambdaReconcileId?: pulumi.Input<string>; /** * The linking strategy to use when creating the link between the Facebook Identity Provider and the user. * The valid values are: * * `CreatePendingLink` - Do not automatically link, instead return a pending link identifier that can be used to link to an existing user. * * `LinkAnonymously` - Always create a link based upon the unique Id returned by the identity provider. A username or email is not required and will not be used to link the user. A reconcile lambda will not be used in this configuration. * * `LinkByEmail` - Link to an existing user based upon email. A user will be created with the email returned by the identity provider if one does not already exist. * * `LinkByEmailForExistingUser` - Only link to an existing user based upon email. A user will not be created if one does not already exist with email returned by the identity provider. * * `LinkByUsername` - Link to an existing user based upon username. A user will be created with the username returned by the identity provider if one does not already exist. * * `LinkByUsernameForExistingUser` - Only link to an existing user based upon username. A user will not be created if one does not already exist with username returned by the identity provider. */ linkingStrategy?: pulumi.Input<string>; /** * The top-level scope that you are requesting from LinkedIn. */ scope?: pulumi.Input<string>; /** * The configuration for each Tenant that limits the number of links a user may have for a particular identity provider. */ tenantConfigurations?: pulumi.Input<pulumi.Input<inputs.FusionAuthIdpLinkedInTenantConfiguration>[]>; } /** * The set of arguments for constructing a FusionAuthIdpLinkedIn resource. */ export interface FusionAuthIdpLinkedInArgs { /** * The configuration for each Application that the identity provider is enabled for. */ applicationConfigurations?: pulumi.Input<pulumi.Input<inputs.FusionAuthIdpLinkedInApplicationConfiguration>[]>; /** * The top-level button text to use on the FusionAuth login page for this Identity Provider. */ buttonText: pulumi.Input<string>; /** * The top-level LinkedIn client id for your Application. This value is retrieved from the LinkedIn developer website when you set up your LinkedIn app. */ clientId: pulumi.Input<string>; /** * The top-level client secret to use with the LinkedIn Identity Provider when retrieving the long-lived token. This value is retrieved from the LinkedIn developer website when you set up your LinkedIn app. */ clientSecret: pulumi.Input<string>; /** * Determines if debug is enabled for this provider. When enabled, an Event Log is created each time this provider is invoked to reconcile a login. */ debug?: pulumi.Input<boolean>; /** * Determines if this provider is enabled. If it is false then it will be disabled globally. */ enabled?: pulumi.Input<boolean>; /** * The unique Id of the lambda to used during the user reconcile process to map custom claims from the external identity provider to the FusionAuth user. */ lambdaReconcileId?: pulumi.Input<string>; /** * The linking strategy to use when creating the link between the Facebook Identity Provider and the user. * The valid values are: * * `CreatePendingLink` - Do not automatically link, instead return a pending link identifier that can be used to link to an existing user. * * `LinkAnonymously` - Always create a link based upon the unique Id returned by the identity provider. A username or email is not required and will not be used to link the user. A reconcile lambda will not be used in this configuration. * * `LinkByEmail` - Link to an existing user based upon email. A user will be created with the email returned by the identity provider if one does not already exist. * * `LinkByEmailForExistingUser` - Only link to an existing user based upon email. A user will not be created if one does not already exist with email returned by the identity provider. * * `LinkByUsername` - Link to an existing user based upon username. A user will be created with the username returned by the identity provider if one does not already exist. * * `LinkByUsernameForExistingUser` - Only link to an existing user based upon username. A user will not be created if one does not already exist with username returned by the identity provider. */ linkingStrategy?: pulumi.Input<string>; /** * The top-level scope that you are requesting from LinkedIn. */ scope?: pulumi.Input<string>; /** * The configuration for each Tenant that limits the number of links a user may have for a particular identity provider. */ tenantConfigurations?: pulumi.Input<pulumi.Input<inputs.FusionAuthIdpLinkedInTenantConfiguration>[]>; }