{
  "Outputs": {
    "stacksFunction": {
      "Value": "[]"
    },
    "stacksWorker": {
      "Value": "[]"
    },
    "GpRestApiEndpointBF901973": {
      "Value": {
        "Fn::Join": [
          "",
          [
            "https://",
            {
              "Ref": "GpRestApi3C403820"
            },
            ".execute-api.us-west-1.",
            {
              "Ref": "AWS::URLSuffix"
            },
            "/",
            {
              "Ref": "GpRestApiDeploymentStageprodFDC6A6D1"
            },
            "/"
          ]
        ]
      }
    },
    "restApiUrl": {
      "Value": {
        "Fn::Join": [
          "",
          [
            "https://",
            {
              "Ref": "GpRestApi3C403820"
            },
            ".execute-api.us-west-1.",
            {
              "Ref": "AWS::URLSuffix"
            },
            "/",
            {
              "Ref": "GpRestApiDeploymentStageprodFDC6A6D1"
            },
            "/"
          ]
        ]
      }
    },
    "datasetBucketUrl": {
      "Value": {
        "Fn::Join": [
          "",
          [
            "https://s3.us-west-1.",
            {
              "Ref": "AWS::URLSuffix"
            },
            "/",
            {
              "Ref": "GpDatasetBucketFB843E6B"
            }
          ]
        ]
      }
    },
    "clientDistributionUrl": {
      "Value": "undefined"
    }
  },
  "Resources": {
    "GpServiceRootFunctionServiceRoleEE990671": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "ManagedPolicyArns": [
          {
            "Fn::Join": [
              "",
              [
                "arn:",
                {
                  "Ref": "AWS::Partition"
                },
                ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
              ]
            ]
          }
        ]
      }
    },
    "GpServiceRootFunction2A71395D": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Code": {
          "S3Bucket": {
            "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-west-1"
          },
          "S3Key": "f56a296ee8b1f44d8d8bbd78b5ae62bb2ed7e5f552e9b073e0ce718d6075a396.zip"
        },
        "FunctionName": "gp-empty-metadata",
        "Handler": "serviceHandlers.projectMetadata",
        "Role": {
          "Fn::GetAtt": [
            "GpServiceRootFunctionServiceRoleEE990671",
            "Arn"
          ]
        },
        "Runtime": "nodejs22.x"
      },
      "DependsOn": [
        "GpServiceRootFunctionServiceRoleEE990671"
      ]
    },
    "GpDatasetBucketFB843E6B": {
      "Type": "AWS::S3::Bucket",
      "Properties": {
        "BucketName": "gp-empty-datasets",
        "CorsConfiguration": {
          "CorsRules": [
            {
              "AllowedHeaders": [
                "*"
              ],
              "AllowedMethods": [
                "HEAD",
                "GET"
              ],
              "AllowedOrigins": [
                "*"
              ],
              "Id": "cors-rule",
              "MaxAge": 3600
            }
          ]
        },
        "PublicAccessBlockConfiguration": {
          "BlockPublicAcls": false,
          "BlockPublicPolicy": false,
          "IgnorePublicAcls": false,
          "RestrictPublicBuckets": false
        },
        "Tags": [
          {
            "Key": "aws-cdk:auto-delete-objects",
            "Value": "true"
          }
        ]
      },
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete"
    },
    "GpDatasetBucketPolicy2C347D8F": {
      "Type": "AWS::S3::BucketPolicy",
      "Properties": {
        "Bucket": {
          "Ref": "GpDatasetBucketFB843E6B"
        },
        "PolicyDocument": {
          "Statement": [
            {
              "Action": "s3:GetObject",
              "Effect": "Allow",
              "Principal": {
                "AWS": "*"
              },
              "Resource": {
                "Fn::Join": [
                  "",
                  [
                    {
                      "Fn::GetAtt": [
                        "GpDatasetBucketFB843E6B",
                        "Arn"
                      ]
                    },
                    "/*"
                  ]
                ]
              }
            },
            {
              "Action": [
                "s3:PutBucketPolicy",
                "s3:GetBucket*",
                "s3:List*",
                "s3:DeleteObject*"
              ],
              "Effect": "Allow",
              "Principal": {
                "AWS": {
                  "Fn::GetAtt": [
                    "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
                    "Arn"
                  ]
                }
              },
              "Resource": [
                {
                  "Fn::GetAtt": [
                    "GpDatasetBucketFB843E6B",
                    "Arn"
                  ]
                },
                {
                  "Fn::Join": [
                    "",
                    [
                      {
                        "Fn::GetAtt": [
                          "GpDatasetBucketFB843E6B",
                          "Arn"
                        ]
                      },
                      "/*"
                    ]
                  ]
                }
              ]
            }
          ],
          "Version": "2012-10-17"
        }
      }
    },
    "GpDatasetBucketAutoDeleteObjectsCustomResourceD389095A": {
      "Type": "Custom::S3AutoDeleteObjects",
      "Properties": {
        "ServiceToken": {
          "Fn::GetAtt": [
            "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F",
            "Arn"
          ]
        },
        "BucketName": {
          "Ref": "GpDatasetBucketFB843E6B"
        }
      },
      "DependsOn": [
        "GpDatasetBucketPolicy2C347D8F"
      ],
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete"
    },
    "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ]
        },
        "ManagedPolicyArns": [
          {
            "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
          }
        ]
      }
    },
    "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Code": {
          "S3Bucket": {
            "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-west-1"
          },
          "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip"
        },
        "Timeout": 900,
        "MemorySize": 128,
        "Handler": "index.handler",
        "Role": {
          "Fn::GetAtt": [
            "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
            "Arn"
          ]
        },
        "Runtime": "nodejs20.x",
        "Description": {
          "Fn::Join": [
            "",
            [
              "Lambda function for auto-deleting objects in ",
              {
                "Ref": "GpDatasetBucketFB843E6B"
              },
              " S3 bucket."
            ]
          ]
        }
      },
      "DependsOn": [
        "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092"
      ]
    },
    "GpRestApi3C403820": {
      "Type": "AWS::ApiGateway::RestApi",
      "Properties": {
        "Description": "Serves API requests for empty.",
        "Name": "gp-empty"
      },
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete"
    },
    "GpRestApiCloudWatchRole263212C0": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "apigateway.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "ManagedPolicyArns": [
          {
            "Fn::Join": [
              "",
              [
                "arn:",
                {
                  "Ref": "AWS::Partition"
                },
                ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs"
              ]
            ]
          }
        ]
      },
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain"
    },
    "GpRestApiAccountFCFC4532": {
      "Type": "AWS::ApiGateway::Account",
      "Properties": {
        "CloudWatchRoleArn": {
          "Fn::GetAtt": [
            "GpRestApiCloudWatchRole263212C0",
            "Arn"
          ]
        }
      },
      "DependsOn": [
        "GpRestApi3C403820"
      ],
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain"
    },
    "GpRestApiDeployment8BC1361A7ff8eb20228284bd7429195836727d77": {
      "Type": "AWS::ApiGateway::Deployment",
      "Properties": {
        "Description": "Serves API requests for empty.",
        "RestApiId": {
          "Ref": "GpRestApi3C403820"
        }
      },
      "DependsOn": [
        "GpRestApiGET037A17F9",
        "GpRestApiOPTIONS0D97A1CF"
      ]
    },
    "GpRestApiDeploymentStageprodFDC6A6D1": {
      "Type": "AWS::ApiGateway::Stage",
      "Properties": {
        "DeploymentId": {
          "Ref": "GpRestApiDeployment8BC1361A7ff8eb20228284bd7429195836727d77"
        },
        "MethodSettings": [
          {
            "DataTraceEnabled": false,
            "HttpMethod": "*",
            "ResourcePath": "/*",
            "ThrottlingBurstLimit": 20,
            "ThrottlingRateLimit": 40
          }
        ],
        "RestApiId": {
          "Ref": "GpRestApi3C403820"
        },
        "StageName": "prod"
      },
      "DependsOn": [
        "GpRestApiAccountFCFC4532"
      ]
    },
    "GpRestApiOPTIONS0D97A1CF": {
      "Type": "AWS::ApiGateway::Method",
      "Properties": {
        "ApiKeyRequired": false,
        "AuthorizationType": "NONE",
        "HttpMethod": "OPTIONS",
        "Integration": {
          "IntegrationResponses": [
            {
              "ResponseParameters": {
                "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent'",
                "method.response.header.Access-Control-Allow-Origin": "'*'",
                "method.response.header.Access-Control-Allow-Methods": "'OPTIONS,GET,PUT,POST,DELETE,PATCH,HEAD'"
              },
              "StatusCode": "204"
            }
          ],
          "RequestTemplates": {
            "application/json": "{ statusCode: 200 }"
          },
          "Type": "MOCK"
        },
        "MethodResponses": [
          {
            "ResponseParameters": {
              "method.response.header.Access-Control-Allow-Headers": true,
              "method.response.header.Access-Control-Allow-Origin": true,
              "method.response.header.Access-Control-Allow-Methods": true
            },
            "StatusCode": "204"
          }
        ],
        "ResourceId": {
          "Fn::GetAtt": [
            "GpRestApi3C403820",
            "RootResourceId"
          ]
        },
        "RestApiId": {
          "Ref": "GpRestApi3C403820"
        }
      }
    },
    "GpRestApiGETApiPermissionemptyGpRestApi7C93265AGETE5E882DC": {
      "Type": "AWS::Lambda::Permission",
      "Properties": {
        "Action": "lambda:InvokeFunction",
        "FunctionName": {
          "Fn::GetAtt": [
            "GpServiceRootFunction2A71395D",
            "Arn"
          ]
        },
        "Principal": "apigateway.amazonaws.com",
        "SourceArn": {
          "Fn::Join": [
            "",
            [
              "arn:",
              {
                "Ref": "AWS::Partition"
              },
              ":execute-api:us-west-1:",
              {
                "Ref": "AWS::AccountId"
              },
              ":",
              {
                "Ref": "GpRestApi3C403820"
              },
              "/",
              {
                "Ref": "GpRestApiDeploymentStageprodFDC6A6D1"
              },
              "/GET/"
            ]
          ]
        }
      }
    },
    "GpRestApiGETApiPermissionTestemptyGpRestApi7C93265AGET728B08BF": {
      "Type": "AWS::Lambda::Permission",
      "Properties": {
        "Action": "lambda:InvokeFunction",
        "FunctionName": {
          "Fn::GetAtt": [
            "GpServiceRootFunction2A71395D",
            "Arn"
          ]
        },
        "Principal": "apigateway.amazonaws.com",
        "SourceArn": {
          "Fn::Join": [
            "",
            [
              "arn:",
              {
                "Ref": "AWS::Partition"
              },
              ":execute-api:us-west-1:",
              {
                "Ref": "AWS::AccountId"
              },
              ":",
              {
                "Ref": "GpRestApi3C403820"
              },
              "/test-invoke-stage/GET/"
            ]
          ]
        }
      }
    },
    "GpRestApiGET037A17F9": {
      "Type": "AWS::ApiGateway::Method",
      "Properties": {
        "AuthorizationType": "NONE",
        "HttpMethod": "GET",
        "Integration": {
          "IntegrationHttpMethod": "POST",
          "RequestTemplates": {
            "application/json": "{ \"statusCode\": \"200\" }"
          },
          "Type": "AWS_PROXY",
          "Uri": {
            "Fn::Join": [
              "",
              [
                "arn:",
                {
                  "Ref": "AWS::Partition"
                },
                ":apigateway:us-west-1:lambda:path/2015-03-31/functions/",
                {
                  "Fn::GetAtt": [
                    "GpServiceRootFunction2A71395D",
                    "Arn"
                  ]
                },
                "/invocations"
              ]
            ]
          }
        },
        "ResourceId": {
          "Fn::GetAtt": [
            "GpRestApi3C403820",
            "RootResourceId"
          ]
        },
        "RestApiId": {
          "Ref": "GpRestApi3C403820"
        }
      }
    }
  },
  "Parameters": {
    "BootstrapVersion": {
      "Type": "AWS::SSM::Parameter::Value<String>",
      "Default": "/cdk-bootstrap/hnb659fds/version",
      "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
    }
  },
  "Rules": {
    "CheckBootstrapVersion": {
      "Assertions": [
        {
          "Assert": {
            "Fn::Not": [
              {
                "Fn::Contains": [
                  [
                    "1",
                    "2",
                    "3",
                    "4",
                    "5"
                  ],
                  {
                    "Ref": "BootstrapVersion"
                  }
                ]
              }
            ]
          },
          "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
        }
      ]
    }
  }
}
