%% SPDX-FileCopyrightText: 2023 Erlang Ecosystem Foundation %% SPDX-License-Identifier: Apache-2.0 -ifndef(oidcc_provider_configuration_HRL). %% @see https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata %% @see https://datatracker.ietf.org/doc/html/draft-jones-oauth-discovery-01#section-4.1 %% @see https://openid.net/specs/openid-connect-rpinitiated-1_0.html#OPMetadata -record(oidcc_provider_configuration, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) { issuer :: uri_string:uri_string(), issuer_regex :: binary() | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) authorization_endpoint :: uri_string:uri_string(), %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) token_endpoint = undefined :: uri_string:uri_string() | undefined, %% OpenID Connect Discovery 1.0 userinfo_endpoint = undefined :: uri_string:uri_string() | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) jwks_uri = undefined :: uri_string:uri_string() | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) registration_endpoint = undefined :: uri_string:uri_string() | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) scopes_supported :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) response_types_supported :: [binary()], %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) response_modes_supported = [<<"query">>, <<"fragment">>] :: [binary()], %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) grant_types_supported = [<<"authorization_code">>, <<"implicit">>] :: [binary()], %% OpenID Connect Discovery 1.0 acr_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 subject_types_supported :: [pairwise | public], %% OpenID Connect Discovery 1.0 id_token_signing_alg_values_supported :: [binary()], %% OpenID Connect Discovery 1.0 id_token_encryption_alg_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 id_token_encryption_enc_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 userinfo_signing_alg_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 userinfo_encryption_alg_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 userinfo_encryption_enc_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 request_object_signing_alg_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 request_object_encryption_alg_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 request_object_encryption_enc_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) token_endpoint_auth_methods_supported = [<<"client_secret_basic">>] :: [binary()], %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) token_endpoint_auth_signing_alg_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 display_values_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 claim_types_supported = [normal] :: [normal | aggregated | distributed], %% OpenID Connect Discovery 1.0 claims_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) service_documentation = undefined :: uri_string:uri_string() | undefined, %% OpenID Connect Discovery 1.0 claims_locales_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) ui_locales_supported = undefined :: [binary()] | undefined, %% OpenID Connect Discovery 1.0 claims_parameter_supported = false :: boolean(), %% OpenID Connect Discovery 1.0 request_parameter_supported = false :: boolean(), %% OpenID Connect Discovery 1.0 request_uri_parameter_supported = true :: boolean(), %% OpenID Connect Discovery 1.0 require_request_uri_registration = false :: boolean(), %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) op_policy_uri = undefined :: uri_string:uri_string() | undefined, %% OpenID Connect Discovery 1.0 / OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) op_tos_uri = undefined :: uri_string:uri_string() | undefined, %% OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) revocation_endpoint = undefined :: uri_string:uri_string() | undefined, %% OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) revocation_endpoint_auth_methods_supported = [<<"client_secret_basic">>] :: [binary()], %% OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) revocation_endpoint_auth_signing_alg_values_supported = undefined :: [binary()] | undefined, %% OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) introspection_endpoint = undefined :: uri_string:uri_string() | undefined, %% OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) introspection_endpoint_auth_methods_supported = [<<"client_secret_basic">>] :: [binary()], %% OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) introspection_endpoint_auth_signing_alg_values_supported = undefined :: [binary()] | undefined, %% OAuth 2.0 Discovery (draft-jones-oauth-discovery-01) code_challenge_methods_supported = undefined :: [binary()] | undefined, %% OpenID Connect RP-Initiated Logout 1.0 end_session_endpoint = undefined :: uri_string:uri_string() | undefined, %% OAuth 2.0 Pushed Authorization Requests require_pushed_authorization_requests = false :: boolean(), %% OAuth 2.0 Pushed Authorization Requests pushed_authorization_request_endpoint = undefined :: uri_string:uri_string() | undefined, %% JWT Secured Authorization Response Mode for OAuth 2.0 (JARM) authorization_signing_alg_values_supported = undefined :: [binary()] | undefined, %% JWT Secured Authorization Response Mode for OAuth 2.0 (JARM) authorization_encryption_alg_values_supported = undefined :: [binary()] | undefined, %% JWT Secured Authorization Response Mode for OAuth 2.0 (JARM) authorization_encryption_enc_values_supported = undefined :: [binary()] | undefined, %% OAuth 2.0 Authorization Server Issuer Identification (RFC9207) authorization_response_iss_parameter_supported = false :: boolean(), %% OAuth 2.0 Demonstrating Proof of Possession (DPoP) dpop_signing_alg_values_supported = undefined :: [binary()] | undefined, %% RFC 9101 The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR) require_signed_request_object = false :: boolean(), %% RFC 8705 OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens mtls_endpoint_aliases = #{} :: #{binary() => uri_string:uri_string()}, %% RFC 8705 OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens tls_client_certificate_bound_access_tokens = false :: boolean(), %% Unknown Fields extra_fields = #{} :: #{binary() => term()} } ). -define(oidcc_provider_configuration_HRL, 1). -endif.