{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ad/json-schema/azure-ad-microsoft-graph-b2x-identity-user-flow-schema.json",
  "title": "microsoft.graph.b2xIdentityUserFlow",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ad-identity-b2xidentityuserflow-api-openapi.yml#/components/schemas/microsoft.graph.b2xIdentityUserFlow",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.identityUserFlow"
    },
    {
      "title": "b2xIdentityUserFlow",
      "type": "object",
      "properties": {
        "apiConnectorConfiguration": {
          "$ref": "#/$defs/microsoft.graph.userFlowApiConnectorConfiguration"
        },
        "identityProviders": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.identityProvider"
          },
          "description": "The identity providers included in the user flow.",
          "x-ms-navigationProperty": true
        },
        "languages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.userFlowLanguageConfiguration"
          },
          "description": "The languages supported for customization within the user flow. Language customization is enabled by default in self-service sign-up user flow. You can't create custom languages in self-service sign-up user flows.",
          "x-ms-navigationProperty": true
        },
        "userAttributeAssignments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.identityUserFlowAttributeAssignment"
          },
          "description": "The user attribute assignments included in the user flow.",
          "x-ms-navigationProperty": true
        },
        "userFlowIdentityProviders": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.identityProviderBase"
          },
          "x-ms-navigationProperty": true
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.apiAuthenticationConfigurationBase": {
      "title": "apiAuthenticationConfigurationBase",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.identityApiConnector": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "identityApiConnector",
          "type": "object",
          "properties": {
            "authenticationConfiguration": {
              "$ref": "#/$defs/microsoft.graph.apiAuthenticationConfigurationBase"
            },
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The name of the API connector."
            },
            "targetUrl": {
              "type": [
                "string",
                "null"
              ],
              "description": "The URL of the API endpoint to call."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.identityProvider": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "identityProvider",
          "type": "object",
          "properties": {
            "clientId": {
              "type": [
                "string",
                "null"
              ],
              "description": "The client ID for the application. This is the client ID obtained when registering the application with the identity provider. Required. Not nullable."
            },
            "clientSecret": {
              "type": [
                "string",
                "null"
              ],
              "description": "The client secret for the application. This is the client secret obtained when registering the application with the identity provider. This is write-only. A read operation will return .  Required. Not nullable."
            },
            "name": {
              "type": [
                "string",
                "null"
              ],
              "description": "The display name of the identity provider. Not nullable."
            },
            "type": {
              "type": [
                "string",
                "null"
              ],
              "description": "The identity provider type is a required field. For B2B scenario: Google, Facebook. For B2C scenario: Microsoft, Google, Amazon, LinkedIn, Facebook, GitHub, Twitter, Weibo, QQ, WeChat, OpenIDConnect. Not nullable."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.identityProviderBase": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "identityProviderBase",
          "type": "object",
          "properties": {
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The display name of the identity provider."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.identityUserFlow": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "identityUserFlow",
          "type": "object",
          "properties": {
            "userFlowType": {
              "$ref": "#/$defs/microsoft.graph.userFlowType"
            },
            "userFlowTypeVersion": {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.identityUserFlowAttribute": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "identityUserFlowAttribute",
          "type": "object",
          "properties": {
            "dataType": {
              "$ref": "#/$defs/microsoft.graph.identityUserFlowAttributeDataType"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "description": "The description of the user flow attribute that's shown to the user at the time of sign up."
            },
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The display name of the user flow attribute.  Supports $filter (eq, ne)."
            },
            "userFlowAttributeType": {
              "$ref": "#/$defs/microsoft.graph.identityUserFlowAttributeType"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.identityUserFlowAttributeAssignment": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "identityUserFlowAttributeAssignment",
          "type": "object",
          "properties": {
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The display name of the identityUserFlowAttribute within a user flow."
            },
            "isOptional": {
              "type": "boolean",
              "description": "Determines whether the identityUserFlowAttribute is optional. true means the user doesn't have to provide a value. false means the user can't complete sign-up without providing a value."
            },
            "requiresVerification": {
              "type": "boolean",
              "description": "Determines whether the identityUserFlowAttribute requires verification, and is only used for verifying the user's phone number or email address."
            },
            "userAttributeValues": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.userAttributeValuesItem"
              },
              "description": "The input options for the user flow attribute. Only applicable when the userInputType is radioSingleSelect, dropdownSingleSelect, or checkboxMultiSelect."
            },
            "userInputType": {
              "$ref": "#/$defs/microsoft.graph.identityUserFlowAttributeInputType"
            },
            "userAttribute": {
              "$ref": "#/$defs/microsoft.graph.identityUserFlowAttribute"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.identityUserFlowAttributeDataType": {
      "title": "identityUserFlowAttributeDataType",
      "enum": [
        "string",
        "boolean",
        "int64",
        "stringCollection",
        "dateTime",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.identityUserFlowAttributeInputType": {
      "title": "identityUserFlowAttributeInputType",
      "enum": [
        "textBox",
        "dateTimeDropdown",
        "radioSingleSelect",
        "dropdownSingleSelect",
        "emailBox",
        "checkboxMultiSelect"
      ],
      "type": "string"
    },
    "microsoft.graph.identityUserFlowAttributeType": {
      "title": "identityUserFlowAttributeType",
      "enum": [
        "builtIn",
        "custom",
        "required",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.userAttributeValuesItem": {
      "title": "userAttributeValuesItem",
      "type": "object",
      "properties": {
        "isDefault": {
          "type": "boolean",
          "description": "Determines whether the value is set as the default."
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The display name of the property displayed to the user in the user flow."
        },
        "value": {
          "type": [
            "string",
            "null"
          ],
          "description": "The value that is set when this item is selected."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.userFlowApiConnectorConfiguration": {
      "title": "userFlowApiConnectorConfiguration",
      "type": "object",
      "properties": {
        "postAttributeCollection": {
          "$ref": "#/$defs/microsoft.graph.identityApiConnector"
        },
        "postFederationSignup": {
          "$ref": "#/$defs/microsoft.graph.identityApiConnector"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.userFlowLanguageConfiguration": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "userFlowLanguageConfiguration",
          "type": "object",
          "properties": {
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The language name to display. This property is read-only."
            },
            "isEnabled": {
              "type": "boolean",
              "description": "Indicates whether the language is enabled within the user flow."
            },
            "defaultPages": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.userFlowLanguagePage"
              },
              "description": "Collection of pages with the default content to display in a user flow for a specified language. This collection doesn't allow any kind of modification.",
              "x-ms-navigationProperty": true
            },
            "overridesPages": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.userFlowLanguagePage"
              },
              "description": "Collection of pages with the overrides messages to display in a user flow for a specified language. This collection only allows you to modify the content of the page, any other modification isn't allowed (creation or deletion of pages).",
              "x-ms-navigationProperty": true
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.userFlowLanguagePage": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "userFlowLanguagePage",
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.userFlowType": {
      "title": "userFlowType",
      "enum": [
        "signUp",
        "signIn",
        "signUpOrSignIn",
        "passwordReset",
        "profileUpdate",
        "resourceOwner",
        "unknownFutureValue"
      ],
      "type": "string"
    }
  }
}