"""This file is autogenerated according to HCA api spec. Don't modify."""
from ...added_command import AddedCommand

class PutFiles(AddedCommand):
    """Class containing info to reach the get endpoint of files."""

    @classmethod
    def _get_base_url(cls):
        return "https://hca-dss.czi.technology/v1"

    @classmethod
    def _get_endpoint_info(cls):
        return {'seen': False, 'body_params': {'bundle_uuid': {'description': 'A RFC4122-compliant ID for the bundle that contains this file.', 'type': 'string', 'name': 'bundle_uuid', 'req': True, 'in': 'body', 'array': False, 'hierarchy': ['bundle_uuid']}, 'creator_uid': {'description': 'User ID who is creating this file.', 'format': 'int64', 'type': 'integer', 'name': 'creator_uid', 'req': True, 'in': 'body', 'array': False, 'hierarchy': ['creator_uid']}, 'source_url': {'description': 'Cloud URL for source data.', 'pattern': '^(gs|s3|wasb)://', 'type': 'string', 'name': 'source_url', 'req': True, 'in': 'body', 'array': False, 'hierarchy': ['source_url']}}, 'positional': [{'argument': 'uuid', 'required': True, 'required_for': ['/files/{uuid}'], 'description': 'A RFC4122-compliant ID for the bundle.', 'type': 'string', 'format': None, 'pattern': '[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}'}], 'options': {'version': {'array': False, 'required': False, 'required_for': [], 'description': 'Timestamp of file creation in RFC3339.  If this is not provided, the latest version is returned.', 'type': 'string', 'format': 'date-time', 'pattern': None, 'metavar': None, 'in': 'query', 'hierarchy': ['version']}, 'bundle_uuid': {'array': False, 'required': True, 'required_for': ['/files/{uuid}'], 'description': 'A RFC4122-compliant ID for the bundle that contains this file.', 'type': 'string', 'format': None, 'pattern': None, 'metavar': None, 'in': 'body', 'hierarchy': ['bundle_uuid']}, 'creator_uid': {'array': False, 'required': True, 'required_for': ['/files/{uuid}'], 'description': 'User ID who is creating this file.', 'type': 'integer', 'format': 'int64', 'pattern': None, 'metavar': None, 'in': 'body', 'hierarchy': ['creator_uid']}, 'source_url': {'array': False, 'required': True, 'required_for': ['/files/{uuid}'], 'description': 'Cloud URL for source data.', 'type': 'string', 'format': None, 'pattern': '^(gs|s3|wasb)://', 'metavar': None, 'in': 'body', 'hierarchy': ['source_url']}}, 'requires_auth': False, 'description': 'Create a new version of a file with a given UUID.  The file content is passed in through a cloud URL.  The file\non the cloud provider must have metadata set reflecting the file checksums and the file content type.\n\nThe metadata fields required are:\n- hca-dss-content-type: content-type of the file\n- hca-dss-sha256: SHA-256 checksum of the file\n- hca-dss-sha1: SHA-1 checksum of the file\n- hca-dss-s3_etag: S3 ETAG checksum of the file.  See\nhttps://stackoverflow.com/questions/12186993/what-is-the-algorithm-to-compute-the-amazon-s3-etag-for-a-file-larger-than-5gb\nfor the general algorithm for how checksum is calculated.  For files smaller than 64MB, this is the MD5 checksum\nof the file.  For files larger than 64MB but smaller than 640,000MB, we use 64MB chunks.  For files larger than\n640,000MB, we use a chunk size equal to the total file size divided by 10000, rounded up to the nearest MB.\nMB, in this section, refers to 1,048,576 bytes.  Note that 640,000MB is not the same as 640GB!\n- hca-dss-crc32c: CRC-32C checksum of the file\n'}
