code: def create(self, az, size_or_snap, volume_type=None, iops=None,
                 encrypted=True):
          
          kwargs = {}
          kwargs['encrypted'] = encrypted
          if volume_type:
              kwargs['VolumeType'] = volume_type
          if iops:
              kwargs['Iops'] = iops
          is_snapshot_id = False
          try:
              size_or_snap = int(size_or_snap)
          except ValueError:
              is_snapshot_id = True
          if is_snapshot_id:
              return self.call("CreateVolume", AvailabilityZone=az,
                               SnapshotId=size_or_snap, **kwargs)
          return self.call("CreateVolume", AvailabilityZone=az,
                           Size=size_or_snap, **kwargs)
docs: Create an EBS Volume using an availability-zone and size_or_snap
          parameter, encrypted by default.
          If the volume is crated from a snapshot, (str)size_or_snap denotes
          the snapshot id. Otherwise, (int)size_or_snap denotes the amount of
          GiB's to allocate. iops must be set if the volume type is io1.