{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/PasswordPolicy",
  "title": "PasswordPolicy",
  "type": "object",
  "properties": {
    "MinimumPasswordLength": {
      "allOf": [
        {
          "$ref": "#/components/schemas/minimumPasswordLengthType"
        },
        {
          "description": "Minimum length to require for IAM user passwords."
        }
      ]
    },
    "RequireSymbols": {
      "allOf": [
        {
          "$ref": "#/components/schemas/booleanType"
        },
        {
          "description": "<p>Specifies whether IAM user passwords must contain at least one of the following symbols:</p> <p>! @ # $ % ^ &amp; * ( ) _ + - = [ ] { } | '</p>"
        }
      ]
    },
    "RequireNumbers": {
      "allOf": [
        {
          "$ref": "#/components/schemas/booleanType"
        },
        {
          "description": "Specifies whether IAM user passwords must contain at least one numeric character (0 to 9)."
        }
      ]
    },
    "RequireUppercaseCharacters": {
      "allOf": [
        {
          "$ref": "#/components/schemas/booleanType"
        },
        {
          "description": "Specifies whether IAM user passwords must contain at least one uppercase character (A to Z)."
        }
      ]
    },
    "RequireLowercaseCharacters": {
      "allOf": [
        {
          "$ref": "#/components/schemas/booleanType"
        },
        {
          "description": "Specifies whether IAM user passwords must contain at least one lowercase character (a to z)."
        }
      ]
    },
    "AllowUsersToChangePassword": {
      "allOf": [
        {
          "$ref": "#/components/schemas/booleanType"
        },
        {
          "description": "Specifies whether IAM users are allowed to change their own password. Gives IAM users permissions to <code>iam:ChangePassword</code> for only their user and to the <code>iam:GetAccountPasswordPolicy</code> action. This option does not attach a permissions policy to each user, rather the permissions are applied at the account-level for all users by IAM."
        }
      ]
    },
    "ExpirePasswords": {
      "allOf": [
        {
          "$ref": "#/components/schemas/booleanType"
        },
        {
          "description": "Indicates whether passwords in the account expire. Returns true if <code>MaxPasswordAge</code> contains a value greater than 0. Returns false if MaxPasswordAge is 0 or not present."
        }
      ]
    },
    "MaxPasswordAge": {
      "allOf": [
        {
          "$ref": "#/components/schemas/maxPasswordAgeType"
        },
        {
          "description": "The number of days that an IAM user password is valid."
        }
      ]
    },
    "PasswordReusePrevention": {
      "allOf": [
        {
          "$ref": "#/components/schemas/passwordReusePreventionType"
        },
        {
          "description": "Specifies the number of previous passwords that IAM users are prevented from reusing."
        }
      ]
    },
    "HardExpiry": {
      "allOf": [
        {
          "$ref": "#/components/schemas/booleanObjectType"
        },
        {
          "description": "Specifies whether IAM users are prevented from setting a new password via the Amazon Web Services Management Console after their password has expired. The IAM user cannot access the console until an administrator resets the password. IAM users with <code>iam:ChangePassword</code> permission and active access keys can reset their own expired console password using the CLI or API."
        }
      ]
    }
  },
  "description": "<p>Contains information about the account password policy.</p> <p> This data type is used as a response element in the <a>GetAccountPasswordPolicy</a> operation. </p>"
}