# coding: utf-8

"""
    Karbon Platform Services API reference.

    OpenAPI documentation for public facing Karbon Platform Services API  This API documentation is generated from source code using go-swagger. Do not edit the generated kps_api.json directly!  # noqa: E501

    OpenAPI spec version: 1.0
    Contact: karbon-platform-services-api@nutanix.com
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six
from kps_api.models.attribute_manifests import AttributeManifests  # noqa: F401,E501
from kps_api.models.authorization_policies import AuthorizationPolicies  # noqa: F401,E501
from kps_api.models.cluster_rbac_configs import ClusterRbacConfigs  # noqa: F401,E501
from kps_api.models.destination_rules import DestinationRules  # noqa: F401,E501
from kps_api.models.envoy_filters import EnvoyFilters  # noqa: F401,E501
from kps_api.models.gateways import Gateways  # noqa: F401,E501
from kps_api.models.http_api_spec_bindings import HttpApiSpecBindings  # noqa: F401,E501
from kps_api.models.http_api_specs import HttpApiSpecs  # noqa: F401,E501
from kps_api.models.istio_adapters import IstioAdapters  # noqa: F401,E501
from kps_api.models.istio_handlers import IstioHandlers  # noqa: F401,E501
from kps_api.models.istio_instances import IstioInstances  # noqa: F401,E501
from kps_api.models.istio_rules import IstioRules  # noqa: F401,E501
from kps_api.models.istio_templates import IstioTemplates  # noqa: F401,E501
from kps_api.models.istio_validations import IstioValidations  # noqa: F401,E501
from kps_api.models.mesh_policies import MeshPolicies  # noqa: F401,E501
from kps_api.models.namespace import Namespace  # noqa: F401,E501
from kps_api.models.peer_authentications import PeerAuthentications  # noqa: F401,E501
from kps_api.models.policies import Policies  # noqa: F401,E501
from kps_api.models.quota_spec_bindings import QuotaSpecBindings  # noqa: F401,E501
from kps_api.models.quota_specs import QuotaSpecs  # noqa: F401,E501
from kps_api.models.rbac_configs import RbacConfigs  # noqa: F401,E501
from kps_api.models.request_authentications import RequestAuthentications  # noqa: F401,E501
from kps_api.models.service_entries import ServiceEntries  # noqa: F401,E501
from kps_api.models.service_mesh_policies import ServiceMeshPolicies  # noqa: F401,E501
from kps_api.models.service_mesh_rbac_configs import ServiceMeshRbacConfigs  # noqa: F401,E501
from kps_api.models.service_role_bindings import ServiceRoleBindings  # noqa: F401,E501
from kps_api.models.service_roles import ServiceRoles  # noqa: F401,E501
from kps_api.models.sidecars import Sidecars  # noqa: F401,E501
from kps_api.models.virtual_services import VirtualServices  # noqa: F401,E501
from kps_api.models.workload_entries import WorkloadEntries  # noqa: F401,E501


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

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'adapters': 'IstioAdapters',
        'attribute_manifests': 'AttributeManifests',
        'authorization_policies': 'AuthorizationPolicies',
        'cluster_rbac_configs': 'ClusterRbacConfigs',
        'destination_rules': 'DestinationRules',
        'envoy_filters': 'EnvoyFilters',
        'gateways': 'Gateways',
        'handlers': 'IstioHandlers',
        'http_api_spec_bindings': 'HttpApiSpecBindings',
        'http_api_specs': 'HttpApiSpecs',
        'instances': 'IstioInstances',
        'istio_validations': 'IstioValidations',
        'mesh_policies': 'MeshPolicies',
        'namespace': 'Namespace',
        'peer_authentications': 'PeerAuthentications',
        'policies': 'Policies',
        'quota_spec_bindings': 'QuotaSpecBindings',
        'quota_specs': 'QuotaSpecs',
        'rbac_configs': 'RbacConfigs',
        'request_authentications': 'RequestAuthentications',
        'rules': 'IstioRules',
        'service_entries': 'ServiceEntries',
        'service_mesh_policies': 'ServiceMeshPolicies',
        'service_mesh_rbac_configs': 'ServiceMeshRbacConfigs',
        'service_role_bindings': 'ServiceRoleBindings',
        'service_roles': 'ServiceRoles',
        'sidecars': 'Sidecars',
        'templates': 'IstioTemplates',
        'virtual_services': 'VirtualServices',
        'workload_entries': 'WorkloadEntries'
    }

    attribute_map = {
        'adapters': 'adapters',
        'attribute_manifests': 'attributeManifests',
        'authorization_policies': 'authorizationPolicies',
        'cluster_rbac_configs': 'clusterRbacConfigs',
        'destination_rules': 'destinationRules',
        'envoy_filters': 'envoyFilters',
        'gateways': 'gateways',
        'handlers': 'handlers',
        'http_api_spec_bindings': 'httpApiSpecBindings',
        'http_api_specs': 'httpApiSpecs',
        'instances': 'instances',
        'istio_validations': 'istioValidations',
        'mesh_policies': 'meshPolicies',
        'namespace': 'namespace',
        'peer_authentications': 'peerAuthentications',
        'policies': 'policies',
        'quota_spec_bindings': 'quotaSpecBindings',
        'quota_specs': 'quotaSpecs',
        'rbac_configs': 'rbacConfigs',
        'request_authentications': 'requestAuthentications',
        'rules': 'rules',
        'service_entries': 'serviceEntries',
        'service_mesh_policies': 'serviceMeshPolicies',
        'service_mesh_rbac_configs': 'serviceMeshRbacConfigs',
        'service_role_bindings': 'serviceRoleBindings',
        'service_roles': 'serviceRoles',
        'sidecars': 'sidecars',
        'templates': 'templates',
        'virtual_services': 'virtualServices',
        'workload_entries': 'workloadEntries'
    }

    def __init__(self, adapters=None, attribute_manifests=None, authorization_policies=None, cluster_rbac_configs=None, destination_rules=None, envoy_filters=None, gateways=None, handlers=None, http_api_spec_bindings=None, http_api_specs=None, instances=None, istio_validations=None, mesh_policies=None, namespace=None, peer_authentications=None, policies=None, quota_spec_bindings=None, quota_specs=None, rbac_configs=None, request_authentications=None, rules=None, service_entries=None, service_mesh_policies=None, service_mesh_rbac_configs=None, service_role_bindings=None, service_roles=None, sidecars=None, templates=None, virtual_services=None, workload_entries=None):  # noqa: E501
        """IstioConfigList - a model defined in Swagger"""  # noqa: E501
        self._adapters = None
        self._attribute_manifests = None
        self._authorization_policies = None
        self._cluster_rbac_configs = None
        self._destination_rules = None
        self._envoy_filters = None
        self._gateways = None
        self._handlers = None
        self._http_api_spec_bindings = None
        self._http_api_specs = None
        self._instances = None
        self._istio_validations = None
        self._mesh_policies = None
        self._namespace = None
        self._peer_authentications = None
        self._policies = None
        self._quota_spec_bindings = None
        self._quota_specs = None
        self._rbac_configs = None
        self._request_authentications = None
        self._rules = None
        self._service_entries = None
        self._service_mesh_policies = None
        self._service_mesh_rbac_configs = None
        self._service_role_bindings = None
        self._service_roles = None
        self._sidecars = None
        self._templates = None
        self._virtual_services = None
        self._workload_entries = None
        self.discriminator = None
        if adapters is not None:
            self.adapters = adapters
        if attribute_manifests is not None:
            self.attribute_manifests = attribute_manifests
        if authorization_policies is not None:
            self.authorization_policies = authorization_policies
        if cluster_rbac_configs is not None:
            self.cluster_rbac_configs = cluster_rbac_configs
        if destination_rules is not None:
            self.destination_rules = destination_rules
        if envoy_filters is not None:
            self.envoy_filters = envoy_filters
        if gateways is not None:
            self.gateways = gateways
        if handlers is not None:
            self.handlers = handlers
        if http_api_spec_bindings is not None:
            self.http_api_spec_bindings = http_api_spec_bindings
        if http_api_specs is not None:
            self.http_api_specs = http_api_specs
        if instances is not None:
            self.instances = instances
        if istio_validations is not None:
            self.istio_validations = istio_validations
        if mesh_policies is not None:
            self.mesh_policies = mesh_policies
        self.namespace = namespace
        if peer_authentications is not None:
            self.peer_authentications = peer_authentications
        if policies is not None:
            self.policies = policies
        if quota_spec_bindings is not None:
            self.quota_spec_bindings = quota_spec_bindings
        if quota_specs is not None:
            self.quota_specs = quota_specs
        if rbac_configs is not None:
            self.rbac_configs = rbac_configs
        if request_authentications is not None:
            self.request_authentications = request_authentications
        if rules is not None:
            self.rules = rules
        if service_entries is not None:
            self.service_entries = service_entries
        if service_mesh_policies is not None:
            self.service_mesh_policies = service_mesh_policies
        if service_mesh_rbac_configs is not None:
            self.service_mesh_rbac_configs = service_mesh_rbac_configs
        if service_role_bindings is not None:
            self.service_role_bindings = service_role_bindings
        if service_roles is not None:
            self.service_roles = service_roles
        if sidecars is not None:
            self.sidecars = sidecars
        if templates is not None:
            self.templates = templates
        if virtual_services is not None:
            self.virtual_services = virtual_services
        if workload_entries is not None:
            self.workload_entries = workload_entries

    @property
    def adapters(self):
        """Gets the adapters of this IstioConfigList.  # noqa: E501


        :return: The adapters of this IstioConfigList.  # noqa: E501
        :rtype: IstioAdapters
        """
        return self._adapters

    @adapters.setter
    def adapters(self, adapters):
        """Sets the adapters of this IstioConfigList.


        :param adapters: The adapters of this IstioConfigList.  # noqa: E501
        :type: IstioAdapters
        """

        self._adapters = adapters

    @property
    def attribute_manifests(self):
        """Gets the attribute_manifests of this IstioConfigList.  # noqa: E501


        :return: The attribute_manifests of this IstioConfigList.  # noqa: E501
        :rtype: AttributeManifests
        """
        return self._attribute_manifests

    @attribute_manifests.setter
    def attribute_manifests(self, attribute_manifests):
        """Sets the attribute_manifests of this IstioConfigList.


        :param attribute_manifests: The attribute_manifests of this IstioConfigList.  # noqa: E501
        :type: AttributeManifests
        """

        self._attribute_manifests = attribute_manifests

    @property
    def authorization_policies(self):
        """Gets the authorization_policies of this IstioConfigList.  # noqa: E501


        :return: The authorization_policies of this IstioConfigList.  # noqa: E501
        :rtype: AuthorizationPolicies
        """
        return self._authorization_policies

    @authorization_policies.setter
    def authorization_policies(self, authorization_policies):
        """Sets the authorization_policies of this IstioConfigList.


        :param authorization_policies: The authorization_policies of this IstioConfigList.  # noqa: E501
        :type: AuthorizationPolicies
        """

        self._authorization_policies = authorization_policies

    @property
    def cluster_rbac_configs(self):
        """Gets the cluster_rbac_configs of this IstioConfigList.  # noqa: E501


        :return: The cluster_rbac_configs of this IstioConfigList.  # noqa: E501
        :rtype: ClusterRbacConfigs
        """
        return self._cluster_rbac_configs

    @cluster_rbac_configs.setter
    def cluster_rbac_configs(self, cluster_rbac_configs):
        """Sets the cluster_rbac_configs of this IstioConfigList.


        :param cluster_rbac_configs: The cluster_rbac_configs of this IstioConfigList.  # noqa: E501
        :type: ClusterRbacConfigs
        """

        self._cluster_rbac_configs = cluster_rbac_configs

    @property
    def destination_rules(self):
        """Gets the destination_rules of this IstioConfigList.  # noqa: E501


        :return: The destination_rules of this IstioConfigList.  # noqa: E501
        :rtype: DestinationRules
        """
        return self._destination_rules

    @destination_rules.setter
    def destination_rules(self, destination_rules):
        """Sets the destination_rules of this IstioConfigList.


        :param destination_rules: The destination_rules of this IstioConfigList.  # noqa: E501
        :type: DestinationRules
        """

        self._destination_rules = destination_rules

    @property
    def envoy_filters(self):
        """Gets the envoy_filters of this IstioConfigList.  # noqa: E501


        :return: The envoy_filters of this IstioConfigList.  # noqa: E501
        :rtype: EnvoyFilters
        """
        return self._envoy_filters

    @envoy_filters.setter
    def envoy_filters(self, envoy_filters):
        """Sets the envoy_filters of this IstioConfigList.


        :param envoy_filters: The envoy_filters of this IstioConfigList.  # noqa: E501
        :type: EnvoyFilters
        """

        self._envoy_filters = envoy_filters

    @property
    def gateways(self):
        """Gets the gateways of this IstioConfigList.  # noqa: E501


        :return: The gateways of this IstioConfigList.  # noqa: E501
        :rtype: Gateways
        """
        return self._gateways

    @gateways.setter
    def gateways(self, gateways):
        """Sets the gateways of this IstioConfigList.


        :param gateways: The gateways of this IstioConfigList.  # noqa: E501
        :type: Gateways
        """

        self._gateways = gateways

    @property
    def handlers(self):
        """Gets the handlers of this IstioConfigList.  # noqa: E501


        :return: The handlers of this IstioConfigList.  # noqa: E501
        :rtype: IstioHandlers
        """
        return self._handlers

    @handlers.setter
    def handlers(self, handlers):
        """Sets the handlers of this IstioConfigList.


        :param handlers: The handlers of this IstioConfigList.  # noqa: E501
        :type: IstioHandlers
        """

        self._handlers = handlers

    @property
    def http_api_spec_bindings(self):
        """Gets the http_api_spec_bindings of this IstioConfigList.  # noqa: E501


        :return: The http_api_spec_bindings of this IstioConfigList.  # noqa: E501
        :rtype: HttpApiSpecBindings
        """
        return self._http_api_spec_bindings

    @http_api_spec_bindings.setter
    def http_api_spec_bindings(self, http_api_spec_bindings):
        """Sets the http_api_spec_bindings of this IstioConfigList.


        :param http_api_spec_bindings: The http_api_spec_bindings of this IstioConfigList.  # noqa: E501
        :type: HttpApiSpecBindings
        """

        self._http_api_spec_bindings = http_api_spec_bindings

    @property
    def http_api_specs(self):
        """Gets the http_api_specs of this IstioConfigList.  # noqa: E501


        :return: The http_api_specs of this IstioConfigList.  # noqa: E501
        :rtype: HttpApiSpecs
        """
        return self._http_api_specs

    @http_api_specs.setter
    def http_api_specs(self, http_api_specs):
        """Sets the http_api_specs of this IstioConfigList.


        :param http_api_specs: The http_api_specs of this IstioConfigList.  # noqa: E501
        :type: HttpApiSpecs
        """

        self._http_api_specs = http_api_specs

    @property
    def instances(self):
        """Gets the instances of this IstioConfigList.  # noqa: E501


        :return: The instances of this IstioConfigList.  # noqa: E501
        :rtype: IstioInstances
        """
        return self._instances

    @instances.setter
    def instances(self, instances):
        """Sets the instances of this IstioConfigList.


        :param instances: The instances of this IstioConfigList.  # noqa: E501
        :type: IstioInstances
        """

        self._instances = instances

    @property
    def istio_validations(self):
        """Gets the istio_validations of this IstioConfigList.  # noqa: E501


        :return: The istio_validations of this IstioConfigList.  # noqa: E501
        :rtype: IstioValidations
        """
        return self._istio_validations

    @istio_validations.setter
    def istio_validations(self, istio_validations):
        """Sets the istio_validations of this IstioConfigList.


        :param istio_validations: The istio_validations of this IstioConfigList.  # noqa: E501
        :type: IstioValidations
        """

        self._istio_validations = istio_validations

    @property
    def mesh_policies(self):
        """Gets the mesh_policies of this IstioConfigList.  # noqa: E501


        :return: The mesh_policies of this IstioConfigList.  # noqa: E501
        :rtype: MeshPolicies
        """
        return self._mesh_policies

    @mesh_policies.setter
    def mesh_policies(self, mesh_policies):
        """Sets the mesh_policies of this IstioConfigList.


        :param mesh_policies: The mesh_policies of this IstioConfigList.  # noqa: E501
        :type: MeshPolicies
        """

        self._mesh_policies = mesh_policies

    @property
    def namespace(self):
        """Gets the namespace of this IstioConfigList.  # noqa: E501


        :return: The namespace of this IstioConfigList.  # noqa: E501
        :rtype: Namespace
        """
        return self._namespace

    @namespace.setter
    def namespace(self, namespace):
        """Sets the namespace of this IstioConfigList.


        :param namespace: The namespace of this IstioConfigList.  # noqa: E501
        :type: Namespace
        """
        if namespace is None:
            raise ValueError("Invalid value for `namespace`, must not be `None`")  # noqa: E501

        self._namespace = namespace

    @property
    def peer_authentications(self):
        """Gets the peer_authentications of this IstioConfigList.  # noqa: E501


        :return: The peer_authentications of this IstioConfigList.  # noqa: E501
        :rtype: PeerAuthentications
        """
        return self._peer_authentications

    @peer_authentications.setter
    def peer_authentications(self, peer_authentications):
        """Sets the peer_authentications of this IstioConfigList.


        :param peer_authentications: The peer_authentications of this IstioConfigList.  # noqa: E501
        :type: PeerAuthentications
        """

        self._peer_authentications = peer_authentications

    @property
    def policies(self):
        """Gets the policies of this IstioConfigList.  # noqa: E501


        :return: The policies of this IstioConfigList.  # noqa: E501
        :rtype: Policies
        """
        return self._policies

    @policies.setter
    def policies(self, policies):
        """Sets the policies of this IstioConfigList.


        :param policies: The policies of this IstioConfigList.  # noqa: E501
        :type: Policies
        """

        self._policies = policies

    @property
    def quota_spec_bindings(self):
        """Gets the quota_spec_bindings of this IstioConfigList.  # noqa: E501


        :return: The quota_spec_bindings of this IstioConfigList.  # noqa: E501
        :rtype: QuotaSpecBindings
        """
        return self._quota_spec_bindings

    @quota_spec_bindings.setter
    def quota_spec_bindings(self, quota_spec_bindings):
        """Sets the quota_spec_bindings of this IstioConfigList.


        :param quota_spec_bindings: The quota_spec_bindings of this IstioConfigList.  # noqa: E501
        :type: QuotaSpecBindings
        """

        self._quota_spec_bindings = quota_spec_bindings

    @property
    def quota_specs(self):
        """Gets the quota_specs of this IstioConfigList.  # noqa: E501


        :return: The quota_specs of this IstioConfigList.  # noqa: E501
        :rtype: QuotaSpecs
        """
        return self._quota_specs

    @quota_specs.setter
    def quota_specs(self, quota_specs):
        """Sets the quota_specs of this IstioConfigList.


        :param quota_specs: The quota_specs of this IstioConfigList.  # noqa: E501
        :type: QuotaSpecs
        """

        self._quota_specs = quota_specs

    @property
    def rbac_configs(self):
        """Gets the rbac_configs of this IstioConfigList.  # noqa: E501


        :return: The rbac_configs of this IstioConfigList.  # noqa: E501
        :rtype: RbacConfigs
        """
        return self._rbac_configs

    @rbac_configs.setter
    def rbac_configs(self, rbac_configs):
        """Sets the rbac_configs of this IstioConfigList.


        :param rbac_configs: The rbac_configs of this IstioConfigList.  # noqa: E501
        :type: RbacConfigs
        """

        self._rbac_configs = rbac_configs

    @property
    def request_authentications(self):
        """Gets the request_authentications of this IstioConfigList.  # noqa: E501


        :return: The request_authentications of this IstioConfigList.  # noqa: E501
        :rtype: RequestAuthentications
        """
        return self._request_authentications

    @request_authentications.setter
    def request_authentications(self, request_authentications):
        """Sets the request_authentications of this IstioConfigList.


        :param request_authentications: The request_authentications of this IstioConfigList.  # noqa: E501
        :type: RequestAuthentications
        """

        self._request_authentications = request_authentications

    @property
    def rules(self):
        """Gets the rules of this IstioConfigList.  # noqa: E501


        :return: The rules of this IstioConfigList.  # noqa: E501
        :rtype: IstioRules
        """
        return self._rules

    @rules.setter
    def rules(self, rules):
        """Sets the rules of this IstioConfigList.


        :param rules: The rules of this IstioConfigList.  # noqa: E501
        :type: IstioRules
        """

        self._rules = rules

    @property
    def service_entries(self):
        """Gets the service_entries of this IstioConfigList.  # noqa: E501


        :return: The service_entries of this IstioConfigList.  # noqa: E501
        :rtype: ServiceEntries
        """
        return self._service_entries

    @service_entries.setter
    def service_entries(self, service_entries):
        """Sets the service_entries of this IstioConfigList.


        :param service_entries: The service_entries of this IstioConfigList.  # noqa: E501
        :type: ServiceEntries
        """

        self._service_entries = service_entries

    @property
    def service_mesh_policies(self):
        """Gets the service_mesh_policies of this IstioConfigList.  # noqa: E501


        :return: The service_mesh_policies of this IstioConfigList.  # noqa: E501
        :rtype: ServiceMeshPolicies
        """
        return self._service_mesh_policies

    @service_mesh_policies.setter
    def service_mesh_policies(self, service_mesh_policies):
        """Sets the service_mesh_policies of this IstioConfigList.


        :param service_mesh_policies: The service_mesh_policies of this IstioConfigList.  # noqa: E501
        :type: ServiceMeshPolicies
        """

        self._service_mesh_policies = service_mesh_policies

    @property
    def service_mesh_rbac_configs(self):
        """Gets the service_mesh_rbac_configs of this IstioConfigList.  # noqa: E501


        :return: The service_mesh_rbac_configs of this IstioConfigList.  # noqa: E501
        :rtype: ServiceMeshRbacConfigs
        """
        return self._service_mesh_rbac_configs

    @service_mesh_rbac_configs.setter
    def service_mesh_rbac_configs(self, service_mesh_rbac_configs):
        """Sets the service_mesh_rbac_configs of this IstioConfigList.


        :param service_mesh_rbac_configs: The service_mesh_rbac_configs of this IstioConfigList.  # noqa: E501
        :type: ServiceMeshRbacConfigs
        """

        self._service_mesh_rbac_configs = service_mesh_rbac_configs

    @property
    def service_role_bindings(self):
        """Gets the service_role_bindings of this IstioConfigList.  # noqa: E501


        :return: The service_role_bindings of this IstioConfigList.  # noqa: E501
        :rtype: ServiceRoleBindings
        """
        return self._service_role_bindings

    @service_role_bindings.setter
    def service_role_bindings(self, service_role_bindings):
        """Sets the service_role_bindings of this IstioConfigList.


        :param service_role_bindings: The service_role_bindings of this IstioConfigList.  # noqa: E501
        :type: ServiceRoleBindings
        """

        self._service_role_bindings = service_role_bindings

    @property
    def service_roles(self):
        """Gets the service_roles of this IstioConfigList.  # noqa: E501


        :return: The service_roles of this IstioConfigList.  # noqa: E501
        :rtype: ServiceRoles
        """
        return self._service_roles

    @service_roles.setter
    def service_roles(self, service_roles):
        """Sets the service_roles of this IstioConfigList.


        :param service_roles: The service_roles of this IstioConfigList.  # noqa: E501
        :type: ServiceRoles
        """

        self._service_roles = service_roles

    @property
    def sidecars(self):
        """Gets the sidecars of this IstioConfigList.  # noqa: E501


        :return: The sidecars of this IstioConfigList.  # noqa: E501
        :rtype: Sidecars
        """
        return self._sidecars

    @sidecars.setter
    def sidecars(self, sidecars):
        """Sets the sidecars of this IstioConfigList.


        :param sidecars: The sidecars of this IstioConfigList.  # noqa: E501
        :type: Sidecars
        """

        self._sidecars = sidecars

    @property
    def templates(self):
        """Gets the templates of this IstioConfigList.  # noqa: E501


        :return: The templates of this IstioConfigList.  # noqa: E501
        :rtype: IstioTemplates
        """
        return self._templates

    @templates.setter
    def templates(self, templates):
        """Sets the templates of this IstioConfigList.


        :param templates: The templates of this IstioConfigList.  # noqa: E501
        :type: IstioTemplates
        """

        self._templates = templates

    @property
    def virtual_services(self):
        """Gets the virtual_services of this IstioConfigList.  # noqa: E501


        :return: The virtual_services of this IstioConfigList.  # noqa: E501
        :rtype: VirtualServices
        """
        return self._virtual_services

    @virtual_services.setter
    def virtual_services(self, virtual_services):
        """Sets the virtual_services of this IstioConfigList.


        :param virtual_services: The virtual_services of this IstioConfigList.  # noqa: E501
        :type: VirtualServices
        """

        self._virtual_services = virtual_services

    @property
    def workload_entries(self):
        """Gets the workload_entries of this IstioConfigList.  # noqa: E501


        :return: The workload_entries of this IstioConfigList.  # noqa: E501
        :rtype: WorkloadEntries
        """
        return self._workload_entries

    @workload_entries.setter
    def workload_entries(self, workload_entries):
        """Sets the workload_entries of this IstioConfigList.


        :param workload_entries: The workload_entries of this IstioConfigList.  # noqa: E501
        :type: WorkloadEntries
        """

        self._workload_entries = workload_entries

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(IstioConfigList, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, IstioConfigList):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
