{
  "typeName" : "AWS::AppStream::StackUserAssociation",
  "description" : "Resource Type definition for AWS::AppStream::StackUserAssociation",
  "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appstream/tree/master/aws-appstream-stackuserassociation.git",
  "properties" : {
    "AuthenticationType" : {
      "description" : "The authentication type for the user who is associated with the stack. You must specify USERPOOL.",
      "type" : "string"
    },
    "SendEmailNotification" : {
      "description" : "Specifies whether a welcome email is sent to a user after the user is created in the user pool.",
      "type" : "boolean"
    },
    "StackName" : {
      "description" : "The name of the stack that is associated with the user.",
      "type" : "string"
    },
    "UserName" : {
      "description" : "The name of the user who is associated with the stack.",
      "type" : "string"
    }
  },
  "additionalProperties" : false,
  "required" : [ "AuthenticationType", "StackName", "UserName" ],
  "createOnlyProperties" : [ "/properties/StackName", "/properties/AuthenticationType", "/properties/SendEmailNotification", "/properties/UserName" ],
  "primaryIdentifier" : [ "/properties/StackName", "/properties/UserName", "/properties/AuthenticationType" ],
  "tagging" : {
    "taggable" : false
  },
  "handlers" : {
    "read" : {
      "permissions" : [ "appstream:DescribeUserStackAssociations" ]
    },
    "create" : {
      "permissions" : [ "appstream:DescribeUserStackAssociations", "appstream:BatchAssociateUserStack" ]
    },
    "list" : {
      "handlerSchema" : {
        "properties" : {
          "StackName" : {
            "$ref" : "resource-schema.json#/properties/StackName"
          },
          "UserName" : {
            "$ref" : "resource-schema.json#/properties/UserName"
          },
          "AuthenticationType" : {
            "$ref" : "resource-schema.json#/properties/AuthenticationType"
          }
        },
        "anyOf" : [ {
          "required" : [ "StackName" ]
        }, {
          "required" : [ "UserName", "AuthenticationType" ]
        } ]
      },
      "permissions" : [ "appstream:DescribeUserStackAssociations" ]
    },
    "delete" : {
      "permissions" : [ "appstream:DescribeUserStackAssociations", "appstream:BatchDisassociateUserStack" ]
    }
  }
}