/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * OpenID Provider Configuration, described by <a href="https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig">OpenID Connect Core 1.0</a>. Fields are defined by the <a href="https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata">OpenID Provider Metadata</a>.
 * @export
 * @interface OIDConnectConfiguration
 */
export interface OIDConnectConfiguration {
    /**
     * The issuer of OIDC tokens and claims.
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    issuer?: string;
    /**
     * URL of the Synapse OAuth 2.0 Authorization Endpoint
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    authorization_endpoint?: string;
    /**
     * URL of the Synapse OAuth 2.0 Token Endpoint
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    token_endpoint?: string;
    /**
     * URL of the Synapse OAuth 2.0 Revocation Endpoint
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    revocation_endpoint?: string;
    /**
     * URL of the Synapse UserInfo Endpoint
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    userinfo_endpoint?: string;
    /**
     * URL of the Synapse OAuth 2.0 Token Introspection Endpoint
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    introspection_endpoint?: string;
    /**
     * URL of the Synapse JSON Web Key Set [JWK] document.
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    jwks_uri?: string;
    /**
     * URL of the Synapse Dynamic Client Registration Endpoint
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    registration_endpoint?: string;
    /**
     * List of the OAuth 2.0 scope values that Synapse supports.
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    scopes_supported?: Array<OIDConnectConfigurationScopesSupportedEnum>;
    /**
     * List of the OAuth 2.0 response types that Synapse supports.
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    response_types_supported?: Array<OIDConnectConfigurationResponseTypesSupportedEnum>;
    /**
     * List of the OAuth 2.0 grant types that Synapse supports.
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    grant_types_supported?: Array<OIDConnectConfigurationGrantTypesSupportedEnum>;
    /**
     * List of the subject identified types that Synapse supports.
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    subject_types_supported?: Array<OIDConnectConfigurationSubjectTypesSupportedEnum>;
    /**
     * List of the JWS signing algorithms (alg values) supported by Synapse for the ID Token to encode the Claims in a JWT
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    id_token_signing_alg_values_supported?: Array<OIDConnectConfigurationIdTokenSigningAlgValuesSupportedEnum>;
    /**
     * List of the JWS signing algorithms (alg values) supported by the UserInfo Endpoint to encode the Claims in a JWT
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    userinfo_signing_alg_values_supported?: Array<OIDConnectConfigurationUserinfoSigningAlgValuesSupportedEnum>;
    /**
     * List of signing algorithms supported for signing request objects, or '["none"]' if passing by 'request' parameter is unsupported.  See <a href="https://openid.net/specs/openid-connect-core-1_0.html#RequestObject">OpenID Connect Core 1.0</a>
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    request_object_signing_alg_values_supported?: Array<string>;
    /**
     * List of the Claim Names of the Claims that the Synapse MAY be able to supply values for.
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    claims_supported?: Array<OIDConnectConfigurationClaimsSupportedEnum>;
    /**
     * URL of a page containing human-readable information that developers might want or need to know when using Synapse.
     * @type {string}
     * @memberof OIDConnectConfiguration
     */
    service_documentation?: string;
    /**
     * Boolean value specifying whether Synapse supports use of the claims parameter, with true indicating support.
     * @type {boolean}
     * @memberof OIDConnectConfiguration
     */
    claims_parameter_supported?: boolean;
    /**
     * a list of Client Authentication methods supported by Synapse's Token Endpoint.  See <a href="https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication">OpenID Connect Core 1.0 Client Authentication</a>
     * @type {Array<string>}
     * @memberof OIDConnectConfiguration
     */
    token_endpoint_auth_methods_supported?: Array<string>;
}
/**
 * @export
 */
export declare const OIDConnectConfigurationScopesSupportedEnum: {
    readonly openid: "openid";
    readonly email: "email";
    readonly profile: "profile";
    readonly ga4gh_passport_v1: "ga4gh_passport_v1";
    readonly view: "view";
    readonly download: "download";
    readonly modify: "modify";
    readonly authorize: "authorize";
    readonly offline_access: "offline_access";
};
export type OIDConnectConfigurationScopesSupportedEnum = typeof OIDConnectConfigurationScopesSupportedEnum[keyof typeof OIDConnectConfigurationScopesSupportedEnum];
/**
 * @export
 */
