# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from fabric_cf.orchestrator.swagger_server.models.base_model_ import Model
from fabric_cf.orchestrator.swagger_server import util


class PoaData(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    def __init__(self, operation: str=None, poa_id: str=None, state: str=None, sliver_id: str=None, slice_id: str=None, error: str=None, info: object=None):  # noqa: E501
        """PoaData - a model defined in Swagger

        :param operation: The operation of this PoaData.  # noqa: E501
        :type operation: str
        :param poa_id: The poa_id of this PoaData.  # noqa: E501
        :type poa_id: str
        :param state: The state of this PoaData.  # noqa: E501
        :type state: str
        :param sliver_id: The sliver_id of this PoaData.  # noqa: E501
        :type sliver_id: str
        :param slice_id: The slice_id of this PoaData.  # noqa: E501
        :type slice_id: str
        :param error: The error of this PoaData.  # noqa: E501
        :type error: str
        :param info: The info of this PoaData.  # noqa: E501
        :type info: object
        """
        self.swagger_types = {
            'operation': str,
            'poa_id': str,
            'state': str,
            'sliver_id': str,
            'slice_id': str,
            'error': str,
            'info': object
        }

        self.attribute_map = {
            'operation': 'operation',
            'poa_id': 'poa_id',
            'state': 'state',
            'sliver_id': 'sliver_id',
            'slice_id': 'slice_id',
            'error': 'error',
            'info': 'info'
        }
        self._operation = operation
        self._poa_id = poa_id
        self._state = state
        self._sliver_id = sliver_id
        self._slice_id = slice_id
        self._error = error
        self._info = info

    @classmethod
    def from_dict(cls, dikt) -> 'PoaData':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The poa_data of this PoaData.  # noqa: E501
        :rtype: PoaData
        """
        return util.deserialize_model(dikt, cls)

    @property
    def operation(self) -> str:
        """Gets the operation of this PoaData.


        :return: The operation of this PoaData.
        :rtype: str
        """
        return self._operation

    @operation.setter
    def operation(self, operation: str):
        """Sets the operation of this PoaData.


        :param operation: The operation of this PoaData.
        :type operation: str
        """

        self._operation = operation

    @property
    def poa_id(self) -> str:
        """Gets the poa_id of this PoaData.


        :return: The poa_id of this PoaData.
        :rtype: str
        """
        return self._poa_id

    @poa_id.setter
    def poa_id(self, poa_id: str):
        """Sets the poa_id of this PoaData.


        :param poa_id: The poa_id of this PoaData.
        :type poa_id: str
        """

        self._poa_id = poa_id

    @property
    def state(self) -> str:
        """Gets the state of this PoaData.


        :return: The state of this PoaData.
        :rtype: str
        """
        return self._state

    @state.setter
    def state(self, state: str):
        """Sets the state of this PoaData.


        :param state: The state of this PoaData.
        :type state: str
        """

        self._state = state

    @property
    def sliver_id(self) -> str:
        """Gets the sliver_id of this PoaData.


        :return: The sliver_id of this PoaData.
        :rtype: str
        """
        return self._sliver_id

    @sliver_id.setter
    def sliver_id(self, sliver_id: str):
        """Sets the sliver_id of this PoaData.


        :param sliver_id: The sliver_id of this PoaData.
        :type sliver_id: str
        """

        self._sliver_id = sliver_id

    @property
    def slice_id(self) -> str:
        """Gets the slice_id of this PoaData.


        :return: The slice_id of this PoaData.
        :rtype: str
        """
        return self._slice_id

    @slice_id.setter
    def slice_id(self, slice_id: str):
        """Sets the slice_id of this PoaData.


        :param slice_id: The slice_id of this PoaData.
        :type slice_id: str
        """

        self._slice_id = slice_id

    @property
    def error(self) -> str:
        """Gets the error of this PoaData.


        :return: The error of this PoaData.
        :rtype: str
        """
        return self._error

    @error.setter
    def error(self, error: str):
        """Sets the error of this PoaData.


        :param error: The error of this PoaData.
        :type error: str
        """

        self._error = error

    @property
    def info(self) -> object:
        """Gets the info of this PoaData.


        :return: The info of this PoaData.
        :rtype: object
        """
        return self._info

    @info.setter
    def info(self, info: object):
        """Sets the info of this PoaData.


        :param info: The info of this PoaData.
        :type info: object
        """

        self._info = info
