'Construct a AssetMetadata object.
Arguments:
asset_id (AssetKey): Key identifying this particular asset.
pathname (str): Original path to file at asset upload time.
internal_name (str): Name, url, or handle for the storage system to access the file.
locked (bool): If True, only course participants can access the asset.
contenttype (str): MIME type of the asset.
thumbnail (str): the internal_name for the thumbnail if one exists
fields (dict): fields to save w/ the metadata
curr_version (str): Current version of the asset.
prev_version (str): Previous version of the asset.
created_by (int): User ID of initial user to upload this asset.
created_by_email (str): Email address of initial user to upload this asset.
created_on (datetime): Datetime of intial upload of this asset.
edited_by (int): User ID of last user to upload this asset.
edited_by_email (str): Email address of last user to upload this asset.
edited_on (datetime): Datetime of last upload of this asset.
field_decorator (function): used by strip_key to convert OpaqueKeys to the app\'s understanding.
Not saved.'

@contract(asset_id='AssetKey', pathname='basestring|None', internal_name='basestring|None', locked='bool|None', contenttype='basestring|None', thumbnail='basestring|None', fields='dict|None', curr_version='basestring|None', prev_version='basestring|None', created_by='int|long|None', created_by_email='basestring|None', created_on='datetime|None', edited_by='int|long|None', edited_by_email='basestring|None', edited_on='datetime|None')
def __init__(self, asset_id, pathname=None, internal_name=None, locked=None, contenttype=None, thumbnail=None, fields=None, curr_version=None, prev_version=None, created_by=None, created_by_email=None, created_on=None, edited_by=None, edited_by_email=None, edited_on=None, field_decorator=None):

    self.asset_id = (asset_id if (field_decorator is None) else field_decorator(asset_id))
    self.pathname = pathname
    self.internal_name = internal_name
    self.locked = locked
    self.contenttype = contenttype
    self.thumbnail = thumbnail
    self.curr_version = curr_version
    self.prev_version = prev_version
    now = datetime.now(pytz.utc)
    self.edited_by = edited_by
    self.edited_by_email = edited_by_email
    self.edited_on = (edited_on or now)
    self.created_by = created_by
    self.created_by_email = created_by_email
    self.created_on = (created_on or now)
    self.fields = (fields or {})