export declare const OIDConnectConfigurationResponseTypesSupportedEnum: {
    readonly code: "code";
};
export type OIDConnectConfigurationResponseTypesSupportedEnum = typeof OIDConnectConfigurationResponseTypesSupportedEnum[keyof typeof OIDConnectConfigurationResponseTypesSupportedEnum];
/**
 * @export
 */
export declare const OIDConnectConfigurationGrantTypesSupportedEnum: {
    readonly authorization_code: "authorization_code";
    readonly refresh_token: "refresh_token";
};
export type OIDConnectConfigurationGrantTypesSupportedEnum = typeof OIDConnectConfigurationGrantTypesSupportedEnum[keyof typeof OIDConnectConfigurationGrantTypesSupportedEnum];
/**
 * @export
 */
export declare const OIDConnectConfigurationSubjectTypesSupportedEnum: {
    readonly pairwise: "pairwise";
};
export type OIDConnectConfigurationSubjectTypesSupportedEnum = typeof OIDConnectConfigurationSubjectTypesSupportedEnum[keyof typeof OIDConnectConfigurationSubjectTypesSupportedEnum];
/**
 * @export
 */
export declare const OIDConnectConfigurationIdTokenSigningAlgValuesSupportedEnum: {
    readonly RS256: "RS256";
};
export type OIDConnectConfigurationIdTokenSigningAlgValuesSupportedEnum = typeof OIDConnectConfigurationIdTokenSigningAlgValuesSupportedEnum[keyof typeof OIDConnectConfigurationIdTokenSigningAlgValuesSupportedEnum];
/**
 * @export
 */
export declare const OIDConnectConfigurationUserinfoSigningAlgValuesSupportedEnum: {
    readonly RS256: "RS256";
};
export type OIDConnectConfigurationUserinfoSigningAlgValuesSupportedEnum = typeof OIDConnectConfigurationUserinfoSigningAlgValuesSupportedEnum[keyof typeof OIDConnectConfigurationUserinfoSigningAlgValuesSupportedEnum];
/**
 * @export
 */
export declare const OIDConnectConfigurationClaimsSupportedEnum: {
    readonly iss: "iss";
    readonly sub: "sub";
    readonly aud: "aud";
    readonly iat: "iat";
    readonly nbf: "nbf";
    readonly exp: "exp";
    readonly auth_time: "auth_time";
    readonly email: "email";
    readonly email_verified: "email_verified";
    readonly given_name: "given_name";
    readonly family_name: "family_name";
    readonly company: "company";
    readonly team: "team";
    readonly userid: "userid";
    readonly user_name: "user_name";
    readonly orcid: "orcid";
    readonly is_certified: "is_certified";
    readonly is_validated: "is_validated";
    readonly validated_given_name: "validated_given_name";
    readonly validated_family_name: "validated_family_name";
    readonly validated_location: "validated_location";
    readonly validated_email: "validated_email";
    readonly validated_company: "validated_company";
    readonly validated_orcid: "validated_orcid";
    readonly validated_at: "validated_at";
    readonly refresh_token_id: "refresh_token_id";
    readonly token_type: "token_type";
    readonly ga4gh_passport_v1: "ga4gh_passport_v1";
};
export type OIDConnectConfigurationClaimsSupportedEnum = typeof OIDConnectConfigurationClaimsSupportedEnum[keyof typeof OIDConnectConfigurationClaimsSupportedEnum];
/**
 * Check if a given object implements the OIDConnectConfiguration interface.
 */
export declare function instanceOfOIDConnectConfiguration(value: object): value is OIDConnectConfiguration;
export declare function OIDConnectConfigurationFromJSON(json: any): OIDConnectConfiguration;
export declare function OIDConnectConfigurationFromJSONTyped(json: any, ignoreDiscriminator: boolean): OIDConnectConfiguration;
export declare function OIDConnectConfigurationToJSON(json: any): OIDConnectConfiguration;
export declare function OIDConnectConfigurationToJSONTyped(value?: OIDConnectConfiguration | null, ignoreDiscriminator?: boolean): any;
