{
  "typeName" : "AWS::WorkspacesInstances::VolumeAssociation",
  "description" : "Resource Type definition for AWS::WorkspacesInstances::VolumeAssociation",
  "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-schema.git",
  "properties" : {
    "WorkspaceInstanceId" : {
      "type" : "string",
      "description" : "ID of the workspace instance to associate with the volume",
      "pattern" : "^wsinst-[0-9a-zA-Z]{8,63}$"
    },
    "VolumeId" : {
      "type" : "string",
      "description" : "ID of the volume to attach to the workspace instance",
      "pattern" : "^vol-[0-9a-zA-Z]{1,63}$"
    },
    "Device" : {
      "type" : "string",
      "description" : "The device name for the volume attachment",
      "maxLength" : 32
    },
    "DisassociateMode" : {
      "type" : "string",
      "description" : "Mode to use when disassociating the volume",
      "enum" : [ "FORCE", "NO_FORCE" ]
    }
  },
  "required" : [ "WorkspaceInstanceId", "VolumeId", "Device" ],
  "createOnlyProperties" : [ "/properties/WorkspaceInstanceId", "/properties/VolumeId", "/properties/Device" ],
  "writeOnlyProperties" : [ "/properties/DisassociateMode" ],
  "primaryIdentifier" : [ "/properties/WorkspaceInstanceId", "/properties/VolumeId", "/properties/Device" ],
  "handlers" : {
    "create" : {
      "permissions" : [ "ec2:DescribeVolumes", "ec2:AttachVolume", "workspaces-instances:GetWorkspaceInstance", "workspaces-instances:AssociateVolume" ]
    },
    "read" : {
      "permissions" : [ "ec2:DescribeVolumes", "workspaces-instances:GetWorkspaceInstance" ]
    },
    "delete" : {
      "permissions" : [ "ec2:DescribeVolumes", "ec2:DetachVolume", "workspaces-instances:GetWorkspaceInstance", "workspaces-instances:DisassociateVolume" ]
    },
    "list" : {
      "permissions" : [ "ec2:DescribeVolumes", "workspaces-instances:ListWorkspaceInstances" ]
    }
  },
  "tagging" : {
    "taggable" : false,
    "tagOnCreate" : false,
    "tagUpdatable" : false,
    "cloudFormationSystemTags" : false
  },
  "additionalProperties" : false
}