:doc:`AppSync <../../appsync>` / Client / get_resolver

************
get_resolver
************



.. py:method:: AppSync.Client.get_resolver(**kwargs)

  

  Retrieves a ``Resolver`` object.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetResolver>`_  


  **Request Syntax**
  ::

    response = client.get_resolver(
        apiId='string',
        typeName='string',
        fieldName='string'
    )
    
  :type apiId: string
  :param apiId: **[REQUIRED]** 

    The API ID.

    

  
  :type typeName: string
  :param typeName: **[REQUIRED]** 

    The resolver type name.

    

  
  :type fieldName: string
  :param fieldName: **[REQUIRED]** 

    The resolver field name.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'resolver': {
              'typeName': 'string',
              'fieldName': 'string',
              'dataSourceName': 'string',
              'resolverArn': 'string',
              'requestMappingTemplate': 'string',
              'responseMappingTemplate': 'string',
              'kind': 'UNIT'|'PIPELINE',
              'pipelineConfig': {
                  'functions': [
                      'string',
                  ]
              },
              'syncConfig': {
                  'conflictHandler': 'OPTIMISTIC_CONCURRENCY'|'LAMBDA'|'AUTOMERGE'|'NONE',
                  'conflictDetection': 'VERSION'|'NONE',
                  'lambdaConflictHandlerConfig': {
                      'lambdaConflictHandlerArn': 'string'
                  }
              },
              'cachingConfig': {
                  'ttl': 123,
                  'cachingKeys': [
                      'string',
                  ]
              },
              'maxBatchSize': 123,
              'runtime': {
                  'name': 'APPSYNC_JS',
                  'runtimeVersion': 'string'
              },
              'code': 'string',
              'metricsConfig': 'ENABLED'|'DISABLED'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **resolver** *(dict) --* 

        The ``Resolver`` object.

        
        

        - **typeName** *(string) --* 

          The resolver type name.

          
        

        - **fieldName** *(string) --* 

          The resolver field name.

          
        

        - **dataSourceName** *(string) --* 

          The resolver data source name.

          
        

        - **resolverArn** *(string) --* 

          The resolver Amazon Resource Name (ARN).

          
        

        - **requestMappingTemplate** *(string) --* 

          The request mapping template.

          
        

        - **responseMappingTemplate** *(string) --* 

          The response mapping template.

          
        

        - **kind** *(string) --* 

          The resolver type.

           

          
          * **UNIT**: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.
           
          * **PIPELINE**: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.
          

          
        

        - **pipelineConfig** *(dict) --* 

          The ``PipelineConfig``.

          
          

          - **functions** *(list) --* 

            A list of ``Function`` objects.

            
            

            - *(string) --* 
        
      
        

        - **syncConfig** *(dict) --* 

          The ``SyncConfig`` for a resolver attached to a versioned data source.

          
          

          - **conflictHandler** *(string) --* 

            The Conflict Resolution strategy to perform in the event of a conflict.

             

            
            * **OPTIMISTIC_CONCURRENCY**: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server.
             
            * **AUTOMERGE**: Resolve conflicts with the Automerge conflict resolution strategy.
             
            * **LAMBDA**: Resolve conflicts with an Lambda function supplied in the ``LambdaConflictHandlerConfig``.
            

            
          

          - **conflictDetection** *(string) --* 

            The Conflict Detection strategy to use.

             

            
            * **VERSION**: Detect conflicts based on object versions for this resolver.
             
            * **NONE**: Do not detect conflicts when invoking this resolver.
            

            
          

          - **lambdaConflictHandlerConfig** *(dict) --* 

            The ``LambdaConflictHandlerConfig`` when configuring ``LAMBDA`` as the Conflict Handler.

            
            

            - **lambdaConflictHandlerArn** *(string) --* 

              The Amazon Resource Name (ARN) for the Lambda function to use as the Conflict Handler.

              
        
      
        

        - **cachingConfig** *(dict) --* 

          The caching configuration for the resolver.

          
          

          - **ttl** *(integer) --* 

            The TTL in seconds for a resolver that has caching activated.

             

            Valid values are 1–3,600 seconds.

            
          

          - **cachingKeys** *(list) --* 

            The caching keys for a resolver that has caching activated.

             

            Valid values are entries from the ``$context.arguments``, ``$context.source``, and ``$context.identity`` maps.

            
            

            - *(string) --* 
        
      
        

        - **maxBatchSize** *(integer) --* 

          The maximum batching size for a resolver.

          
        

        - **runtime** *(dict) --* 

          Describes a runtime used by an Amazon Web Services AppSync pipeline resolver or Amazon Web Services AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.

          
          

          - **name** *(string) --* 

            The ``name`` of the runtime to use. Currently, the only allowed value is ``APPSYNC_JS``.

            
          

          - **runtimeVersion** *(string) --* 

            The ``version`` of the runtime to use. Currently, the only allowed version is ``1.0.0``.

            
      
        

        - **code** *(string) --* 

          The ``resolver`` code that contains the request and response functions. When code is used, the ``runtime`` is required. The ``runtime`` value must be ``APPSYNC_JS``.

          
        

        - **metricsConfig** *(string) --* 

          Enables or disables enhanced resolver metrics for specified resolvers. Note that ``metricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``metricsConfig`` will be ignored. However, you can still set its value.

           

          ``metricsConfig`` can be ``ENABLED`` or ``DISABLED``.

          
    
  
  **Exceptions**
  
  *   :py:class:`AppSync.Client.exceptions.ConcurrentModificationException`

  
  *   :py:class:`AppSync.Client.exceptions.NotFoundException`

  
  *   :py:class:`AppSync.Client.exceptions.UnauthorizedException`

  