Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

314
Views
Convert REST API described in OpenAPI specification to AWS API Gateway REST API described in Terraform template

I have OpenAPI 3.0 specification (YAML) of my REST API and I need to describe the same REST API in Terraform template (HCL) as AWS API Gateway resources.

Are there any tools which could help me to convert it automatically?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

AWS' API Gateway directly supports importing an OpenAPI 3.0 spec to define all of the relevant parts of an API Gateway.

With Terraform this can be done with the aws_api_gateway_rest_api resource and the body parameter.

An example is given in the tests for the resource:

resource "aws_api_gateway_rest_api" "test" {
  name = "foo"
  body = <<EOF
{
  "swagger": "2.0",
  "info": {
    "title": "foo",
    "version": "2017-04-20T04:08:08Z"
  },
  "schemes": [
    "https"
  ],
  "paths": {
    "/test": {
      "get": {
        "responses": {
          "200": {
            "description": "200 response"
          }
        },
        "x-amazon-apigateway-integration": {
          "type": "HTTP",
          "uri": "https://www.google.de",
          "httpMethod": "GET",
          "responses": {
            "default": {
              "statusCode": 200
            }
          }
        }
      }
    }
  }
}
EOF
}

You can also use the file function to load the OpenAPI spec from your YAML file directly:

resource "aws_api_gateway_rest_api" "test" {
  name = "foo"
  body = file("${path.module}/api.yml")
}
over 4 years ago · Santiago Trujillo Report

0

Perhaps try the AWS resource itself.

According to the documentation for aws_api_gateway_rest_api you can pass a body argument which is

An OpenAPI specification that defines the set of routes and integrations to create as part of the REST API.

Then, if you need to modify the OpenAPI spec some, you could use your favorite programming language that speaks JSON (e.g. node, java, even jq, etc...).

For more information and to see which extensions are available, see the API Gateway docs.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!