{
  "typeName" : "AWS::AppStream::User",
  "description" : "Resource Type definition for AWS::AppStream::User",
  "additionalProperties" : false,
  "properties" : {
    "AuthenticationType" : {
      "type" : "string",
      "description" : "The authentication type for the user."
    },
    "UserName" : {
      "type" : "string",
      "description" : "The email address of the user."
    },
    "Arn" : {
      "type" : "string",
      "description" : "Returns the Amazon Resource Name (ARN) for the Amazon AppStream User resource.",
      "pattern" : "^arn:.*"
    },
    "FirstName" : {
      "type" : "string",
      "description" : "The first name, or given name, of the user."
    },
    "LastName" : {
      "type" : "string",
      "description" : "The last name, or surname, of the user."
    },
    "MessageAction" : {
      "type" : "string",
      "description" : "The action to take for the welcome email that is sent to a user after the user is created in the user pool. If you specify SUPPRESS, no email is sent. If you specify RESEND, do not specify the first name or last name of the user. If the value is null, the email is sent."
    }
  },
  "required" : [ "UserName", "AuthenticationType" ],
  "tagging" : {
    "taggable" : false
  },
  "primaryIdentifier" : [ "/properties/UserName", "/properties/AuthenticationType" ],
  "createOnlyProperties" : [ "/properties/AuthenticationType", "/properties/UserName", "/properties/MessageAction", "/properties/FirstName", "/properties/LastName" ],
  "writeOnlyProperties" : [ "/properties/MessageAction" ],
  "readOnlyProperties" : [ "/properties/Arn" ],
  "handlers" : {
    "read" : {
      "permissions" : [ "appstream:DescribeUsers" ]
    },
    "list" : {
      "handlerSchema" : {
        "properties" : {
          "AuthenticationType" : {
            "$ref" : "resource-schema.json#/properties/AuthenticationType"
          }
        }
      },
      "permissions" : [ "appstream:DescribeUsers" ]
    },
    "delete" : {
      "permissions" : [ "appstream:DeleteUser" ]
    },
    "create" : {
      "permissions" : [ "appstream:CreateUser", "appstream:DescribeUsers" ]
    }
  }
}