text: # -*- coding: utf-8 -*-
  #---------------------------------------------------------------------------
  # Copyright 2020 VMware, Inc.  All rights reserved.
  
  # AUTO GENERATED FILE -- DO NOT MODIFY!
  #
  # vAPI stub file for package com.vmware.nsx_policy.infra.service_references.service_profiles.
  #---------------------------------------------------------------------------
  
  """
  
  
  """
  
  __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 (
      ApiInterfaceStub, StubFactoryBase, VapiInterface)
  from vmware.vapi.bindings.common import raise_core_exception
  from vmware.vapi.data.validator import (UnionValidator, HasFieldsOfValidator)
  from vmware.vapi.exception import CoreException
  from vmware.vapi.lib.constants import TaskType
  from vmware.vapi.lib.rest import OperationRestMetadata
  
  
  class GroupAssociations(VapiInterface):
      """
      
      """
  
      _VAPI_SERVICE_ID = 'com.vmware.nsx_policy.infra.service_references.service_profiles.group_associations'
      """
      Identifier of the service in canonical form.
      """
      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, _GroupAssociationsStub)
          self._VAPI_OPERATION_IDS = {}
  
  
      def get(self,
              service_reference_id,
              service_profile_id,
              enforcement_point_path=None,
              ):
          """
          List of Groups used in Redirection rules for a given Service Profile.
  
          :type  service_reference_id: :class:`str`
          :param service_reference_id: Service reference id (required)
          :type  service_profile_id: :class:`str`
          :param service_profile_id: Service profile id (required)
          :type  enforcement_point_path: :class:`str` or ``None``
          :param enforcement_point_path: String Path of the enforcement point (optional)
          :rtype: :class:`com.vmware.nsx_policy.model_client.ServiceProfileGroups`
          :return: com.vmware.nsx_policy.model.ServiceProfileGroups
          :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` 
               Service Unavailable
          :raise: :class:`com.vmware.vapi.std.errors_client.InvalidRequest` 
               Bad Request, Precondition Failed
          :raise: :class:`com.vmware.vapi.std.errors_client.InternalServerError` 
               Internal Server Error
          :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` 
               Forbidden
          :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` 
               Not Found
          """
          return self._invoke('get',
                              {
                              'service_reference_id': service_reference_id,
                              'service_profile_id': service_profile_id,
                              'enforcement_point_path': enforcement_point_path,
                              })
  class ServiceChainMappings(VapiInterface):
      """
      
      """
  
      _VAPI_SERVICE_ID = 'com.vmware.nsx_policy.infra.service_references.service_profiles.service_chain_mappings'
      """
      Identifier of the service in canonical form.
      """
      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, _ServiceChainMappingsStub)
          self._VAPI_OPERATION_IDS = {}
  
  
      def list(self,
               service_reference_id,
               service_profile_id,
               enforcement_point_path=None,
               ):
          """
          List all service chain mappings in the system for the given service
          profile. If no explicit enforcement point is provided in the request,
          will return for default. Else, will return for specified points.
  
          :type  service_reference_id: :class:`str`
          :param service_reference_id: Service reference id (required)
          :type  service_profile_id: :class:`str`
          :param service_profile_id: Service profile id (required)
          :type  enforcement_point_path: :class:`str` or ``None``
          :param enforcement_point_path: String Path of the enforcement point (optional)
          :rtype: :class:`com.vmware.nsx_policy.model_client.ServiceChainMappingListResult`
          :return: com.vmware.nsx_policy.model.ServiceChainMappingListResult
          :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` 
               Service Unavailable
          :raise: :class:`com.vmware.vapi.std.errors_client.InvalidRequest` 
               Bad Request, Precondition Failed
          :raise: :class:`com.vmware.vapi.std.errors_client.InternalServerError` 
               Internal Server Error
          :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` 
               Forbidden
          :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` 
               Not Found
          """
          return self._invoke('list',
                              {
                              'service_reference_id': service_reference_id,
                              'service_profile_id': service_profile_id,
                              'enforcement_point_path': enforcement_point_path,
                              })
  class _GroupAssociationsStub(ApiInterfaceStub):
      def __init__(self, config):
          # properties for get operation
          get_input_type = type.StructType('operation-input', {
              'service_reference_id': type.StringType(),
              'service_profile_id': type.StringType(),
              'enforcement_point_path': type.OptionalType(type.StringType()),
          })
          get_error_dict = {
              'com.vmware.vapi.std.errors.service_unavailable':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'ServiceUnavailable'),
              'com.vmware.vapi.std.errors.invalid_request':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'InvalidRequest'),
              'com.vmware.vapi.std.errors.internal_server_error':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'InternalServerError'),
              'com.vmware.vapi.std.errors.unauthorized':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'Unauthorized'),
              'com.vmware.vapi.std.errors.not_found':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'NotFound'),
  
          }
          get_input_value_validator_list = [
          ]
          get_output_validator_list = [
          ]
          get_rest_metadata = OperationRestMetadata(
              http_method='GET',
              url_template='/policy/api/v1/infra/service-references/{service-reference-id}/service-profiles/{service-profile-id}/group-associations',
              path_variables={
                  'service_reference_id': 'service-reference-id',
                  'service_profile_id': 'service-profile-id',
              },
              query_parameters={
                  'enforcement_point_path': 'enforcement_point_path',
              },
              content_type='application/json'
          )
  
          operations = {
              'get': {
                  'input_type': get_input_type,
                  'output_type': type.ReferenceType('com.vmware.nsx_policy.model_client', 'ServiceProfileGroups'),
                  'errors': get_error_dict,
                  'input_value_validator_list': get_input_value_validator_list,
                  'output_validator_list': get_output_validator_list,
                  'task_type': TaskType.NONE,
              },
          }
          rest_metadata = {
              'get': get_rest_metadata,
          }
          ApiInterfaceStub.__init__(
              self, iface_name='com.vmware.nsx_policy.infra.service_references.service_profiles.group_associations',
              config=config, operations=operations, rest_metadata=rest_metadata,
              is_vapi_rest=False)
  
  class _ServiceChainMappingsStub(ApiInterfaceStub):
      def __init__(self, config):
          # properties for list operation
          list_input_type = type.StructType('operation-input', {
              'service_reference_id': type.StringType(),
              'service_profile_id': type.StringType(),
              'enforcement_point_path': type.OptionalType(type.StringType()),
          })
          list_error_dict = {
              'com.vmware.vapi.std.errors.service_unavailable':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'ServiceUnavailable'),
              'com.vmware.vapi.std.errors.invalid_request':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'InvalidRequest'),
              'com.vmware.vapi.std.errors.internal_server_error':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'InternalServerError'),
              'com.vmware.vapi.std.errors.unauthorized':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'Unauthorized'),
              'com.vmware.vapi.std.errors.not_found':
                  type.ReferenceType('com.vmware.vapi.std.errors_client', 'NotFound'),
  
          }
          list_input_value_validator_list = [
          ]
          list_output_validator_list = [
          ]
          list_rest_metadata = OperationRestMetadata(
              http_method='GET',
              url_template='/policy/api/v1/infra/service-references/{service-reference-id}/service-profiles/{service-profile-id}/service-chain-mappings',
              path_variables={
                  'service_reference_id': 'service-reference-id',
                  'service_profile_id': 'service-profile-id',
              },
              query_parameters={
                  'enforcement_point_path': 'enforcement_point_path',
              },
              content_type='application/json'
          )
  
          operations = {
              'list': {
                  'input_type': list_input_type,
                  'output_type': type.ReferenceType('com.vmware.nsx_policy.model_client', 'ServiceChainMappingListResult'),
                  'errors': list_error_dict,
                  'input_value_validator_list': list_input_value_validator_list,
                  'output_validator_list': list_output_validator_list,
                  'task_type': TaskType.NONE,
              },
          }
          rest_metadata = {
              'list': list_rest_metadata,
          }
          ApiInterfaceStub.__init__(
              self, iface_name='com.vmware.nsx_policy.infra.service_references.service_profiles.service_chain_mappings',
              config=config, operations=operations, rest_metadata=rest_metadata,
              is_vapi_rest=False)
  
  
  class StubFactory(StubFactoryBase):
      _attrs = {
          'GroupAssociations': GroupAssociations,
          'ServiceChainMappings': ServiceChainMappings,
      }
  
  