{
  "Parameters": {
    "DynamoDBModelTableReadIOPS": {
      "Type": "Number",
      "Default": 5,
      "Description": "The number of read IOPS the table should support."
    },
    "DynamoDBModelTableWriteIOPS": {
      "Type": "Number",
      "Default": 5,
      "Description": "The number of write IOPS the table should support."
    },
    "DynamoDBBillingMode": {
      "Type": "String",
      "Default": "PAY_PER_REQUEST",
      "AllowedValues": [
        "PAY_PER_REQUEST",
        "PROVISIONED"
      ],
      "Description": "Configure @model types to create DynamoDB tables with PAY_PER_REQUEST or PROVISIONED billing modes."
    },
    "DynamoDBEnablePointInTimeRecovery": {
      "Type": "String",
      "Default": "false",
      "AllowedValues": [
        "true",
        "false"
      ],
      "Description": "Whether to enable Point in Time Recovery on the table."
    },
    "DynamoDBEnableServerSideEncryption": {
      "Type": "String",
      "Default": "true",
      "AllowedValues": [
        "true",
        "false"
      ],
      "Description": "Enable server side encryption powered by KMS."
    },
    "referencetotransformerrootstackenv10C5A902Ref": {
      "Type": "String"
    },
    "referencetotransformerrootstackGraphQLAPI20497F53ApiId": {
      "Type": "String"
    },
    "referencetotransformerrootstackS3DeploymentBucket7592718ARef": {
      "Type": "String"
    },
    "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref": {
      "Type": "String"
    },
    "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowQuerygetFollowauth0FunctionQuerygetFollowauth0FunctionAppSyncFunction4D0BAD6FFunctionId": {
      "Type": "String"
    },
    "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId": {
      "Type": "String"
    },
    "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserMutationcreateUserinit0FunctionMutationcreateUserinit0FunctionAppSyncFunction5CF77F6AFunctionId": {
      "Type": "String"
    },
    "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowMutationcreateFollowauth0FunctionMutationcreateFollowauth0FunctionAppSyncFunctionF9F07A49FunctionId": {
      "Type": "String"
    },
    "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserMutationupdateUserinit0FunctionMutationupdateUserinit0FunctionAppSyncFunction90E2C98AFunctionId": {
      "Type": "String"
    },
    "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowSubscriptiononCreateFollowauth0FunctionSubscriptiononCreateFollowauth0FunctionAppSyncFunction54BF6B84FunctionId": {
      "Type": "String"
    },
    "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserSubscriptionOnCreateUserDataResolverFnSubscriptionOnCreateUserDataResolverFnAppSyncFunctionCAFEE24EFunctionId": {
      "Type": "String"
    }
  },
  "Conditions": {
    "HasEnvironmentParameter": {
      "Fn::Not": [
        {
          "Fn::Equals": [
            {
              "Ref": "referencetotransformerrootstackenv10C5A902Ref"
            },
            "NONE"
          ]
        }
      ]
    },
    "ShouldUseServerSideEncryption": {
      "Fn::Equals": [
        {
          "Ref": "DynamoDBEnableServerSideEncryption"
        },
        "true"
      ]
    },
    "ShouldUsePayPerRequestBilling": {
      "Fn::Equals": [
        {
          "Ref": "DynamoDBBillingMode"
        },
        "PAY_PER_REQUEST"
      ]
    },
    "ShouldUsePointInTimeRecovery": {
      "Fn::Equals": [
        {
          "Ref": "DynamoDBEnablePointInTimeRecovery"
        },
        "true"
      ]
    }
  },
  "Resources": {
    "ConvertJobTable": {
      "Type": "AWS::DynamoDB::Table",
      "Properties": {
        "KeySchema": [
          {
            "AttributeName": "id",
            "KeyType": "HASH"
          }
        ],
        "AttributeDefinitions": [
          {
            "AttributeName": "id",
            "AttributeType": "S"
          },
          {
            "AttributeName": "convertStatus",
            "AttributeType": "S"
          },
          {
            "AttributeName": "updatedAt",
            "AttributeType": "S"
          }
        ],
        "BillingMode": {
          "Fn::If": [
            "ShouldUsePayPerRequestBilling",
            "PAY_PER_REQUEST",
            {
              "Ref": "AWS::NoValue"
            }
          ]
        },
        "GlobalSecondaryIndexes": [
          {
            "IndexName": "getConvertsJobByDate",
            "KeySchema": [
              {
                "AttributeName": "convertStatus",
                "KeyType": "HASH"
              },
              {
                "AttributeName": "updatedAt",
                "KeyType": "RANGE"
              }
            ],
            "Projection": {
              "ProjectionType": "ALL"
            },
            "ProvisionedThroughput": {
              "Fn::If": [
                "ShouldUsePayPerRequestBilling",
                {
                  "Ref": "AWS::NoValue"
                },
                {
                  "ReadCapacityUnits": {
                    "Ref": "DynamoDBModelTableReadIOPS"
                  },
                  "WriteCapacityUnits": {
                    "Ref": "DynamoDBModelTableWriteIOPS"
                  }
                }
              ]
            }
          }
        ],
        "PointInTimeRecoverySpecification": {
          "Fn::If": [
            "ShouldUsePointInTimeRecovery",
            {
              "PointInTimeRecoveryEnabled": true
            },
            {
              "Ref": "AWS::NoValue"
            }
          ]
        },
        "ProvisionedThroughput": {
          "Fn::If": [
            "ShouldUsePayPerRequestBilling",
            {
              "Ref": "AWS::NoValue"
            },
            {
              "ReadCapacityUnits": {
                "Ref": "DynamoDBModelTableReadIOPS"
              },
              "WriteCapacityUnits": {
                "Ref": "DynamoDBModelTableWriteIOPS"
              }
            }
          ]
        },
        "SSESpecification": {
          "SSEEnabled": {
            "Fn::If": [
              "ShouldUseServerSideEncryption",
              true,
              false
            ]
          }
        },
        "StreamSpecification": {
          "StreamViewType": "NEW_AND_OLD_IMAGES"
        },
        "TableName": {
          "Fn::Join": [
            "",
            [
              "ConvertJob-",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "-",
              {
                "Ref": "referencetotransformerrootstackenv10C5A902Ref"
              }
            ]
          ]
        }
      },
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete"
    },
    "ConvertJobIAMRole744C23F6": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "appsync.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "RoleName": {
          "Fn::Join": [
            "",
            [
              "ConvertJobIAMRoled44577-",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "-",
              {
                "Ref": "referencetotransformerrootstackenv10C5A902Ref"
              }
            ]
          ]
        }
      }
    },
    "ConvertJobIAMRoleDefaultPolicyC915E601": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": [
                "dynamodb:BatchGetItem",
                "dynamodb:GetRecords",
                "dynamodb:GetShardIterator",
                "dynamodb:Query",
                "dynamodb:GetItem",
                "dynamodb:Scan",
                "dynamodb:ConditionCheckItem",
                "dynamodb:BatchWriteItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem",
                "dynamodb:DescribeTable"
              ],
              "Effect": "Allow",
              "Resource": [
                {
                  "Fn::GetAtt": [
                    "ConvertJobTable",
                    "Arn"
                  ]
                },
                {
                  "Fn::Join": [
                    "",
                    [
                      {
                        "Fn::GetAtt": [
                          "ConvertJobTable",
                          "Arn"
                        ]
                      },
                      "/index/*"
                    ]
                  ]
                }
              ]
            }
          ],
          "Version": "2012-10-17"
        },
        "PolicyName": "ConvertJobIAMRoleDefaultPolicyC915E601",
        "Roles": [
          {
            "Ref": "ConvertJobIAMRole744C23F6"
          }
        ]
      }
    },
    "DynamoDBAccess71ABE5AE": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": [
                "dynamodb:BatchGetItem",
                "dynamodb:BatchWriteItem",
                "dynamodb:PutItem",
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem"
              ],
              "Effect": "Allow",
              "Resource": [
                {
                  "Fn::Sub": [
                    "arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}",
                    {
                      "tablename": {
                        "Fn::Join": [
                          "",
                          [
                            "ConvertJob-",
                            {
                              "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
                            },
                            "-",
                            {
                              "Ref": "referencetotransformerrootstackenv10C5A902Ref"
                            }
                          ]
                        ]
                      }
                    }
                  ]
                },
                {
                  "Fn::Sub": [
                    "arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}/*",
                    {
                      "tablename": {
                        "Fn::Join": [
                          "",
                          [
                            "ConvertJob-",
                            {
                              "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
                            },
                            "-",
                            {
                              "Ref": "referencetotransformerrootstackenv10C5A902Ref"
                            }
                          ]
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          ],
          "Version": "2012-10-17"
        },
        "PolicyName": "DynamoDBAccess71ABE5AE",
        "Roles": [
          {
            "Ref": "ConvertJobIAMRole744C23F6"
          }
        ]
      }
    },
    "ConvertJobDataSource": {
      "Type": "AWS::AppSync::DataSource",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "Name": "ConvertJobTable",
        "Type": "AMAZON_DYNAMODB",
        "DynamoDBConfig": {
          "AwsRegion": {
            "Ref": "AWS::Region"
          },
          "TableName": {
            "Ref": "ConvertJobTable"
          }
        },
        "ServiceRoleArn": {
          "Fn::GetAtt": [
            "ConvertJobIAMRole744C23F6",
            "Arn"
          ]
        }
      },
      "DependsOn": [
        "ConvertJobIAMRole744C23F6"
      ]
    },
    "QueryGetConvertJobDataResolverFnQueryGetConvertJobDataResolverFnAppSyncFunction83D6C5B5": {
      "Type": "AWS::AppSync::FunctionConfiguration",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "ConvertJobDataSource",
            "Name"
          ]
        },
        "Name": "QueryGetConvertJobDataResolverFn",
        "FunctionVersion": "2018-05-29",
        "RequestMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Query.getConvertJob.req.vtl"
            ]
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Query.getConvertJob.res.vtl"
            ]
          ]
        }
      },
      "DependsOn": [
        "ConvertJobDataSource"
      ]
    },
    "GetConvertJobResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "getConvertJob",
        "TypeName": "Query",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Ref": "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowQuerygetFollowauth0FunctionQuerygetFollowauth0FunctionAppSyncFunction4D0BAD6FFunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Fn::GetAtt": [
                "QueryGetConvertJobDataResolverFnQueryGetConvertJobDataResolverFnAppSyncFunction83D6C5B5",
                "FunctionId"
              ]
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"getConvertJob\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n$util.qr($ctx.stash.put(\"tableName\", \"",
              {
                "Ref": "ConvertJobTable"
              },
              "\"))\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    },
    "QueryListConvertJobsDataResolverFnQueryListConvertJobsDataResolverFnAppSyncFunction6EFC019E": {
      "Type": "AWS::AppSync::FunctionConfiguration",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "ConvertJobDataSource",
            "Name"
          ]
        },
        "Name": "QueryListConvertJobsDataResolverFn",
        "FunctionVersion": "2018-05-29",
        "RequestMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Query.listConvertJobs.req.vtl"
            ]
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Query.listConvertJobs.res.vtl"
            ]
          ]
        }
      },
      "DependsOn": [
        "ConvertJobDataSource"
      ]
    },
    "ListConvertJobResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "listConvertJobs",
        "TypeName": "Query",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Ref": "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowQuerygetFollowauth0FunctionQuerygetFollowauth0FunctionAppSyncFunction4D0BAD6FFunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Fn::GetAtt": [
                "QueryListConvertJobsDataResolverFnQueryListConvertJobsDataResolverFnAppSyncFunction6EFC019E",
                "FunctionId"
              ]
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"listConvertJobs\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n$util.qr($ctx.stash.put(\"tableName\", \"",
              {
                "Ref": "ConvertJobTable"
              },
              "\"))\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    },
    "MutationCreateConvertJobDataResolverFnMutationCreateConvertJobDataResolverFnAppSyncFunctionBC7F138B": {
      "Type": "AWS::AppSync::FunctionConfiguration",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "ConvertJobDataSource",
            "Name"
          ]
        },
        "Name": "MutationCreateConvertJobDataResolverFn",
        "FunctionVersion": "2018-05-29",
        "RequestMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.createConvertJob.req.vtl"
            ]
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.createConvertJob.res.vtl"
            ]
          ]
        }
      },
      "DependsOn": [
        "ConvertJobDataSource"
      ]
    },
    "CreateConvertJobResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "createConvertJob",
        "TypeName": "Mutation",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserMutationcreateUserinit0FunctionMutationcreateUserinit0FunctionAppSyncFunction5CF77F6AFunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowMutationcreateFollowauth0FunctionMutationcreateFollowauth0FunctionAppSyncFunctionF9F07A49FunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Fn::GetAtt": [
                "MutationCreateConvertJobDataResolverFnMutationCreateConvertJobDataResolverFnAppSyncFunctionBC7F138B",
                "FunctionId"
              ]
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"createConvertJob\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n$util.qr($ctx.stash.put(\"tableName\", \"",
              {
                "Ref": "ConvertJobTable"
              },
              "\"))\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    },
    "MutationupdateConvertJobauth0FunctionMutationupdateConvertJobauth0FunctionAppSyncFunctionCFB008CC": {
      "Type": "AWS::AppSync::FunctionConfiguration",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "ConvertJobDataSource",
            "Name"
          ]
        },
        "Name": "MutationupdateConvertJobauth0Function",
        "FunctionVersion": "2018-05-29",
        "RequestMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.updateConvertJob.auth.1.req.vtl"
            ]
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.updateConvertJob.auth.1.res.vtl"
            ]
          ]
        }
      },
      "DependsOn": [
        "ConvertJobDataSource"
      ]
    },
    "MutationUpdateConvertJobDataResolverFnMutationUpdateConvertJobDataResolverFnAppSyncFunctionB54D95AD": {
      "Type": "AWS::AppSync::FunctionConfiguration",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "ConvertJobDataSource",
            "Name"
          ]
        },
        "Name": "MutationUpdateConvertJobDataResolverFn",
        "FunctionVersion": "2018-05-29",
        "RequestMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.updateConvertJob.req.vtl"
            ]
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.updateConvertJob.res.vtl"
            ]
          ]
        }
      },
      "DependsOn": [
        "ConvertJobDataSource"
      ]
    },
    "UpdateConvertJobResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "updateConvertJob",
        "TypeName": "Mutation",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserMutationupdateUserinit0FunctionMutationupdateUserinit0FunctionAppSyncFunction90E2C98AFunctionId"
            },
            {
              "Fn::GetAtt": [
                "MutationupdateConvertJobauth0FunctionMutationupdateConvertJobauth0FunctionAppSyncFunctionCFB008CC",
                "FunctionId"
              ]
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Fn::GetAtt": [
                "MutationUpdateConvertJobDataResolverFnMutationUpdateConvertJobDataResolverFnAppSyncFunctionB54D95AD",
                "FunctionId"
              ]
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"updateConvertJob\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n$util.qr($ctx.stash.put(\"tableName\", \"",
              {
                "Ref": "ConvertJobTable"
              },
              "\"))\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    },
    "MutationdeleteConvertJobauth0FunctionMutationdeleteConvertJobauth0FunctionAppSyncFunctionA67C4CE9": {
      "Type": "AWS::AppSync::FunctionConfiguration",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "ConvertJobDataSource",
            "Name"
          ]
        },
        "Name": "MutationdeleteConvertJobauth0Function",
        "FunctionVersion": "2018-05-29",
        "RequestMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.deleteConvertJob.auth.1.req.vtl"
            ]
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.deleteConvertJob.auth.1.res.vtl"
            ]
          ]
        }
      },
      "DependsOn": [
        "ConvertJobDataSource"
      ]
    },
    "MutationDeleteConvertJobDataResolverFnMutationDeleteConvertJobDataResolverFnAppSyncFunction29AA3909": {
      "Type": "AWS::AppSync::FunctionConfiguration",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "ConvertJobDataSource",
            "Name"
          ]
        },
        "Name": "MutationDeleteConvertJobDataResolverFn",
        "FunctionVersion": "2018-05-29",
        "RequestMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.deleteConvertJob.req.vtl"
            ]
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Mutation.deleteConvertJob.res.vtl"
            ]
          ]
        }
      },
      "DependsOn": [
        "ConvertJobDataSource"
      ]
    },
    "DeleteConvertJobResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "deleteConvertJob",
        "TypeName": "Mutation",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Fn::GetAtt": [
                "MutationdeleteConvertJobauth0FunctionMutationdeleteConvertJobauth0FunctionAppSyncFunctionA67C4CE9",
                "FunctionId"
              ]
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Fn::GetAtt": [
                "MutationDeleteConvertJobDataResolverFnMutationDeleteConvertJobDataResolverFnAppSyncFunction29AA3909",
                "FunctionId"
              ]
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"deleteConvertJob\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n$util.qr($ctx.stash.put(\"tableName\", \"",
              {
                "Ref": "ConvertJobTable"
              },
              "\"))\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    },
    "SubscriptiononCreateConvertJobResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "onCreateConvertJob",
        "TypeName": "Subscription",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Ref": "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowSubscriptiononCreateFollowauth0FunctionSubscriptiononCreateFollowauth0FunctionAppSyncFunction54BF6B84FunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserSubscriptionOnCreateUserDataResolverFnSubscriptionOnCreateUserDataResolverFnAppSyncFunctionCAFEE24EFunctionId"
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onCreateConvertJob\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    },
    "SubscriptiononUpdateConvertJobResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "onUpdateConvertJob",
        "TypeName": "Subscription",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Ref": "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowSubscriptiononCreateFollowauth0FunctionSubscriptiononCreateFollowauth0FunctionAppSyncFunction54BF6B84FunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserSubscriptionOnCreateUserDataResolverFnSubscriptionOnCreateUserDataResolverFnAppSyncFunctionCAFEE24EFunctionId"
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onUpdateConvertJob\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    },
    "SubscriptiononDeleteConvertJobResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "onDeleteConvertJob",
        "TypeName": "Subscription",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Ref": "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowSubscriptiononCreateFollowauth0FunctionSubscriptiononCreateFollowauth0FunctionAppSyncFunction54BF6B84FunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserSubscriptionOnCreateUserDataResolverFnSubscriptionOnCreateUserDataResolverFnAppSyncFunctionCAFEE24EFunctionId"
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onDeleteConvertJob\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    },
    "QueryGetConvertsJobByDateDataResolverFnQueryGetConvertsJobByDateDataResolverFnAppSyncFunctionF0D60A75": {
      "Type": "AWS::AppSync::FunctionConfiguration",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "DataSourceName": {
          "Fn::GetAtt": [
            "ConvertJobDataSource",
            "Name"
          ]
        },
        "Name": "QueryGetConvertsJobByDateDataResolverFn",
        "FunctionVersion": "2018-05-29",
        "RequestMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Query.getConvertsJobByDate.req.vtl"
            ]
          ]
        },
        "ResponseMappingTemplateS3Location": {
          "Fn::Join": [
            "",
            [
              "s3://",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentBucket7592718ARef"
              },
              "/",
              {
                "Ref": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref"
              },
              "/resolvers/Query.getConvertsJobByDate.res.vtl"
            ]
          ]
        }
      },
      "DependsOn": [
        "ConvertJobDataSource"
      ]
    },
    "QuerygetConvertsJobByDateResolver": {
      "Type": "AWS::AppSync::Resolver",
      "Properties": {
        "ApiId": {
          "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
        },
        "FieldName": "getConvertsJobByDate",
        "TypeName": "Query",
        "Kind": "PIPELINE",
        "PipelineConfig": {
          "Functions": [
            {
              "Ref": "referencetotransformerrootstackFollowNestedStackFollowNestedStackResource6C78E3E6OutputstransformerrootstackFollowQuerygetFollowauth0FunctionQuerygetFollowauth0FunctionAppSyncFunction4D0BAD6FFunctionId"
            },
            {
              "Ref": "referencetotransformerrootstackUserNestedStackUserNestedStackResource01084C14OutputstransformerrootstackUserQuerygetUserpostAuth0FunctionQuerygetUserpostAuth0FunctionAppSyncFunction083DF5E5FunctionId"
            },
            {
              "Fn::GetAtt": [
                "QueryGetConvertsJobByDateDataResolverFnQueryGetConvertsJobByDateDataResolverFnAppSyncFunctionF0D60A75",
                "FunctionId"
              ]
            }
          ]
        },
        "RequestMappingTemplate": {
          "Fn::Join": [
            "",
            [
              "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"getConvertsJobByDate\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"",
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "\"))\n$util.qr($ctx.stash.put(\"tableName\", \"",
              {
                "Ref": "ConvertJobTable"
              },
              "\"))\n$util.toJson({})"
            ]
          ]
        },
        "ResponseMappingTemplate": "$util.toJson($ctx.prev.result)"
      }
    }
  },
  "Outputs": {
    "GetAttConvertJobTableStreamArn": {
      "Description": "Your DynamoDB table StreamArn.",
      "Value": {
        "Fn::GetAtt": [
          "ConvertJobTable",
          "StreamArn"
        ]
      },
      "Export": {
        "Name": {
          "Fn::Join": [
            ":",
            [
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "GetAtt:ConvertJobTable:StreamArn"
            ]
          ]
        }
      }
    },
    "GetAttConvertJobTableName": {
      "Description": "Your DynamoDB table name.",
      "Value": {
        "Ref": "ConvertJobTable"
      },
      "Export": {
        "Name": {
          "Fn::Join": [
            ":",
            [
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "GetAtt:ConvertJobTable:Name"
            ]
          ]
        }
      }
    },
    "GetAttConvertJobDataSourceName": {
      "Description": "Your model DataSource name.",
      "Value": {
        "Fn::GetAtt": [
          "ConvertJobDataSource",
          "Name"
        ]
      },
      "Export": {
        "Name": {
          "Fn::Join": [
            ":",
            [
              {
                "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId"
              },
              "GetAtt:ConvertJobDataSource:Name"
            ]
          ]
        }
      }
    },
    "transformerrootstackConvertJobConvertJobDataSource989448C3Name": {
      "Value": {
        "Fn::GetAtt": [
          "ConvertJobDataSource",
          "Name"
        ]
      }
    },
    "transformerrootstackConvertJobConvertJobTable630A1455Ref": {
      "Value": {
        "Ref": "ConvertJobTable"
      }
    }
  }
}