Source code for contentful_management.snapshot
from .resource import Resource, EnvironmentAwareResource
"""
contentful_management.snapshot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This module implements the Snapshot class.
API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/snapshots
:copyright: (c) 2018 by Contentful GmbH.
:license: MIT, see LICENSE for more details.
"""
[docs]class Snapshot(Resource, EnvironmentAwareResource):
    """
    API reference: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/snapshots
    """
    def __init__(self, item, **kwargs):
        super(Snapshot, self).__init__(item, **kwargs)
        from .entry import Entry
        from .content_type import ContentType
        entity_type = {
            'Entry': Entry,
            'ContentType': ContentType
        }
        if self.sys['snapshot_entity_type'] not in entity_type:
            raise Exception("Object '{0}' not buildable".format(self.sys['snapshot_entity_type']))
        self.snapshot = entity_type[self.sys['snapshot_entity_type']](item['snapshot'], **kwargs)
[docs]    @classmethod
    def base_url(klass, space_id, parent_resource_id, resource_url='entries', resource_id=None, environment_id=None):
        """
        Returns the URI for the snapshot.
        """
        return "spaces/{0}{1}/{2}/{3}/snapshots/{4}".format(
            space_id,
            '/environments/{0}'.format(environment_id) if environment_id is not None else '',
            resource_url,
            parent_resource_id,
            resource_id if resource_id is not None else ''
        ) 
[docs]    def to_json(self):
        """
        Returns the JSON representation of the snapshot.
        """
        result = super(Snapshot, self).to_json()
        result.update({
            'snapshot': self.snapshot.to_json(),
        })
        return result 
    def __repr__(self):
        return "<Snapshot[{0}] id='{1}'>".format(
            self.sys.get('snapshot_entity_type', ''),
            self.sys.get('id', '')
        )
[docs]    def save(self):
        """
        Not supported.
        """
        raise Exception("Not Supported") 
[docs]    def update(self, _attributes=None):
        """
        Not supported.
        """
        raise Exception("Not Supported")