pulumi-fusionauth
Version:
A Pulumi package for managing FusionAuth instances.
213 lines (212 loc) • 10.6 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* ## # Steam Identity Provider Resource
*
* The Steam identity provider type will use the Steam OAuth login API. It will also provide a Login with Steam button on FusionAuth’s login page that will direct a user to the Steam login page. The Steam login uses the implicit OAuth grant and will return to the callback URL with token and state in the URL Fragment. This is handled by the FusionAuth /oauth2/implicit javascript function to pass those values to the /oauth2/callback endpoint.
*
* This identity provider will call Steam’s API to load the Steam user’s personaname and use that as username to lookup or create a user in FusionAuth depending on the linking strategy configured for this identity provider. However, Steam does not allow access to user emails, so neither email linking strategy can be used and user’s will not be able to login or be created.
*
* FusionAuth will also store the Steam token that is returned from the Steam login in the link between the user and the identity provider. This token can be used by an application to make further requests to Steam APIs on behalf of the user.
*
* [Steam Identity Provider APIs](https://fusionauth.io/docs/v1/tech/apis/identity-providers/steam/)
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as fusionauth from "pulumi-fusionauth";
*
* const steam = new fusionauth.FusionAuthIdpSteam("steam", {
* applicationConfigurations: [{
* applicationId: fusionauth_application.GPS_Insight.id,
* createRegistration: true,
* enabled: true,
* }],
* buttonText: "Login with Steam",
* clientId: "0eb1ce3c-2fb1-4ae9-b361-d49fc6e764cc",
* scope: "Xboxlive.signin Xboxlive.offline_access",
* webApiKey: "HG0A97ACKPQ5ZLPU0007BN6674OA25TY",
* });
* ```
*/
export declare class FusionAuthIdpSteam extends pulumi.CustomResource {
/**
* Get an existing FusionAuthIdpSteam 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?: FusionAuthIdpSteamState, opts?: pulumi.CustomResourceOptions): FusionAuthIdpSteam;
/**
* Returns true if the given object is an instance of FusionAuthIdpSteam. 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 FusionAuthIdpSteam;
/**
* Determines which Steam API to utilize. The possible values are: `Partner` and `Public`
*/
readonly apiMode: pulumi.Output<string | undefined>;
/**
* The configuration for each Application that the identity provider is enabled for.
*/
readonly applicationConfigurations: pulumi.Output<outputs.FusionAuthIdpSteamApplicationConfiguration[] | 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 Steam client id for your Application. This value is retrieved from the Steam developer website when you setup your Steam developer account.
*/
readonly clientId: pulumi.Output<string>;
/**
* Determines if debug is enabled for this provider. When enabled, each time this provider is invoked to reconcile a login an Event Log will be created.
*/
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 ID to use for the new identity provider. If not specified a secure random UUID will be generated.
*/
readonly idpId: pulumi.Output<string | 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 | undefined>;
/**
* The linking strategy to use when creating the link between the {idp_display_name} Identity Provider and the user.
*/
readonly linkingStrategy: pulumi.Output<string>;
/**
* The top-level scope that you are requesting from Steam.
*/
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.FusionAuthIdpSteamTenantConfiguration[] | undefined>;
/**
* The top-level web API key to use with the Steam Identity Provider when retrieving the player summary info. This value is retrieved from the Steam developer website when you setup your Steam developer account.
*/
readonly webApiKey: pulumi.Output<string>;
/**
* Create a FusionAuthIdpSteam 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: FusionAuthIdpSteamArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering FusionAuthIdpSteam resources.
*/
export interface FusionAuthIdpSteamState {
/**
* Determines which Steam API to utilize. The possible values are: `Partner` and `Public`
*/
apiMode?: pulumi.Input<string>;
/**
* The configuration for each Application that the identity provider is enabled for.
*/
applicationConfigurations?: pulumi.Input<pulumi.Input<inputs.FusionAuthIdpSteamApplicationConfiguration>[]>;
/**
* The top-level button text to use on the FusionAuth login page for this Identity Provider.
*/
buttonText?: pulumi.Input<string>;
/**
* The top-level Steam client id for your Application. This value is retrieved from the Steam developer website when you setup your Steam developer account.
*/
clientId?: pulumi.Input<string>;
/**
* Determines if debug is enabled for this provider. When enabled, each time this provider is invoked to reconcile a login an Event Log will be created.
*/
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 ID to use for the new identity provider. If not specified a secure random UUID will be generated.
*/
idpId?: pulumi.Input<string>;
/**
* 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 {idp_display_name} Identity Provider and the user.
*/
linkingStrategy?: pulumi.Input<string>;
/**
* The top-level scope that you are requesting from Steam.
*/
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.FusionAuthIdpSteamTenantConfiguration>[]>;
/**
* The top-level web API key to use with the Steam Identity Provider when retrieving the player summary info. This value is retrieved from the Steam developer website when you setup your Steam developer account.
*/
webApiKey?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a FusionAuthIdpSteam resource.
*/
export interface FusionAuthIdpSteamArgs {
/**
* Determines which Steam API to utilize. The possible values are: `Partner` and `Public`
*/
apiMode?: pulumi.Input<string>;
/**
* The configuration for each Application that the identity provider is enabled for.
*/
applicationConfigurations?: pulumi.Input<pulumi.Input<inputs.FusionAuthIdpSteamApplicationConfiguration>[]>;
/**
* The top-level button text to use on the FusionAuth login page for this Identity Provider.
*/
buttonText: pulumi.Input<string>;
/**
* The top-level Steam client id for your Application. This value is retrieved from the Steam developer website when you setup your Steam developer account.
*/
clientId: pulumi.Input<string>;
/**
* Determines if debug is enabled for this provider. When enabled, each time this provider is invoked to reconcile a login an Event Log will be created.
*/
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 ID to use for the new identity provider. If not specified a secure random UUID will be generated.
*/
idpId?: pulumi.Input<string>;
/**
* 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 {idp_display_name} Identity Provider and the user.
*/
linkingStrategy?: pulumi.Input<string>;
/**
* The top-level scope that you are requesting from Steam.
*/
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.FusionAuthIdpSteamTenantConfiguration>[]>;
/**
* The top-level web API key to use with the Steam Identity Provider when retrieving the player summary info. This value is retrieved from the Steam developer website when you setup your Steam developer account.
*/
webApiKey: pulumi.Input<string>;
}