  Resources:

    AppSyncGetCurrentUserQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getCurrentUser
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_current_user",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
          ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

### get supported fields

    AppSyncGetSupportedFieldsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getSupportedFields
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "RDS",
              "userSub" : $util.toJson($ctx.identity.sub),
              "queries": [
                {
                  "query": "SELECT a_system_name AS name, a_name AS label FROM commons.system_label WHERE a_hidden = 0 ORDER BY a_name ASC"
                }
              ]
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $utils.toJson($ctx.result)
          #end

### RDS

    AppSyncGetCollectionsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getCollections
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_collections",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $utils.toJson($ctx.result)
          #end

    AppSyncGetCollectionQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getCollection
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_collection",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end


    AppSyncGetGuessedLabelsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getGuessedLabels
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_guessed_labels",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $utils.toJson($ctx.result)
          #end

    AppSyncGetAllFiltersQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getAllFilters
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_filters",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncGetGroupedFiltersQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getGroupedFilters
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_grouped_filters",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end


    AppSyncGetSavedFiltersQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getSavedFilters
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_saved_filters",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

### S3

    AppSyncGeoJSONQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: geoJSON
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "S3",
              "arguments": {
                "bucket": "system",
                "fileName" : $util.toJson("${context.arguments.region}.geo.json")
              }
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $ctx.result
          #end


    AppSyncGetChannelIdQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getChannelId
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "getChannelId",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncGetCollectionSourceRowsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getCollectionSourceRows
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "S3CSVRows",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end


    AppSyncGetAllAnalyticsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getAllAnalytics
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_analytics",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncGetGroupedAnalyticsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getGroupedAnalytics
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_grouped_analytics",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncGetUniqueProfilesQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: getUniqueProfiles
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_workspace_total_profiles",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $utils.error($context.result.error)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncCountAllQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: countAll
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_count_all",
              "arguments": $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncTestErrorQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: testError
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "testError",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
              "userCompany" : $util.toJson($ctx.identity.claims['custom:company'])
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncAllAlliancesQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: allAlliances
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_alliances",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncAllianceQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: alliance
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_alliance",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncAllianceMembersQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: members
        TypeName: Alliance
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_alliance_members",
              "arguments":  $util.toJson({"allianceId": $ctx.source.id}),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncAllianceSegmentsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: segments
        TypeName: Alliance
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_alliance_segments",
              "arguments":  $util.toJson({"allianceId": $ctx.source.id}),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncAllianceCollectionsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: collections
        TypeName: Alliance
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_alliance_collections",
              "arguments":  $util.toJson({"allianceId": $ctx.source.id}),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncAllianceTotalProfilesQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: totalProfiles
        TypeName: Alliance
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_alliance_totalProfiles",
              "arguments":  $util.toJson({"allianceId": $ctx.source.id}),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $utils.error($context.result.error)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncEventLogQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: eventLog
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/event_log",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $utils.error($context.result.error)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncAllianceAnalyticsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: allianceAnalytics
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_alliance_analytics",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncFbListAudiencesQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbListAudiences
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/list_fb_audiences",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbListAdaccountsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbListAdaccounts
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/list_fb_adaccounts",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbListSdkAdaccountsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbListSdkAdaccounts
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/list_fb_sdk_adaccounts",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbGetStatusQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbGetStatus
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_fb_status",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncfbGetSdkStatusQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbGetSdkStatus
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_fb_sdk_status",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbListCountrySuggestionsResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbListCountrySuggestions
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_fb_country_suggestions",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbListLookalikeRatioSuggestionsResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbListLookalikeRatioSuggestions
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_fb_lookalike_ratio_suggestions",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbListSharedAudiencesResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbListSharedAudiences
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/list_shared_audiences",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbReadAudienceResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbReadAudience
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/read_fb_audience",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbListSavedSdkAdaccountsResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbListSavedSdkAdaccounts
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/list_saved_fb_sdk_adaccounts",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end

    AppSyncFbListSdkScopesResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: fbListSdkScopes
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/list_fb_sdk_required_scopes",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub)
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
            $util.error($context.result.error, $context.result.type)
          #else
            $util.toJson($context.result)
          #end


    AppSyncAllWorkspacesQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: allWorkspaces
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_workspaces",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncWorkspaceQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: workspace
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_workspace",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncWorkspaceTotalProfilesQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: totalProfiles
        TypeName: Workspace
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_workspace_total_profiles",
              "arguments":  $util.toJson({"workspaceId": $ctx.source.id}),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $utils.error($context.result.error)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncTryDeleteWorkspaceQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: tryDeleteWorkspace
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_delete_consequences",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncTryDeleteCollectionQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: tryDeleteCollection
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_delete_consequences",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncTryDeleteAllianceQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: tryDeleteAlliance
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_delete_consequences",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncTryDeleteAllianceCollectionsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: tryDeleteAllianceCollections
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_delete_consequences",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncTryRemoveAllianceMemberQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: tryRemoveAllianceMember
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_delete_consequences",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncTryFbDeleteAudienceQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: tryFbDeleteAudience
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/get_delete_consequences",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncKlaviyoStatusQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: klaviyoStatus
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/get_klaviyo_status",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncKlaviyoListsQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: klaviyoLists
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/list_klaviyo_lists",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncProductPackagesQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: productPackages
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_product_packages",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncCurrentPackageQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: currentPackage
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_current_package",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncInvoicesQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: invoices
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_stripe_invoices",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncBillingInformationQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: billingInformation
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_billing_info",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end

    AppSyncGeoAutocompleteQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: geoAutocomplete
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "field": "geoAutocomplete",
              "endpoint": "pelias/autocomplete",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncPaymentMethodQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: paymentMethod
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_payment_method",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncInvoiceQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: invoice
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "management/get_stripe_invoice",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncExportCSVQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: exportCSV
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "dataprocessor/export_csv",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end


    AppSyncEnrichmentStatusQueryResolver:
      Type: AWS::AppSync::Resolver
      DependsOn:
        - AppSyncSchema
      Properties:
        ApiId: !GetAtt AppSyncApi.ApiId
        DataSourceName: !GetAtt AppSyncInternalRequestsDataSource.Name
        FieldName: enrichmentStatus
        TypeName: Query
        RequestMappingTemplate: |
          {
            "version": "2018-05-29",
            "operation": "Invoke",
            "payload": {
              "typeName": $util.toJson($ctx.info.parentTypeName),
              "field": $util.toJson($ctx.info.fieldName),
              "endpoint": "internal/enrichment/status",
              "arguments":  $util.toJson($ctx.args),
              "userSub" : $util.toJson($ctx.identity.sub),
            }
          }
        ResponseMappingTemplate: |
          #if( $context.result && $context.result.error )
              $util.error($context.result.error, $context.result.type, null, $context.result.info)
          #else
              $utils.toJson($context.result)
          #end
