Source code for com.vmware.content.library.item.downloadsession_client

# -*- coding: utf-8 -*-
#---------------------------------------------------------------------------
# Copyright 2016 VMware, Inc.  All rights reserved.

# AUTO GENERATED FILE -- DO NOT MODIFY!
#
# vAPI stub file for package com.vmware.content.library.item.downloadsession.
#---------------------------------------------------------------------------

"""
The Content Library Item Download Session module provides classes and classes
for downloading files in a session.

"""

__author__ = 'VMware, Inc.'
__docformat__ = 'restructuredtext en'

import sys

from vmware.vapi.bindings import type
from vmware.vapi.bindings.converter import TypeConverter
from vmware.vapi.bindings.enum import Enum
from vmware.vapi.bindings.error import VapiError
from vmware.vapi.bindings.struct import VapiStruct
from vmware.vapi.bindings.stub import VapiInterface, ApiInterfaceStub
from vmware.vapi.bindings.common import raise_core_exception
from vmware.vapi.data.validator import UnionValidator, HasFieldsOfValidator
from vmware.vapi.exception import CoreException
import com.vmware.content.library.item_client
import com.vmware.vapi.std_client
import com.vmware.vapi.std.errors_client


[docs]class File(VapiInterface): """ The ``File`` class provides methods for accessing files within a download session. After a download session is created against a library item, the ``File`` class can be used to retrieve all downloadable content within the library item. Since the content may not be available immediately in a downloadable form on the server side, the client will have to prepare the file and wait for the file status to become :attr:`File.PrepareStatus.PREPARED`. See :class:`com.vmware.content.library.item_client.DownloadSession`. """ def __init__(self, config): """ :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` :param config: Configuration to be used for creating the stub. """ VapiInterface.__init__(self, config, _FileStub)
[docs] class PrepareStatus(Enum): """ The ``File.PrepareStatus`` class defines the state of the file in preparation for download. .. note:: This class represents an enumerated type in the interface language definition. The class contains class attributes which represent the values in the current version of the enumerated type. Newer versions of the enumerated type may contain new values. To use new values of the enumerated type in communication with a server that supports the newer version of the API, you instantiate this class. See :ref:`enumerated type description page <enumeration_description>`. """ UNPREPARED = None """ The file hasn't been requested for preparation. """ PREPARE_REQUESTED = None """ A prepare has been requested, however the server hasn't started the preparation yet. """ PREPARING = None """ A prepare has been requested and the file is in the process of being prepared. """ PREPARED = None """ Prepare succeeded. The file is ready for download. """ ERROR = None """ Prepare failed. """ def __init__(self, string): """ :type string: :class:`str` :param string: String value for the :class:`PrepareStatus` instance. """ Enum.__init__(string)
PrepareStatus._set_values([ PrepareStatus('UNPREPARED'), PrepareStatus('PREPARE_REQUESTED'), PrepareStatus('PREPARING'), PrepareStatus('PREPARED'), PrepareStatus('ERROR'), ]) PrepareStatus._set_binding_type(type.EnumType( 'com.vmware.content.library.item.downloadsession.file.prepare_status', PrepareStatus))
[docs] class EndpointType(Enum): """ The ``File.EndpointType`` class defines the types of endpoints used to download the file. .. note:: This class represents an enumerated type in the interface language definition. The class contains class attributes which represent the values in the current version of the enumerated type. Newer versions of the enumerated type may contain new values. To use new values of the enumerated type in communication with a server that supports the newer version of the API, you instantiate this class. See :ref:`enumerated type description page <enumeration_description>`. """ HTTPS = None """ An https download endpoint. """ DIRECT = None """ A direct download endpoint indicating the location of the file on storage. The caller is responsible for retrieving the file from the storage location directly. """ def __init__(self, string): """ :type string: :class:`str` :param string: String value for the :class:`EndpointType` instance. """ Enum.__init__(string)
EndpointType._set_values([ EndpointType('HTTPS'), EndpointType('DIRECT'), ]) EndpointType._set_binding_type(type.EnumType( 'com.vmware.content.library.item.downloadsession.file.endpoint_type', EndpointType))
[docs] class Info(VapiStruct): """ The ``File.Info`` class defines the downloaded file. .. tip:: The arguments are used to initialize data attributes with the same names. """ def __init__(self, name=None, size=None, bytes_transferred=None, status=None, download_endpoint=None, checksum_info=None, error_message=None, ): """ :type name: :class:`str` :param name: The name of the file. :type size: :class:`long` or ``None`` :param size: The file size, in bytes. This attribute may not be available immediately. It is guaranteed to be set when the client finishes downloading the file. :type bytes_transferred: :class:`long` :param bytes_transferred: The number of bytes that have been transferred by the server so far for making this file prepared for download. This value may stay at zero till the client starts downloading the file. :type status: :class:`File.PrepareStatus` :param status: The preparation status (UNPREPARED, PREPARE_REQUESTED, PREPARING, PREPARED, ERROR) of the file. :type download_endpoint: :class:`com.vmware.content.library.item_client.TransferEndpoint` or ``None`` :param download_endpoint: Endpoint at which the file is available for download. The value is valid only when the :attr:`File.Info.status` is :attr:`File.PrepareStatus.PREPARED`. This attribute won't be set until the file status is :attr:`File.PrepareStatus.PREPARED`. :type checksum_info: :class:`com.vmware.content.library.item_client.File.ChecksumInfo` or ``None`` :param checksum_info: The checksum information of the file. When the download is complete, you can retrieve the checksum from the :func:`File.get` method to verify the checksum for the downloaded file. The checksum is always calculated for the downloaded file, but this attribute won't be set until the download is complete. :type error_message: :class:`com.vmware.vapi.std_client.LocalizableMessage` or ``None`` :param error_message: Error message for a failed preparation when the prepare status is :attr:`File.PrepareStatus.ERROR`. This attribute won't be set unless there was an error with the file transfer. """ self.name = name self.size = size self.bytes_transferred = bytes_transferred self.status = status self.download_endpoint = download_endpoint self.checksum_info = checksum_info self.error_message = error_message VapiStruct.__init__(self)
Info._set_binding_type(type.StructType( 'com.vmware.content.library.item.downloadsession.file.info', { 'name': type.StringType(), 'size': type.OptionalType(type.IntegerType()), 'bytes_transferred': type.IntegerType(), 'status': type.ReferenceType(sys.modules[__name__], 'File.PrepareStatus'), 'download_endpoint': type.OptionalType(type.ReferenceType(com.vmware.content.library.item_client, 'TransferEndpoint')), 'checksum_info': type.OptionalType(type.ReferenceType(com.vmware.content.library.item_client, 'File.ChecksumInfo')), 'error_message': type.OptionalType(type.ReferenceType(com.vmware.vapi.std_client, 'LocalizableMessage')), }, Info, False, None))
[docs] def list(self, download_session_id, ): """ Lists the information of all the files in the library item associated with the download session. :type download_session_id: :class:`str` :param download_session_id: Identifier of the download session. The parameter must be an identifier for the resource type: ``com.vmware.content.library.item.DownloadSession``. :rtype: :class:`list` of :class:`File.Info` :return: The :class:`list` of :class:`File.Info` instances. :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` if the download session associated with ``download_session_id`` doesn't exist. :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` if you do not have all of the privileges described as follows: * The resource ``com.vmware.content.library.Item`` referenced by the parameter ``libraryItemId`` requires ``System.Read``. """ return self._invoke('list', { 'download_session_id': download_session_id, })
[docs] def prepare(self, download_session_id, file_name, endpoint_type=None, ): """ Requests a file to be prepared for download. :type download_session_id: :class:`str` :param download_session_id: Identifier of the download session. The parameter must be an identifier for the resource type: ``com.vmware.content.library.item.DownloadSession``. :type file_name: :class:`str` :param file_name: Name of the file requested for download. :type endpoint_type: :class:`File.EndpointType` or ``None`` :param endpoint_type: Endpoint type request, one of HTTPS, DIRECT. This will determine the type of the :attr:`File.Info.download_endpoint` that is generated when the file is prepared. The :attr:`File.EndpointType.DIRECT` is only available to users who have the ContentLibrary.ReadStorage privilege. If not specified the default is :attr:`File.EndpointType.HTTPS`. :rtype: :class:`File.Info` :return: File information containing the status of the request and the download link to the file. :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` if the download session does not exist. :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` if there is no file with the specified ``file_name``. :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` if the the download session wasn't created with the ContentLibrary.ReadStorage privilege and the caller requested a :attr:`File.EndpointType.DIRECT` endpoint type. """ return self._invoke('prepare', { 'download_session_id': download_session_id, 'file_name': file_name, 'endpoint_type': endpoint_type, })
[docs] def get(self, download_session_id, file_name, ): """ Retrieves file download information for a specific file. :type download_session_id: :class:`str` :param download_session_id: Identifier of the download session. The parameter must be an identifier for the resource type: ``com.vmware.content.library.item.DownloadSession``. :type file_name: :class:`str` :param file_name: Name of the file requested. :rtype: :class:`File.Info` :return: The :class:`File.Info` instance containing the status of the file and its download link if available. :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` if the download session associated with ``download_session_id`` does not exist. :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` if there is no file with the specified ``file_name``. :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` if you do not have all of the privileges described as follows: * The resource ``com.vmware.content.library.Item`` referenced by the parameter ``libraryItemId`` requires ``System.Read``. """ return self._invoke('get', { 'download_session_id': download_session_id, 'file_name': file_name, })
class _FileStub(ApiInterfaceStub): def __init__(self, config): # properties for list operation list_input_type = type.StructType('operation-input', { 'download_session_id': type.IdType(resource_types='com.vmware.content.library.item.DownloadSession'), }) list_error_dict = { 'com.vmware.vapi.std.errors.not_found': type.ReferenceType(com.vmware.vapi.std.errors_client, 'NotFound'), } list_input_validator_list = [ ] list_output_validator_list = [ ] # properties for prepare operation prepare_input_type = type.StructType('operation-input', { 'download_session_id': type.IdType(resource_types='com.vmware.content.library.item.DownloadSession'), 'file_name': type.StringType(), 'endpoint_type': type.OptionalType(type.ReferenceType(sys.modules[__name__], 'File.EndpointType')), }) prepare_error_dict = { 'com.vmware.vapi.std.errors.not_found': type.ReferenceType(com.vmware.vapi.std.errors_client, 'NotFound'), 'com.vmware.vapi.std.errors.invalid_argument': type.ReferenceType(com.vmware.vapi.std.errors_client, 'InvalidArgument'), 'com.vmware.vapi.std.errors.unauthorized': type.ReferenceType(com.vmware.vapi.std.errors_client, 'Unauthorized'), } prepare_input_validator_list = [ ] prepare_output_validator_list = [ ] # properties for get operation get_input_type = type.StructType('operation-input', { 'download_session_id': type.IdType(resource_types='com.vmware.content.library.item.DownloadSession'), 'file_name': type.StringType(), }) get_error_dict = { 'com.vmware.vapi.std.errors.not_found': type.ReferenceType(com.vmware.vapi.std.errors_client, 'NotFound'), 'com.vmware.vapi.std.errors.invalid_argument': type.ReferenceType(com.vmware.vapi.std.errors_client, 'InvalidArgument'), } get_input_validator_list = [ ] get_output_validator_list = [ ] operations = { 'list': { 'input_type': list_input_type, 'output_type': type.ListType(type.ReferenceType(sys.modules[__name__], 'File.Info')), 'errors': list_error_dict, 'input_validator_list': list_input_validator_list, 'output_validator_list': list_output_validator_list, }, 'prepare': { 'input_type': prepare_input_type, 'output_type': type.ReferenceType(sys.modules[__name__], 'File.Info'), 'errors': prepare_error_dict, 'input_validator_list': prepare_input_validator_list, 'output_validator_list': prepare_output_validator_list, }, 'get': { 'input_type': get_input_type, 'output_type': type.ReferenceType(sys.modules[__name__], 'File.Info'), 'errors': get_error_dict, 'input_validator_list': get_input_validator_list, 'output_validator_list': get_output_validator_list, }, } ApiInterfaceStub.__init__(self, iface_name='com.vmware.content.library.item.downloadsession.file', config=config, operations=operations)