OpenAPI Terraform Provider that configures itself at runtime with the resources exposed by the service provider (defined in a swagger file)

Overview

Terraform Provider OpenAPI Build Status GoDoc GoReportCard CodeCov

This terraform provider aims to minimise as much as possible the efforts needed from service providers to create and maintain custom terraform providers. This provider uses terraform as the engine that will orchestrate and manage the cycle of the resources and depends on a swagger file (hosted on a remote endpoint) to successfully configure itself dynamically at runtime.

Powered by https://www.terraform.io

Following The OpenAPI Specification

What are the main pain points that this terraform provider tries to tackle?

  • As as service provider, you can focus on improving the service itself rather than the tooling around it.
  • Due to the dynamic nature of this terraform provider, the service provider can continue expanding the functionality of the different APIs by introducing new versions, and this terraform provider will be able to discover the new resource versions automatically without the need to add support for those as you would when mantining your own custom Terraform provider.
  • Find consistency across APIs provided by different teams encouraging the adoption of OpenAPI specification for describing, producing, consuming, and visualizing RESTful Web services.

Overview

API terraform provider is a powerful full-fledged terraform provider that is able to configure itself at runtime based on a Swagger specification file containing the definitions of the APIs exposed. The dynamic nature of this provider is what makes it very flexible and convenient for service providers as subsequent upgrades to their APIs will not require new compilations of this provider. The service provider APIs are discovered on the fly and therefore the service providers can focus on their services rather than the tooling around it.

Pre-requirements

  • The service provider hosts APIs compliant with OpenApi and swagger spec file is available via a discovery endpoint.

Requirements

  • Terraform v0.12.0 (to execute the terraform provider plugin)
  • Go 1.12.4 (to build the provider plugin)
    • This project uses go modules for dependency management
  • Docker 17.09.0-ce (to run service provider example)
  • Docker-compose 1.16.1 (to run service provider example)

How to use Terraform Provider OpenAPI

Things to know regarding custom terraform providers

  • Terraform expects third party providers to be manually installed in the '.terraform.d/plugins' sub-path in your user's home directory.
  • Terraform expects terraform provider names to follow a specific naming scheme. The naming scheme for plugins is terraform-<type>-NAME_vX.Y.Z, where type is either provider or provisioner.

More information about how terraform discovers third party terraform providers and naming conventions here.

OpenAPI Terraform provider installation

There are multiple ways how the OpenAPI Terraform provider can be installed. Please refer to the OpenAPI Terraform provider installation document to learn more about it.

OpenAPI Terraform provider in action

After having provisioned your environment with the OpenAPI Terraform provider you can now write Terraform configuration files using resources provided by the OpenAPI service. Refer to Using the OpenAPI Terraform Provider doc for more details.

Terraform provider documentation

You can generate the Terraform documentation automatically given an already Terraform compatible OpenAPI document using the The OpenAPI Terraform Documentation Renderer library. The OpenAPI document is the source of truth for both the OpenAPI Terraform provider as well as the user facing documentation.

References

Additionally, the following documents provide deep insight regarding OpenAPI and Terraform as well as frequently asked questions:

  • How to document contains information about how to define a swagger file following good practises that make it work seamlessly with this terraform provider. Additionally, learn more about what is currently supported.
  • Migrating to Terraform 0.12. This document describes how to update configuration created using Terraform v0.11 to v0.12.
  • FAQ document answers for the most frequently asked questions.

Contributing

Please follow the guidelines from:

References

  • go-swagger: Api terraform provider makes extensive use of this library which offers a very convenient implementation to serialize and deserialize swagger specifications.
  • JsonPath: Json path is used in the plugin external configuration file to define values for provider schema properties that are coming from external files.

Authors

  • Daniel I. Khan Ramiro

See also the list of contributors who participated in this project.

Comments
  • subdocuments: parent_id is required in all arrays elements

    subdocuments: parent_id is required in all arrays elements

    Describe the bug

    parent_id is required in all arrays elements of the subdocument

    To Reproduce

    Using the following swagger spec

    swagger: '2.0'
    paths:
      "/zone":
        post:
          description: ''
          parameters:
          - in: body
            name: body
            required: true
            schema:
              "$ref": "#/definitions/zone"
          responses:
            '200':
              description: OK
              schema:
                "$ref": "#/definitions/zone"
      "/zone/{zone_id}":
        get:
          description: ''
          parameters:
          - in: path
            name: zone_id
            required: true
            type: string
          responses:
            '200':
              schema:
                "$ref": "#/definitions/zone"
      "/zone/{zone_id}/recordset":
        get:
          responses:
            '200':
              description: OK
              schema:
                items:
                  "$ref": "#/definitions/zone_recordset"
                type: array
        post:
          description: ''
          parameters:
          - in: path
            name: zone2_id
            required: true
            type: string
          - in: body
            name: body
            required: true
            schema:
              "$ref": "#/definitions/zone_recordset"
          responses:
            '200':
              description: OK
              schema:
                "$ref": "#/definitions/zone_recordset"
      "/zone/{zone_id}/recordset/{id}":
        get:
          description: ''
          parameters:
          - in: path
            name: zone_id
            required: true
            type: string
          - in: path
            name: id
            required: true
            type: string
          responses:
            '200':
              schema:
                "$ref": "#/definitions/zone_recordset"
    
    definitions:
      zone:
        type: object
        required:
          - name
        properties:
          id:
            type: string
            readOnly: true
          name:
            type: string
      zone_recordset:
        type: object
        properties:
          id:
            type: string
            readOnly: true
          zone_id:
            type: string
            readOnly: true
          record:
            type: array
            items:
              type: object
              properties:
                content:
                  type: string
    

    Terraform

    resource "demo_zone" "test" {
        name = "test.com"
    }
    
    resource "demo_zone_recordset" "test" {
        zone_id = "${demo_zone.test.id}"
    
        record {
            # parent_id is required in all subdocuments arrays
            # zone_id = "${demo_zone.test.id}"
            content = "test"
        }
    }
    

    Terraform plan

    $ terraform plan
    
    Error Missing required argument
    
      on main.tf line 8, in resource "demo_zone_recordset" "test":
      8:     record {
    
    The argument "zone_id" is required, but no definition was found.
    

    Expected behaviour

    parent_id shouldn't be required.

    Checklist

    Don't forget to go through the checklist to make sure the issue is created properly:

    • [x] I have added a corresponding label (feature request/bug/etc) to the issue (right side menu)
    • [x] I have added this issue to the 'API Terraform Provider' GitHub project (right side menu)
    bug good first issue 
    opened by fredericosilva 12
  • "error = 'openapi' not found in provider's services configuration"

    Describe the bug

    Attempting to run plan against sample goa environment.

    A clear and concise description on how does it work now and what's the current behaviour.

    Steps to reproduce the behavior:

    1. make local-env
    2. export PROVIDER_NAME=goa && curl -fsSL https://raw.githubusercontent.com/dikhan/terraform-provider-openapi/master/scripts/install.sh | bash -s -- --provider-name $PROVIDER_NAME
    3. create main.tf using example
    4. terraform init && terraform plan

    I also had to set the url using the terraform-provider-openapi.yaml as setting the OTF_VAR_goa_SWAGGER_URL env variable had no e ffect and only errored saying the OTF_VAR_goa_SWAGGER_URL wasn't set.

    Expected behaviour

    A completed plan without error.

    Additional context

    2018-10-06T20:29:14.448Z [DEBUG] plugin: starting plugin: path=/home/vagrant/.terraform.d/plugins/terraform-provider-goa args=[/home/va
    grant/.terraform.d/plugins/terraform-provider-goa]
    2018-10-06T20:29:14.451Z [DEBUG] plugin: waiting for RPC address: path=/home/vagrant/.terraform.d/plugins/terraform-provider-goa
    2018-10-06T20:29:14.542Z [DEBUG] plugin.terraform-provider-goa: plugin address: timestamp=2018-10-06T20:29:14.541Z network=unix address
    =/tmp/plugin059454931
    2018-10-06T20:29:14.543Z [DEBUG] plugin.terraform-provider-goa: 2018/10/06 20:29:14 [INFO] found open api plugin configuration at /home/vagrant/.terraform.d/plugins/terraform-provider-openapi.yaml
    2018-10-06T20:29:14.544Z [DEBUG] plugin.terraform-provider-goa: 2018/10/06 20:29:14 [ERROR] There was an error initialising the terraform provider: plugin init error: error occurred when getting service configuration from plugin configuration file terraform-provider-ope
    napi.yaml - error = 'openapi' not found in provider's services configuration
    2018/10/06 20:29:14 [ERROR] root: eval: *terraform.EvalInitProvider, err: unexpected EOF
    2018/10/06 20:29:14 [ERROR] root: eval: *terraform.EvalSequence, err: unexpected EOF
    2018/10/06 20:29:14 [TRACE] [walkInput] Exiting eval tree: provider.goa
    2018/10/06 20:29:14 [TRACE] dag/walk: upstream errored, not walking "goa_bottles.my_bottle"
    2018/10/06 20:29:14 [TRACE] dag/walk: upstream errored, not walking "provider.goa (close)"
    2018/10/06 20:29:14 [TRACE] dag/walk: upstream errored, not walking "meta.count-boundary (count boundary fixup)"
    2018/10/06 20:29:14 [TRACE] dag/walk: upstream errored, not walking "root"
    
    2018/10/06 20:29:14 [DEBUG] plugin: waiting for all plugin processes to complete...
    2018-10-06T20:29:14.547Z [WARN ] plugin: error closing client during Kill: err="connection is shut down"
    Error: Error asking for user input: 1 error(s) occurred:
    
    * provider.goa: unexpected EOF
    
    
    bug good first issue 
    opened by jbarnes7952 9
  • OpenAPI provider not working

    OpenAPI provider not working

    Describe the bug

    When attempting to use the OpenAPI provider on Windows system, terraform does not identify it.

    To Reproduce

    Steps to reproduce the behavior:

    1. On Windows 10, install the the openapi executable in both:
      • %APPDATA%\terraform.d\plugins
      • C:\hashicorp\ (location of terraform)
    2. Configure terraform-provider-openapi.yaml
      • change the services to antserver
    3. Copy the openapi executeable to terraform-provider-antserver.exe
    4. Verify provider works from code directory PS C:\Users.....> terraform-provider-antserver.exe 2020/12/12 06:07:06 Running OpenAPI Terraform Provider v0.31.1-d28a81d857163a2dd72072634f10eb3977bb3584; Released on: 2020-07-20T23:37:07Z 2020/12/12 06:07:06 [INFO] found open api plugin configuration at C:\Users\redacted\AppData\terraform.d\plugins/terraform-provider-openapi.yaml 2020/12/12 06:07:06 [DEBUG] serviceConfig = &{SwaggerURL:https://redacted.antsle.us/swagger.json PluginVersion: InsecureSkipVerify:false SchemaConfigurationV1:[] TelemetryConfig:} 2020/12/12 06:07:06 [INFO] Provider antserver is using the following swagger file: https://redacted.antsle.us/swagger.json 2020/12/12 06:07:06 [DEBUG] service configuration = &{SwaggerURL:https://redacted.antsle.us/swagger.json PluginVersion: InsecureSkipVerify:false SchemaConfigurationV1:[] TelemetryConfig:} 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/system/setup/send-esn-token 2020/12/12 06:07:06 [DEBUG] resource path '/api/system/setup/send-esn-token' not terraform compliant: path '/api/system/setup/send-esn-token' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/network/vlans/{vlan-name}/antlets 2020/12/12 06:07:06 [DEBUG] resource path '/api/network/vlans/{vlan-name}/antlets' not terraform compliant: path '/api/network/vlans/{vlan-name}/antlets' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/ads/config 2020/12/12 06:07:06 [DEBUG] resource path '/api/ads/config' not terraform compliant: path '/api/ads/config' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/antlets/{antlet-name}/state 2020/12/12 06:07:06 [DEBUG] resource path '/api/antlets/{antlet-name}/state' not terraform compliant: path '/api/antlets/{antlet-name}/state' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/network/vlans/connect 2020/12/12 06:07:06 [DEBUG] resource path '/api/network/vlans/connect' not terraform compliant: path '/api/network/vlans/connect' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/backups/delete-local-copy 2020/12/12 06:07:06 [DEBUG] resource path '/api/backups/delete-local-copy' not terraform compliant: path '/api/backups/delete-local-copy' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/list-zpools 2020/12/12 06:07:06 [DEBUG] resource path '/api/list-zpools' not terraform compliant: path '/api/list-zpools' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/system/upgrade-edgelinux 2020/12/12 06:07:06 [DEBUG] resource path '/api/system/upgrade-edgelinux' not terraform compliant: path '/api/system/upgrade-edgelinux' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/templates-statuses 2020/12/12 06:07:06 [DEBUG] resource path '/api/templates-statuses' not terraform compliant: path '/api/templates-statuses' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/backups/import-local-backup 2020/12/12 06:07:06 [DEBUG] resource path '/api/backups/import-local-backup' not terraform compliant: path '/api/backups/import-local-backup' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/ads/drive/{name} 2020/12/12 06:07:06 [DEBUG] resource path '/api/ads/drive/{name}' not terraform compliant: resource instance path '/api/ads/drive/{name}' missing required GET operation 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/antlets/{antlet-name}/vusbs/enable 2020/12/12 06:07:06 [DEBUG] resource path '/api/antlets/{antlet-name}/vusbs/enable' not terraform compliant: path '/api/antlets/{antlet-name}/vusbs/enable' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/backups/schedule-backups 2020/12/12 06:07:06 [DEBUG] resource path '/api/backups/schedule-backups' not terraform compliant: path '/api/backups/schedule-backups' is not a resource instance path 2020/12/12 06:07:06 [DEBUG] validating end point terraform compatibility /api/antlets/{antlet-name} 2020/12/12 06:07:06 [DEBUG] resource '/api/antlets/{antlet-name}' root path match: [/api/antlets/{antlet-name} /api/antlets/] 2020/12/12 06:07:06 [DEBUG] found resource root path without trailing '/' - /api/antlets ..........
    5. Initialize the terraform project terraform.exe init

    Initializing the backend...

    Initializing provider plugins...

    • Finding latest version of hashicorp/antserver...

    Error: Failed to query available provider packages

    Could not retrieve the list of available versions for provider hashicorp/antserver: provider registry registry.terraform.io does not have a provider named registry.terraform.io/hashicorp/antserver

    Expected behaviour

    When using terraform init the provider would be picked up and used. I also attempted $env:OTF_VAR_ANTSLE_SWAGGER_URL="https://.antsle.us/swagger.json"

    Checklist (for admin only)

    Don't forget to go through the checklist to make sure the issue is created properly:

    • [ ] I have added a corresponding label (bug) to the issue (right side menu)
    • [ ] I have added this issue to the 'API Terraform Provider' GitHub project (right side menu)
    opened by lordsaibat 8
  • Error when attempting to use kubernetes api

    Error when attempting to use kubernetes api

    Please check one of the options below and follow the instructions:

    I'm trying use the provider to make api calls to kubernetes. The swagger is here https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json

    My config files looks like this

    version: '1'
    services:
      openapi:
        swagger-url: https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json
        insecure_skip_verify: true
    

    There are other things wrong with this file but at the moment I'm trying to get pass a swagger parsing problem.

    I'm getting these errors when running tf plan

    2018-08-30T01:44:54.269Z [DEBUG] plugin.terraform-provider-k8s: 2018/08/30 01:44:54 [INFO] Provider openapi is using the following remote swagger URL: https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json
    2018-08-30T01:44:55.780Z [DEBUG] plugin.terraform-provider-k8s: 2018/08/30 01:44:55 [DEBUG] findMatchingResourceRoot result - [/api/v1/nodes/{name}/proxy/{path} /api/v1/nodes/{name}/proxy/]
    2018-08-30T01:44:55.780Z [DEBUG] plugin.terraform-provider-k8s: 2018/08/30 01:44:55 [DEBUG] found resource root path without trailing '/' - /api/v1/nodes/{name}/proxy
    2018-08-30T01:44:55.780Z [DEBUG] plugin.terraform-provider-k8s: 2018/08/30 01:44:55 [DEBUG] findMatchingResourceRoot result - [/api/v1/nodes/{name}/proxy/{path} /api/v1/nodes/{name}/proxy/]
    2018-08-30T01:44:55.780Z [DEBUG] plugin.terraform-provider-k8s: 2018/08/30 01:44:55 [DEBUG] found resource root path without trailing '/' - /api/v1/nodes/{name}/proxy
    2018-08-30T01:44:55.780Z [DEBUG] plugin.terraform-provider-k8s: 2018/08/30 01:44:55 [ERROR] There was an error initialising the terraform provider: plugin terraform-provider-openapi init error: error occurred while creating schema provider. Error=path /api/v1/nodes/{name}/proxy POST operation is missing paremeters
    2018/08/30 01:44:55 [ERROR] root: eval: *terraform.EvalInitProvider, err: unexpected EOF
    2018/08/30 01:44:55 [ERROR] root: eval: *terraform.EvalSequence, err: unexpected EOF
    2018/08/30 01:44:55 [TRACE] [walkInput] Exiting eval tree: provider.k8s
    2018-08-30T01:44:55.783Z [DEBUG] plugin: plugin process exited: path=/usr/local/bin/terraform-provider-k8s
    2018/08/30 01:44:55 [DEBUG] plugin: waiting for all plugin processes to complete...
    2018-08-30T01:44:55.784Z [WARN ] plugin: error closing client during Kill: err="connection is shut down"
    
    wontfix 
    opened by mingfang 7
  • Open api plugin issue

    Open api plugin issue

    Describe the bug

    PS C:\Users...\AppData\Roaming\terraform.d\plugins> .\terraform-provider-openapi.exe 2020/08/10 16:00:02 Running OpenAPI Terraform Provider v0.31.1-d28a81d857163a2dd72072634f10eb3977bb3584; Released on: 2020-07-20T23:37:07Z 2020/08/10 16:00:02 [INFO] open api plugin configuration not present at C:\Users...\AppData\terraform.d\plugins/terraform-provider-openapi.yaml 2020/08/10 16:00:02 [DEBUG] serviceConfig = 2020/08/10 16:00:02 [ERROR] There was an error initialising the terraform provider: plugin init error: swagger url not provided, please export OTF_VAR_<provider_name>_SWAGGER_URL env variable with the URL where 'openapi' service provider is exposing the swagger file OR create a plugin configuration file at ~/.terraform.d/plugins following the Plugin configuration schema specifications

    To Reproduce

    On a Windows 10 machine download and set up a provider.yaml

    Steps to reproduce the behavior:

    1. unzip the terraform-provider-openapi
    2. place in correct folder
    3. in powershell or cmd run .\terraform-provider-openapi.exe
    4. error message follows
    good first issue 
    opened by Grasume 6
  • [FeatureRequest: Issue #329] Adding ARM64 Support

    [FeatureRequest: Issue #329] Adding ARM64 Support

    What problem does this Pull Request solve?

    • Adding ARM64 support for Terraform-provider-openapi. Based on the ticket SLTF-5 and Issue #329 . Please link to the issue number here (issue will be closed when PR is merged): Closes #332

    Type of change

    What type of change does your code introduce to the provider? Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x ] New feature (change that adds new functionality)
    • [ ] Bug-fix (change that fixes current functionality)
    • [ ] Tech debt (enhances the current functionality)
    • [ ] New release (pumps the version)

    Checklist

    Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [ x] I have read and followed the CONTRIBUTING guidelines
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [x] I have made sure code compiles correctly and all tests are passing by running make test-all
    • [ ] I have added/updated necessary documentation (if appropriate)
    • [x ] I have added the following info to the title of the PR (pick the appropriate option for the type of change). This is important because the release notes will include this information.
      • [x] Feature Request: PRs related to feature requests should have in the title [FeatureRequest: Issue #X] <PR Title>
      • [ ] Bug Fixes: PRs related to bug fixes should have in the title [BugFix: Issue #X] <PR Title>
      • [ ] Tech Debt: PRs related to technical debt should have in the title [TechDebt: Issue #X] <PR Title>
      • [ ] New Release: PRs related to a new release should have in the title [NewRelease] vX.Y.Z

    Checklist for Admins

    • [x] Label is populated
    • [x] PR is assigned to the corresponding project
    • [x] PR has at least 1 reviewer and 1 assignee
    feature request 
    opened by Sreeratm 5
  • Unable to initialize Terraform OpenAPI provider

    Unable to initialize Terraform OpenAPI provider

    Describe the bug

    Followed the steps in the documentation to download the binary plugin and move it to the appropriate directory (%AppData%\Roaming\terraform.d\plugins, for Windows in my case). Created a main.tf file with a single resource definition:

    provider "dtr" { apikey_auth = "<my_api_key>" }

    resource "dtr_repositories" "apache_repo" { namespace = " my_dtr_username / terraformtest" }

    However when I try to perform "terraform init" it fails because it's querying the main hashicorp terraform registry for a provider named "dtr", which obviously fails. I've tried passing the "-plugin-dir" cli parameter and it fails in both cases. I'm sure it's something trivial I'm overlooking but I cannot get past this issue.

    Any advice is appreciated!

    good first issue 
    opened by zjpiazza 5
  • provider name detection can be wrong when using symlinks

    provider name detection can be wrong when using symlinks

    The use of os.Executable() can be wrong when the plugin is a symlink, ln -sF terraform-provider-openapi terraform-provider-<your_provider_name> may yield a name of openapi which is wrong.

    https://github.com/dikhan/terraform-provider-openapi/blob/03d1765264c7e08bdef63534651473fa5c64def8/openapi/provider.go#L67

    bug good first issue 
    opened by mingfang 5
  • [FeatureRequest: Issue #311] Support Terraform versions greater than or equal to 1.0.0

    [FeatureRequest: Issue #311] Support Terraform versions greater than or equal to 1.0.0

    What problem does this Pull Request solve?

    Please link to the issue number here (issue will be closed when PR is merged): Closes #311

    As discussed on PR-312 and PR-313, created this PR on behalf of the original author (@bradthebuilder ) so we get the feedback from the pipeline (as it's triggered by me and won't have the issues when running the jobs from forks - more details here) and are able to merge the PR following the branch restrictions.

    Type of change

    What type of change does your code introduce to the provider? Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] New feature (change that adds new functionality)
    • [ ] Bug-fix (change that fixes current functionality)
    • [ ] Tech debt (enhances the current functionality)
    • [ ] New release (pumps the version)

    Checklist

    Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] I have read and followed the CONTRIBUTING guidelines
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [x] I have made sure code compiles correctly and all tests are passing by running make test-all
    • [ ] I have added/updated necessary documentation (if appropriate)
    • [x] I have added the following info to the title of the PR (pick the appropriate option for the type of change). This is important because the release notes will include this information.
      • [x] Feature Request: PRs related to feature requests should have in the title [FeatureRequest: Issue #X] <PR Title>
      • [ ] Bug Fixes: PRs related to bug fixes should have in the title [BugFix: Issue #X] <PR Title>
      • [ ] Tech Debt: PRs related to technical debt should have in the title [TechDebt: Issue #X] <PR Title>
      • [ ] New Release: PRs related to a new release should have in the title [NewRelease] vX.Y.Z

    Commentary

    All unit and integration tests pass when using TF versions 1.0.1 and 1.0.7 on my system. I'm also able to successfully run make build. I've tested the built provider against my Antsle and it successfully created Antlets using my TF configs.

    Unit Tests Passing

    unit_tests_passing

    Integration Tests Passing

    integration_tests_passing

    Targeting your master branch per your request.

    There is also a single commit addressing what I thought was a typo in some documentation.

    Checklist for Admins

    • [x] Label is populated
    • [x] PR is assigned to the corresponding project
    • [x] PR has at least 1 reviewer and 1 assignee
    bug-fix 
    opened by dikhan 4
  • [FeatureRequest: Issue #305] Support colon characters in field names

    [FeatureRequest: Issue #305] Support colon characters in field names

    What problem does this Pull Request solve?

    Please link to the issue number here (issue will be closed when PR is merged): Closes #305

    Type of change

    What type of change does your code introduce to the provider? Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] New feature (change that adds new functionality)
    • [ ] Bug-fix (change that fixes current functionality)
    • [ ] Tech debt (enhances the current functionality)
    • [ ] New release (pumps the version)

    Checklist

    Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] I have read and followed the CONTRIBUTING guidelines
    • [x] I have added tests that prove my fix is effective or that my feature works
    • [ ] I have made sure code compiles correctly and all tests are passing by running make test-all
    • [ ] I have added/updated necessary documentation (if appropriate)
    • [x] I have added the following info to the title of the PR (pick the appropriate option for the type of change). This is important because the release notes will include this information.
      • [x] Feature Request: PRs related to feature requests should have in the title [FeatureRequest: Issue #X] <PR Title>
      • [ ] Bug Fixes: PRs related to bug fixes should have in the title [BugFix: Issue #X] <PR Title>
      • [ ] Tech Debt: PRs related to technical debt should have in the title [TechDebt: Issue #X] <PR Title>
      • [ ] New Release: PRs related to a new release should have in the title [NewRelease] vX.Y.Z

    Checklist for Admins

    • [x] Label is populated
    • [x] PR is assigned to the corresponding project
    • [x] PR has at least 1 reviewer and 1 assignee

    Commentary

    All unit tests pass on my system.

    The following integration tests in tests/integration/resource_monitors_test.go failed on my laptop before and after my changes were added:

    • TestAccMonitor_CreateRst1
    • TestAccMonitor_CreateDub1
    • TestAccMonitor_MultiRegion_CreateRst1
    • TestAccMonitor_MultiRegion_CreateDub1
    • TestAccMonitor_MultiRegion_Create_Default_Region

    Integration test error stdout

    I figured it had something to do with my local network's DNS not being configured to resolve the API URLs used in the tests (I guess the docker containers bridged to my laptop), so I figured Travis CI would be the gatekeeper in this discrepancy. The errors were present on the master branch before my additions and are still there afterward, so I'm confident my additions at least didn't make things worse. If this is an actual bug and not an issue with my environment, I can work on a separate bug-hunting branch.

    The provider does compile and I tested it against the docker-compose local-env and my Antsle device. It works on my Antsle device perfectly, and 3/4 resources get created with the swaggercodegen example on terraform apply (terraform validate and terraform plan work fine).

    swaggercodegen_firewall_failure

    I think it's because the resource name has more than one number character in it; I noticed when adding my unit tests that the ConvertToTerraformCompliantName function cannot handle more than one distinct number in a field name. Once again, I can work on this in a separate bug branch if we're in agreement.

    feature request 
    opened by bradthebuilder 4
  • GetMultiRegionHost error is ignored leading to malformed multiregion resources

    GetMultiRegionHost error is ignored leading to malformed multiregion resources

    Proposed changes

    Please add as many details as possible about the change here. Does this Pull Request resolve any open issue? If so, please make sure to link to that issue:

    Fixes: #137

    Type of change

    What type of change does your code introduce to the provider? Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] Bug-fix (change that fixes current functionality)
    • [x] Tech debt
    • [ ] New feature (change that adds new functionality)

    Checklist

    Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] I have read and followed the CONTRIBUTING guidelines
    • [x] I have made sure code compiles correctly
    • [x] I have run 'make test' locally from the terraform_provider_api folder and no errors were found
    • [x] I have added tests that prove my fix is effective or that my feature works
    • [x] I have added/updated necessary documentation (if appropriate)
    bug tech-debt 
    opened by dikhan 4
  • [FeatureRequest: Issue #352] Support for write-only properties

    [FeatureRequest: Issue #352] Support for write-only properties

    What problem does this Pull Request solve?

    Closes #352

    Type of change

    What type of change does your code introduce to the provider? Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] New feature (change that adds new functionality)
    • [ ] Bug-fix (change that fixes current functionality)
    • [ ] Tech debt (enhances the current functionality)
    • [ ] New release (pumps the version)

    Checklist

    Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] I have read and followed the CONTRIBUTING guidelines
    • [x] I have added tests that prove my fix is effective or that my feature works
    • [x] I have made sure code compiles correctly and all tests are passing by running make test-all
    • [x] I have added/updated necessary documentation (if appropriate)
    • [x] I have added the following info to the title of the PR (pick the appropriate option for the type of change). This is important because the release notes will include this information.
      • [x] Feature Request: PRs related to feature requests should have in the title [FeatureRequest: Issue #X] <PR Title>
      • [ ] Bug Fixes: PRs related to bug fixes should have in the title [BugFix: Issue #X] <PR Title>
      • [ ] Tech Debt: PRs related to technical debt should have in the title [TechDebt: Issue #X] <PR Title>
      • [ ] New Release: PRs related to a new release should have in the title [NewRelease] vX.Y.Z

    Checklist for Admins

    • [ ] Label is populated
    • [ ] PR is assigned to the corresponding project
    • [ ] PR has at least 1 reviewer and 1 assignee
    opened by arjunrajnetapp 0
  • Support for write-only properties

    Support for write-only properties

    Is your feature request related to a problem?

    The plugin seems to expect that all input properties on a terraform resource should be fetchable by the GET request for the resource, however there might be legitimate scenarios where an "input-only"/"write-only" property is needed. For example - providing some credentials to create a resource that only needs it at creation time (i.e on the POST request) and the service doesn't want to store these credentials to be fetched by the GET request.

    Describe the solution you'd like

    A new extension, example - x-terraform-write-only, which can be applied to input properties.

    Using this extension, changes to the property should be ignored if they are changed to null, since the GET request would not return a value for it or return null.

    When performing the diff on terraform state, the value of such properties could be obtained from the terraform state file rather than the API response.

    Acceptance criteria

    • A new extension is introduced for write-only input properties
    • The new extension will ignore changes to null for the target property
    • The extension is compatible with terraform import

    Describe alternatives you've considered

    A clear and concise description of any alternative solutions or features you've considered.

    Additional context

    I've had a look through the feature set and documentation and I haven't found a way to deal with such properties, so feel free to close this issue if there is a workaround that I've missed.

    Checklist (for admin only)

    Don't forget to go through the checklist to make sure the issue is created properly:

    • [ ] I have added a corresponding label (feature request) to the issue (right side menu)
    • [ ] I have added this issue to the 'API Terraform Provider' GitHub project (right side menu)
    opened by arjunrajinstaclustr 0
  • [BugFix: Issue #346] Fixes for x-terraform-ignore-order

    [BugFix: Issue #346] Fixes for x-terraform-ignore-order

    What problem does this Pull Request solve?

    Closes #346

    Type of change

    What type of change does your code introduce to the provider? Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [ ] New feature (change that adds new functionality)
    • [x] Bug-fix (change that fixes current functionality)
    • [ ] Tech debt (enhances the current functionality)
    • [ ] New release (pumps the version)

    Checklist

    Please put an x (w/o heading/trailing white spaces) in the boxes that apply:

    • [x] I have read and followed the CONTRIBUTING guidelines
    • [x] I have added tests that prove my fix is effective or that my feature works
    • [x] I have made sure code compiles correctly and all tests are passing by running make test-all
    • [x] I have added/updated necessary documentation (if appropriate)
    • [x] I have added the following info to the title of the PR (pick the appropriate option for the type of change). This is important because the release notes will include this information.
      • [ ] Feature Request: PRs related to feature requests should have in the title [FeatureRequest: Issue #X] <PR Title>
      • [x] Bug Fixes: PRs related to bug fixes should have in the title [BugFix: Issue #X] <PR Title>
      • [ ] Tech Debt: PRs related to technical debt should have in the title [TechDebt: Issue #X] <PR Title>
      • [ ] New Release: PRs related to a new release should have in the title [NewRelease] vX.Y.Z

    Checklist for Admins

    • [ ] Label is populated
    • [ ] PR is assigned to the corresponding project
    • [ ] PR has at least 1 reviewer and 1 assignee
    opened by arjunrajinstaclustr 4
  • Issues with x-terraform-ignore-order

    Issues with x-terraform-ignore-order

    Describe the bug

    After using the terraform-provider-openapi plugin fairly extensively, several issues have been identified with the behaviour of the plugin when using with the x-terraform-ignore-order flag -

    1. The plugin throws an NPE when the API response does not contain an optional property.
    2. The plugin does not correctly deal with camelCase vs terraform_compliant_name on property names.
    3. The plugin doesn't correctly handle cases where Terraform sets default values even for optional properties but the API does not return the optional property. (Example - in the local state, arrays become [], maps become {}, strings become "", integers become 0, booleans become false)
    4. The plugin does not correctly deal with integers returned from the API when comparing against the local state, because the API response is mapped to a float64 value but the local state is an integer.

    To Reproduce

    A clear and concise description on how does it work now and what's the current behaviour.

    Steps to reproduce the behavior:

    1. Update TestAccCDN_CreateResourceWithIgnoreListOrderExtension with the following - https://github.com/instaclustr/terraform-provider-openapi/blob/b287aa636768f0b7d2fc4a30b14deb528165225a/tests/e2e/gray_box_cdns_test.go#L429-L663
    2. Run the test

    Expected behaviour

    The test passes, and the x-terraform-ignore-order flag correctly handles all of the aforementioned issues.

    Additional context

    Add any other context about the problem here.

    Checklist (for admin only)

    Don't forget to go through the checklist to make sure the issue is created properly:

    • [ ] I have added a corresponding label (bug) to the issue (right side menu)
    • [ ] I have added this issue to the 'API Terraform Provider' GitHub project (right side menu)
    opened by arjunrajinstaclustr 0
  • Nested optional objects skip parent objects when omitted

    Nested optional objects skip parent objects when omitted

    Describe the bug

    If you have an optional object that is located under a nested object, omitting the optional object through the terraform code omits the parent object on the request body too.

    To Reproduce

    With the following swagger YAML -

    paths:
      /v1/characters:
        post:
          parameters:
            -
              name: body
              schema:
                $ref: '#/definitions/Character'
              in: body
              required: true
          responses:
            '200':
              description: Character created
              schema:
                $ref: '#/definitions/Character'
          summary: Create character
      '/v1/characters/{characterId}':
        get:
          parameters:
            -
              name: characterId
              in: path
              required: true
              type: string
          responses:
            '200':
              description: Character fetched.
              schema:
                $ref: '#/definitions/Character'
          summary: Retrieve character
    
    definitions:
      Position:
        title: Root Type for Position
        description: ''
        type: object
        properties:
          x:
            type: integer
          'y':
            type: integer
      Character:
        title: Root Type for Character
        description: ''
        required:
          - health
        type: object
        properties:
          id:
            type: string
            readOnly: true
          health:
            type: integer
          position:
            $ref: '#/definitions/Position'
          pet:
            $ref: '#/definitions/Pet'
      Pet:
        title: Root Type for Pet
        description: ''
        required:
          - health
        type: object
        properties:
          id:
            type: string
            readOnly: true
          health:
            type: integer
          position:
            $ref: '#/definitions/Position'
    

    the following terraform code works fine -

    resource "myprovider_characters_v1" "mychar" {
      health = 10
      position {
        x = 1
        y = 1
      }
      pet {
        health = 30
        position {
          x = 2
          y = 2
        }
      }
    }
    

    The request body is {"health":10,"pet":{"health":30,"position":{"x":2,"y":2}},"position":{"x":1,"y":1}}

    However the following terraform code runs into a problem -

    resource "myprovider_characters_v1" "mychar" {
      health = 10
      position {
        x = 1
        y = 1
      }
      pet {
        health = 30
      }
    }
    

    The problematic request body - {"health":10,"position":{"x":1,"y":1}} - skips the pet object because the optional position object is omitted from the terraform code.

    Expected behaviour

    Omitting optional nested objects continues to include the parent object in the request body.

    Additional context

    Interestingly, omitting position on the Character level does not cause an issue. This is only a problem for optional objects under nested objects.

    Checklist (for admin only)

    Don't forget to go through the checklist to make sure the issue is created properly:

    • [ ] I have added a corresponding label (bug) to the issue (right side menu)
    • [ ] I have added this issue to the 'API Terraform Provider' GitHub project (right side menu)
    opened by arjunrajinstaclustr 0
  • Support for simple listable data source

    Support for simple listable data source

    Is your feature request related to a problem?

    As a user of this plugin, I would like to define my APIs to return a single object containing a list of results as my data source so that I do not have to perform any hacky workarounds on my API to conform with the plugin's requirements.

    Describe the solution you'd like

    Non-CRUD data sources should be created for any GET endpoint that returns a single object, not just ones that return an array.

    Acceptance criteria

    • Data sources are created from all GET endpoints that return a single object.
    • A meta attribute is introduced to exclude certain GET endpoints from being converted to data sources.

    A data source should be creatable for the following API response for example -

    {
      "id": "some_id",
      "results": [
        {
          "myProperty": "myValue"
        }
      ]
    }
    

    Describe alternatives you've considered

    The alternative has been to return a single item array on my GET list requests.

    Example -

    [
      {
        "id": "some_kind_of_id",
        "results": [
          {
            "myProperty": "myValue"
          }
        ]
      }
    ]
    

    As you can see, the above workaround is a bit hacky. Users using my API directly will be fairly confused why I've got such a strange structure - with an array containing a single object containing an array.

    If I don't wrap my response in such a manner and directly return my list of results I get the following error - Error: your query returned contains more than one result. Please change your search criteria to make it more specific because the plugin only wants one result (I think it is so that it can set the ID of the data source).

    Additional context

    Bonus points if an id/x-terraform-id doesn't have to be defined on the API response. I'm not sure Terraform even meaningfully uses the ID of a data source so you could even just set it to some random GUID.

    Checklist (for admin only)

    Don't forget to go through the checklist to make sure the issue is created properly:

    • [ ] I have added a corresponding label (feature request) to the issue (right side menu)
    • [ ] I have added this issue to the 'API Terraform Provider' GitHub project (right side menu)
    opened by arjunrajinstaclustr 1
Releases(v3.0.0)
  • v3.0.0(Apr 19, 2022)

    What's new?

    • PR #342 Major version update v3
    • PR #344 [Tech Debt: Issue #344 ]Upgrade to Go 1.17
    • PR #341 Fix release pipeline: Only install the binary and not add it to the mod deps
    • PR #339 [BugFix: Issue #338] Skip docker login from forks
    • PR #337 [BugFix: Issue #338] Skip docker login from forks
    • PR #336 [BugFix: Issue #334] Fix make test all
    • PR #333 [BugFix: Issue #335] goreleaser latest version (1.7) introduced breaking changes requiring Go1.18
    • PR #332 [FeatureRequest: Issue #329] Adding ARM64 Support
    • PR #324 [TechDebt: Issue #323] Upgrade Terraform SDK to v2.10.1
    • PR #322 [TechDebt: Issue #321] Upgrade to Go 1.16
    • PR #319 [BugFix: Issue #318] Deprecate plugin_version property from OpenAPI config file SchemaV1
    • PR #316 [TechDebt: Issue #317] Deprecate multiregion resource name level
    • PR #315 Update installing_openapi_provider.md
    • PR #314 [FeatureRequest: Issue #311] Support Terraform versions greater than or equal to 1.0.0

    Changelog

    6e56bdc Merge pull request #342 from dikhan/major-version-upgrade-v3 c03dadb Major version update v3 eca9bbd Merge pull request #341 from dikhan/dont-get-github-release-notes-as-mod-dep eeb06cc Only install the binary and not add it to the mod deps fdba646 Merge pull request #340 from dikhan/release-v3.0.0 8da9c46 Release v3.0.0 87f0897 Merge pull request #332 from Sreeratm/ARM_64_Feature c199384 Merge branch 'master' into ARM_64_Feature 0b9b746 Merge pull request #339 from dikhan/skip-docker-login-on-forks 50d0e52 Skip docker login from forks 8991708 Merge branch 'master' into ARM_64_Feature b648612 Merge pull request #337 from dikhan/skip-docker-login-on-forks 9057c5e Skip docker login from forks cf4db61 Merge branch 'master' into ARM_64_Feature 5be1f03 Merge pull request #336 from dikhan/fix-make-test-all 18c31ed Merge branch 'fix-make-test-all' of github.com:dikhan/terraform-provider-openapi into fix-make-test-all f788551 Travis CI runs builds on Linux hosts and the expected error differs slighty 8cf2bfa Merge branch 'master' into fix-make-test-all 3599791 Merge pull request #333 from dikhan/pin-gorelease-version-v1.6.3 7797172 Run go get -u golang.org/x/crypto/... 861e4c4 Fix integration test whereby the overriden domain started resolving to a real domain da6d2dd goreleaser latest version (1.7) introduced breaking changes requiring Go1.18 252cb20 ARM_64_Feature 89a249c Merge pull request #324 from dikhan/upgrade-terraform-sdk c742858 Upgrade Terraform SDK to v2.10.1 f10e3fc Merge pull request #319 from dikhan/deprecate-plugin-version-config 0059a55 Deprecate plugin_version property from OpenAPI config file SchemaV1 594a891 Merge pull request #322 from dikhan/feature/upgrade-go-1.16 9933a32 Fix int test that hits a real endpoint that does not exist ae03d87 Update go mod and go sum 67e17da Update README docs with min requirements of Go 1.16 df161d3 Install Go 1.16 in the pipeline 8070b69 Require Go version 1.16 or higher 82f4472 Merge pull request #316 from dikhan/deprecate-multiregion-resource-name-level 96b04d3 Go mod dep updates 07fcfcc Deprecate multi-region support on resource name level 1e6a832 Merge pull request #315 from seyedk/patch-1 7ef3452 Update installing_openapi_provider.md 9f3a39d Merge pull request #314 from dikhan/bradthebuilder-support-tf-versions-eq-gt-1.0.0 8a0ade4 Allow TF versions >= 1.0.0 to be used when installing provider

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_3.0.0_checksums.txt(591 bytes)
    terraform-provider-openapi_3.0.0_darwin_amd64.tar.gz(6.22 MB)
    terraform-provider-openapi_3.0.0_darwin_arm64.tar.gz(6.10 MB)
    terraform-provider-openapi_3.0.0_linux_amd64.tar.gz(5.99 MB)
    terraform-provider-openapi_3.0.0_linux_arm64.tar.gz(5.44 MB)
    terraform-provider-openapi_3.0.0_windows_amd64.zip(6.06 MB)
  • v2.2.0(Sep 3, 2021)

    What's new?

    • PR #309 [TechDebt: Issue #308] Integrate Terraform SDK 2.7.1

    Changelog

    536983e Merge pull request #310 from dikhan/release-v2.2.0 9bb8276 Release v2.2.0 d54067c Merge pull request #309 from dikhan/integrate-terraform-sdk-v2.7.1 0f63ea1 Integrate Terraform SDK 2.7.1 382dda8 Merge pull request #306 from bradthebuilder/master e945e54 Merge branch 'master' into master 2067311 Add units tests for colon characters 9a6e78e Replace colon characters earlier 42cf296 Handle colon characters in field names d1285f3 Standardize go tool link format

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.2.0_checksums.txt(354 bytes)
    terraform-provider-openapi_2.2.0_darwin_amd64.tar.gz(9.15 MB)
    terraform-provider-openapi_2.2.0_linux_amd64.tar.gz(8.78 MB)
    terraform-provider-openapi_2.2.0_windows_amd64.zip(8.74 MB)
  • v2.1.0(Jul 15, 2021)

    What's new?

    • PR #304 [FeatureRequest: Issue #303] Create docs for publishing OpenAPI Terraform providers in Terraform Registry
    • PR #295 [FeatureRequest: Issue #100] Add support for POST with request schema only containing inputs (required/optional) and response only containing outputs (computed properties)

    Changelog

    f4718a1 Merge pull request #307 from dikhan/release-v2.1.0 21f5806 Releasing v2.1.0 6d8b909 Merge pull request #295 from dikhan/feature/support-for-post-input-model-without-id-2 ec9d88c go mod dep updates 237d338 Fix monitor int tests assertions that before were actually resolving to an actual domain f0f7cf4 Add more test coverage c4f84e5 Remove erorr return from isResourceInstanceEndPoint signature a39b4c1 Add more test coverage for validateRootPath method 9252e2f Add support for POST with request schema only containing inputs and response model containing computed properties 5a7c1e3 Merge pull request #304 from dikhan/feature/docs-for-publishing-openapi-terraform-providers d108699 Create docs for publishing OpenAPI Terraform providers in Terraform Registry

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.1.0_checksums.txt(354 bytes)
    terraform-provider-openapi_2.1.0_darwin_amd64.tar.gz(8.84 MB)
    terraform-provider-openapi_2.1.0_linux_amd64.tar.gz(8.47 MB)
    terraform-provider-openapi_2.1.0_windows_amd64.zip(8.44 MB)
  • v2.0.6(Jun 11, 2021)

    What's new?

    • PR #301 [BugFix: Issue #300]: ServiceConfiguration with InsecureSkipVerify enabled now works as expected
    • PR #296 [BugFix: Issue #297] Fix docker rate limit issues in Travis pipeline
    • PR #294 [BugFix: Issue #293] fix docker file to install providers based on Terraform 0.13 installation specs

    Changelog

    86fd4cf lock version of github-release-notes 59397e8 go mod tidy 712f62d go mod updates 620cc42 Merge pull request #302 from dikhan/release-2.0.6 c9f2baf Release v2.0.6 ab9af82 Merge pull request #301 from dikhan/fix-bug-with-insecure-verify c7a72ea Issue #300: ServiceConfiguration with InsecureSkipVerify enabled now sets the InsecureSkipVerify in the tr.TLSClientConfig accordingly d5699cb Merge pull request #296 from dikhan/fix-cicd-docker-ratelimit-issues 5b7162b Fix docker rate limit issues in Travis pipeline 1657b56 Merge pull request #294 from dikhan/293-fix-docker-examples 37c23f7 Merge branch '293-fix-docker-examples' of github.com:dikhan/terraform-provider-openapi into 293-fix-docker-examples c3a6a86 fix docker file to install providers based on Terraform 0.13 installation specs 1b5b56a fix docker file to install providers based on Terraform 0.13 installation specs

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.0.6_checksums.txt(354 bytes)
    terraform-provider-openapi_2.0.6_darwin_amd64.tar.gz(8.84 MB)
    terraform-provider-openapi_2.0.6_linux_amd64.tar.gz(8.47 MB)
    terraform-provider-openapi_2.0.6_windows_amd64.zip(8.43 MB)
  • v2.0.5(Apr 7, 2021)

    What's new?

    • PR #290 Render in arguments section optional computed properties with default values

    Changelog

    a6a1bec Merge pull request #291 from dikhan/v2.0.5 4015fb6 Release v2.0.5 e7a9fb6 Merge pull request #290 from dikhan/render-default-values 5d2c8e9 Check whether the Default is not nil and if so render the default value edb2354 Render in arguments section optional computed properties with default values

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.0.5_checksums.txt(354 bytes)
    terraform-provider-openapi_2.0.5_darwin_amd64.tar.gz(8.83 MB)
    terraform-provider-openapi_2.0.5_linux_amd64.tar.gz(8.47 MB)
    terraform-provider-openapi_2.0.5_windows_amd64.zip(8.43 MB)
  • v2.0.4(Apr 7, 2021)

    What's new?

    • PR #287 [BugFix: Issue #286] Do not populate terraform schema Default field if property type is list

    Changelog

    dac381f Merge pull request #288 from dikhan/v2.0.4 c2316bc Releasing v2.0.4 f5efde6 Merge pull request #287 from dikhan/dont-set-default-to-list a469e4e Do not populate terraform schema Default field if property type is list

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.0.4_checksums.txt(354 bytes)
    terraform-provider-openapi_2.0.4_darwin_amd64.tar.gz(8.83 MB)
    terraform-provider-openapi_2.0.4_linux_amd64.tar.gz(8.47 MB)
    terraform-provider-openapi_2.0.4_windows_amd64.zip(8.43 MB)
  • v2.0.3(Mar 29, 2021)

    What's new?

    • PR #284 [BugFix: Issue #283] Add support for PUT operations that return 204 No Content

    Changelog

    1cefe94 Merge pull request #285 from dikhan/release-v2.0.3 309df1c Update version to v2.0.3 df09646 Merge pull request #284 from dikhan/support-put-204-responses 610996a Don't populate responsePayload if the API's successful update response is 204 No Content 6084625 Update docs with more info for PUT operations 20b2cce Add support for PUT operations that return 204 No Content

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.0.3_checksums.txt(354 bytes)
    terraform-provider-openapi_2.0.3_darwin_amd64.tar.gz(8.83 MB)
    terraform-provider-openapi_2.0.3_linux_amd64.tar.gz(8.47 MB)
    terraform-provider-openapi_2.0.3_windows_amd64.zip(8.43 MB)
  • v2.0.2(Mar 17, 2021)

    What's new?

    • PR #281 [BugFix: Issue #280] Add support for rendering provider documentation including Terraform 0.13 required_providers section

    Changelog

    c1b13f5 Merge pull request #282 from dikhan/release-2.0.2 6bd3e0c New version release v2.0.2 8399545 Merge pull request #281 from dikhan/fix-render-docs-supporting-terraform013 32968f3 fix typo 2d39220 Add support for rendering provider documentation including Terraform 0.13 required_providers section

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.0.2_checksums.txt(354 bytes)
    terraform-provider-openapi_2.0.2_darwin_amd64.tar.gz(8.83 MB)
    terraform-provider-openapi_2.0.2_linux_amd64.tar.gz(8.47 MB)
    terraform-provider-openapi_2.0.2_windows_amd64.zip(8.43 MB)
  • v2.0.1(Feb 22, 2021)

    What's new?

    • PR #278 [BugFix: Issue #277]: Fix issue where binary released did not contain the expected statically compiled version properties populated

    Changelog

    07fe762 Merge pull request #279 from dikhan/v2.0.1-release c3e4c02 v2.0.1 release 6258d65 Merge pull request #278 from dikhan/fixbug/gorelease-static-version-flags-missing 1f8784b Fix issue where binary released did not contain the expected statically compiled version properties populated

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.0.1_checksums.txt(354 bytes)
    terraform-provider-openapi_2.0.1_darwin_amd64.tar.gz(8.83 MB)
    terraform-provider-openapi_2.0.1_linux_amd64.tar.gz(8.47 MB)
    terraform-provider-openapi_2.0.1_windows_amd64.zip(8.43 MB)
  • v2.0.0(Feb 19, 2021)

    What's new?

    • PR #274 [FeatureRequest: Issue #268] Major upgrade to Terraform SDK 2.0
    • PR #267 [BugFix: Issue #265] Add deterministic order for resources and data sources rendered with the OpenAPI Terraform Documentation Renderer
    • PR #266 [BugFix: Issue #264] Fixes swaggercodegen example openapi document where the 'openapi_cdn_v1_firewalls_v1' sub-resource was not being registered properly

    Changelog

    893a1ac Fix build release due to dirty state and bug in logging output output 19a0c8f Merge pull request #274 from dikhan/feature/bump-to-terraform-sdk-2.0 2f1f61ad Bump Terraform SDK to latest version v2.4.3 b79fb95d go mod vendor examples (goa and swaggercodegen) 003cd058 Add better support for timeout and diagnostics using context aware crud functions for data sources 613b19a8 Create Version 2.0.0 of the 'github.com/dikhan/terraform-provider-openapi' Module 515adc98 ignore hidden terraform files 8d48e584 Update docs to reflect new changes 6568526f Add support for Debuggable Provider Binaries f91525d7 fix bug where installation paths containing the openapi keyword would make the plugin fail upon startup 899dacbd Add missing test coverage d0eee952 go mod dep updates a55bb646 Make telemetry tests more predictable 8f4a9430 use go 1.14.x in travis ci 604f6768 Use ValidateDiagFunc instead of ValidateFunc which is deprecated 9284e667 go mod dep updates 4c503701 Add support for Field-Level Descriptions 71182f86 Add better support for timeout and diagnostics using context aware crud functions 76b16858 More Robust Validation of helper/schema.TypeMap Elems 48774405 Create release notes and start documenting changes introduced 13788743 add more specific info about terraform version 5e1c40b0 fix typo 9e3c1eae Create Version 1 of the 'github.com/dikhan/terraform-provider-openapi' Module e147383c Create Version 1 of the Module d37a7096 remove no longer needed deps and upgraded go to 1.14 c5cf1b67 fix unit tests 3f1f4485 Make ProviderFunc return func() *schema.Provider as per migration guidelines 7bdf374d Update int test to use ProviderFactories instead of Providers as per deprecation notice bd6d541b Use sdk 2.0.3 so int tests use the source code plugin and not the binary c0e95dd5 Remove dependency on github.com/hashicorp/terraform-plugin-sdk/helper/hashcode e2bdefe9 Pump Terraform SDK version to 2.0.0 5d335a82 Merge pull request #267 from dikhan/feature/resource-deterministic-order 2409874c Re-render the example html for the doc generator 7fd1c9e0 Merge branch 'master' into feature/resource-deterministic-order ab92cf7b update docs with info about ordering db0e6c46 add deterministic ordering 5b14e520 Merge pull request #266 from dikhan/bugfix/example-swaggercodegen-openapi-doc a43d2593 fix issue where the instance path was hardcoded d9efaa5b fix unit test after the template update 7ab08643 re-render example provider docu after fixing the swaggercodegen swagger.yaml b5424fec fix swaggercodegen openapi doc defining sub-resource

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_2.0.0_checksums.txt(354 bytes)
    terraform-provider-openapi_2.0.0_darwin_amd64.tar.gz(8.83 MB)
    terraform-provider-openapi_2.0.0_linux_amd64.tar.gz(8.47 MB)
    terraform-provider-openapi_2.0.0_windows_amd64.zip(8.43 MB)
  • v0.31.1(Jul 20, 2020)

    What's new?

    • PR #261 [TechDebt: Issue #260] Plugin execution improvements
    • PR #259 [TechDebt: Issue #258] Standardizing tests and tests execution time improvements

    Changelog

    d28a81d Merge pull request #262 from dikhan/version/0.31.1 e1199fa update version to 0.31.1 18c6879 Merge pull request #261 from dikhan/feature/cache-improvements 9bd205e add debug message when hitting/loading resource path cache cba25ec Merge branch 'feature/cache-improvements' of github.com:dikhan/terraform-provider-openapi into feature/cache-improvements 8dd22d1 add resolvedPathCached to the SpecV2Resource 8459b48 assert that cache is populated for happy paths a3ee1ac change it back to previous value 7f3a425 make timeToProcess shorter cc0605e added logging for caching 520c22b Merge branch 'feature/cache-improvements' of github.com:dikhan/terraform-provider-openapi into feature/cache-improvements bf0a216 refactor getResourceDataOKExists and setResourceDataProperty fdc91a5 add parentResourceInfoCached on SpecV2Resource 747493e moved type check to top of the method to fail faster if type is missing 9814993 add caching support for GetResourceSchema 7c005f4 Merge pull request #259 from dikhan/standarize-tests 12da6e9 Merge branch 'standarize-tests' of github.com:dikhan/terraform-provider-openapi into standarize-tests 0d9961b remove extra Convey statements in openapi spec tests (causing unnecessary loops) 6988bd3 go mode dep updates 566fd97 fix vet issues 4b6f875 remove redundant conveys ffee28e standarized some tests 4c6d083 standarized some tests c68a796 standarized some tests 78b5bf6 standarized plugin_config_test tests 0d3f3fc standarized provider_configuration_endpoints_test tests 66d937d refactored provider_configuration_tests tests 834a19d refactor tests removing extra convey levels d287c04 refactor tests removing extra convey levels cc92815 Merge branch 'standarize-tests' of github.com:dikhan/terraform-provider-openapi into standarize-tests c6672ba refactor tests removing extra convey levels 58df65e remove extra Convey statements in openapi spec security tests (causing unnecessary loops) 1ee58b4 fix issue with convey second level using t 7dee746 Merge branch 'standarize-tests' of github.com:dikhan/terraform-provider-openapi into standarize-tests debe681 add coverage for panics df2d97c Merge branch 'standarize-tests' of github.com:dikhan/terraform-provider-openapi into standarize-tests b4c086f remove extra Convey statements in openapi_spec_resource_schema_definition_test.go (causing unnecessary loops) 68c788d Merge branch 'standarize-tests' of github.com:dikhan/terraform-provider-openapi into standarize-tests 334484e format tests to match standards 94f16cb remove extra Convey statements in openapi_spec_resource_schema_definition_property_test.go (causing unnecessary loops) 4c7f855 remove extra Convey statements in openapi_spec_authenticator tests 5c650af remove extra Convey statements in openapi_spec_analyser_test.go (causing unnecessary loops) c22ed02 remove extra Convey statements in openapi_client_test.go (causing unnecessary loops) f6a28d5 remove extra Convey statements in common_test.go (causing unnecessary loops) 4dbdaa3 fix extra conveys and update test with new format 7e3ac36 add another test example when the given is not applicable 0ff3241 add testing documentation 56a6d2e fix sections in readme cc3eca8 Merge branch 'master' into standarize-tests b1fa363 Merge branch 'standarize-tests' of github.com:dikhan/terraform-provider-openapi into standarize-tests da7e6d8 update TestIsOptionalComputedWithDefault test with new testing standard 2924d93 Merge branch 'standarize-tests' of github.com:dikhan/terraform-provider-openapi into standarize-tests 866ca16 update 2 of the common tests to follow naming standards 2399230 update TestIsBoolExtensionEnabled test with new testing standard 8d52986 set up the tests before convey to avoid extra not needed loops d0c49c0 create unittest target

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.31.1_checksums.txt(357 bytes)
    terraform-provider-openapi_0.31.1_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.31.1_linux_amd64.tar.gz(8.74 MB)
    terraform-provider-openapi_0.31.1_windows_amd64.zip(8.71 MB)
  • v0.31.0(Jul 15, 2020)

    What's new?

    • PR #255 [TechDebt: Issue #256] Support description field in array items schema
    • PR #254 [TechDebt: Issue #253] Add gosec to CI/CD pipeline and address gosec alerts

    Changelog

    2ef0b0a Merge pull request #257 from dikhan/new-release-0.31.0 9e11d14 new release 0.31.0 fcc2b62 Merge pull request #255 from dikhan/feature/add-array-items-descriptions 10ac207 Merge branch 'feature/add-array-items-descriptions' of github.com:dikhan/terraform-provider-openapi into feature/add-array-items-descriptions 1570c5c add default description for parent properties in the doc generator 1945141 refactor tests avoiding extra loop iterations in convey 9d8f250 add support for array items description cd41f2b Merge pull request #254 from dikhan/address-gosec-alerts 521bd03 rename helper test file so its not treated as production code f674524 go mod dep updates a32d96d remove not longer used code that was migrated to commons 5d5fdb7 add gosec to the contribution guidelines 3ebc352 add install-deps and make it a dependency of gosec target 531cf8a remove not needed filed parentPropertyNames from stub 81db694 add tests for getParentID 37e1db4 ignoring not applicable gosec issue, this code is only used for testing purposes 2e79577 run gosec as part of the test target 52e5167 add gosec target that checks both openapi and tests directories aaef93a remove createTmpFile since it was being used only once (no need for the method yet) 6776310 update resource factory import to check error from data.Set 51af33c handle error f2ca1cf ignore G204 779a57a ignoring n/a G304 4e61bfa new version 0.30.1 8a3fd94 add nosec comments for G101, G304, and G402

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.31.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.31.0_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.31.0_linux_amd64.tar.gz(8.74 MB)
    terraform-provider-openapi_0.31.0_windows_amd64.zip(8.70 MB)
  • v0.30.1(Jul 6, 2020)

    What's new?

    • PR #251 [TechDebt: Issue #250] Update PR template to include issue closing keyword
    • PR #249 [FeatureRequest: Issue #248] Add sections to documentaton generator

    Changelog

    0f896de Merge pull request #252 from dikhan/version/0.30.1 2a77837 new version 0.30.1 d57f1a0 Merge pull request #251 from dikhan/update-PR-with-closing-keyword f607369 update PR to include closing keyword 70bb072 Merge pull request #249 from dikhan/feature/add-documentaton-sections 5abd8c2 update readme to note that the library uses the text/template package 43b590a update test with text/template 5687a81 use text/template instead f167a67 comment out printing the resource test output (used for debugging) 0d66630 fix spacing issue where example title was printing an empty paragraph when there was no title 9371651 Merge branch 'feature/add-documentaton-sections' of github.com:dikhan/terraform-provider-openapi into feature/add-documentaton-sections c9d932e update failing tests - changes in spacing a46d3c4 add Description property to DataSource 8e2e53c render again the example documentation f934557 rename example output file a01f25a fix broken link to example rendered documentation file 8657068 add provider name to import example b1c9c87 add KnownIssues property to Resource 63d8a17 add Title property to ExampleUsage 756f414 add provider notes section below table of contents

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.30.1_checksums.txt(357 bytes)
    terraform-provider-openapi_0.30.1_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.30.1_linux_amd64.tar.gz(8.75 MB)
    terraform-provider-openapi_0.30.1_windows_amd64.zip(8.71 MB)
  • v0.30.0(Jul 1, 2020)

    What's new?

    • PR #246 [FeatureRequest: Issue #245] OpenAPI Terraform automated documentation generator

    Changelog

    6528f9a Merge pull request #247 from dikhan/version/update-to-0.30.0 129770f bump up version to 0.30.0 4fbe17b Update README with a ref to the documentation renderer 1f51e40 Merge pull request #246 from dikhan/feature/openapi-terraform-doc-renderer b5f65ed make arguments more readable for the sake of the example 34d1ef0 add tests to render method 4c2e6cc Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer 736ebd7 update README 40981e0 add example output e01f0a4 move doc render library into pkg folder 087c0d9 go mod dep updates d434ba2 rename package to meet lint go standards 9d5671e add docs NewTerraformProviderDocGenerator 784520a use example swagger file in main go 654e1ad show no resources/data sources if lists are empty 7656a0a fix path 17dcdb2 fix tests after updating arguments/attributes format 6d4edea show dash only if description is populated 8914b96 show required/optional after dash and then description a45b9da remove no longer needed files f69ea71 remo no longer needed comments 8db3781 fix test after package rename 18b8596 Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer 5851a21 remove render from each struct and have the consumer method renderZendeskHTML figure out the right tempalte and right struct to use 2707a28 Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer 602c8c6 add TestDataSourcesTmpl b681aa8 don't use struct render methods 57b70d2 move all template related tests to openapi_terraform_template_html_test 6a7c730 move TestProviderConfigurationTmpl to openapi_terraform_template_html_test c3eb8c7 simplify TestProviderResources_RenderZendesk a082c0a add TestAttributeReferenceTmpl b1a1d3f Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer 533ed10 update TestArgumentReferenceTmpl with test cases bb17957 reuse attribute reference 9482b5c remove template package and have all html tmlp in one file 54d1f36 package rename to openapi_terraform_docs_generator f284a74 Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer d5f7257 add SetParentResourceName to ParentResourceInfo ff24a9a organise structs and tests within their own files de91b52 fix compilation error 79dd007 add public RenderHTML method to pass in the zendesk templates 3965adc add TestContainsResourcesWithSecretProperties 1449f85 refactor documentation structs to hold a reference to their templates 4800be7 add assertions to check the html output rendered by each template be3021f test resource and data source rendering separately (TestDataSources_RenderZendesk and TestProviderResources_RenderZendesk) 53848db update signature for GetAllHeaderParameters() on SpecAnalyser e8f2791 ignore error from getDataSourceInstances fd086b8 Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer a903ab0 make template rendering testable f483b64 add error case to GenerateDocumentation - error getting data source filters 0cf7f1e Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer ec72622 refactor doc generator spec analyser stub to return methods 6b6fe72 Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer f3b87f1 add initial test for TestTerraformProviderDocumentation_RenderZendeskHTML c7002be refactor TestGetSecurity to use a table driven test 65461bc refactor TestGetRegions to be table driven d001cf0 add coverage to ContainsComputedSubProperties a830c47 add test coverage for BuildImportIDsExample 5e6710e start to add error test cases for GenerateDocumentation c792ed3 add tests for NewTerraformProviderDocGenerator and GenerateDocumentation 687ded7 fix GenerateDocumentation to return errors 839d533 Merge branch 'feature/openapi-terraform-doc-renderer' of github.com:dikhan/terraform-provider-openapi into feature/openapi-terraform-doc-renderer

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.30.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.30.0_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.30.0_linux_amd64.tar.gz(8.75 MB)
    terraform-provider-openapi_0.30.0_windows_amd64.zip(8.71 MB)
  • v0.29.4(Jun 4, 2020)

    What's new?

    • PR #243 [BugFix: Issue #242] Plugin should not log payload from resource API to prevent printing sensitive props

    Changelog

    abb36b3 Merge pull request #244 from dikhan/version/update-to-0.29.4 44c7c99 Merge branch 'master' into version/update-to-0.29.4 85af2b4 bump up verson to v0.29.4 7901741 Merge pull request #243 from dikhan/bugfix/dont-log-req-resp-payloads 9db7920 update debug entry for req payload 1749e29 remove response payload logging to avoid disclosing potential sensitive properties

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.29.4_checksums.txt(357 bytes)
    terraform-provider-openapi_0.29.4_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.29.4_linux_amd64.tar.gz(8.75 MB)
    terraform-provider-openapi_0.29.4_windows_amd64.zip(8.71 MB)
  • v0.29.3(Jun 1, 2020)

    What's new?

    • PR #240 [BugFix: Issue #239] Ignore list items order if the property is configured with x-ignore-order

    Changelog

    d4466b5 Merge pull request #241 from dikhan/pump-to-v0.29.3 c6abc86 pump version to v0.29.3 a5700fc Merge pull request #240 from dikhan/bugfix/ignore-order-for-subprorpoerties-too ff30b76 gomod deps version updates 5a6ca1e solve lint issue 875b6b8 ignore order if property is set with ignore order 735fc30 add more test coverage

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.29.3_checksums.txt(357 bytes)
    terraform-provider-openapi_0.29.3_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.29.3_linux_amd64.tar.gz(8.75 MB)
    terraform-provider-openapi_0.29.3_windows_amd64.zip(8.71 MB)
  • v0.29.2(May 20, 2020)

    What's new?

    • PR #237 [BugFix: Issue #236] Don't update the state if the import fails

    Changelog

    1b794f8 Merge pull request #238 from dikhan/pump-v-0.29.2 7533ac6 pump version to v0.29.2 c125d4b Merge pull request #237 from dikhan/bugfix/dont-create-state-if-import-failed 9397953 fix TestImporter - if import returns an err, then data should be nil 5d37b3d if the import fails return the error and set the data to nil

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.29.2_checksums.txt(357 bytes)
    terraform-provider-openapi_0.29.2_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.29.2_linux_amd64.tar.gz(8.75 MB)
    terraform-provider-openapi_0.29.2_windows_amd64.zip(8.71 MB)
  • v0.29.1(May 19, 2020)

    What's new?

    • PR #234 [FeatureRequest: Issue #233 ] Add support for x-ignore-order
    • PR #232 [BugFix: Issue #231 ] Import errors when resource to be imported does not exists

    Changelog

    aee1ba2 Merge pull request #235 from dikhan/new-version/v0.29.1 76dc67f pump version to 0.29.1 f3028cb Merge pull request #234 from dikhan/feagture/support-for-x-ignore-order 097e21b add support for x-ignore-order bbf6e65 Merge pull request #232 from dikhan/bugfix/error-when-importing-nonexistent-resource cfa1d86 Merge branch 'bugfix/error-when-importing-nonexistent-resource' of github.com:dikhan/terraform-provider-openapi into bugfix/error-when-importing-nonexistent-resource efe7503 integrate readWithOptions into import method 99b28a5 add case to TestReadWithOptions - if error isn't an openapi error f8d726f move resourceFactory read logic to readWithOptions

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.29.1_checksums.txt(357 bytes)
    terraform-provider-openapi_0.29.1_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.29.1_linux_amd64.tar.gz(8.75 MB)
    terraform-provider-openapi_0.29.1_windows_amd64.zip(8.71 MB)
  • v0.29.0(May 14, 2020)

    What's new?

    • PR #229 [FeatureRequest: Issue #228] Ignore array prop ordering

    Changelog

    ca1fe4d Merge pull request #230 from dikhan/feature/pump-version-0.29.0 68a1fb0 pump version to 0.29.0 2355a80 Merge pull request #229 from dikhan/ignore-array-prop-ordering ace46ff go mod dep updates 8110f81 add x-terraform-ignore-order documentation efe0ba4 add test TestUpdateStateWithPayloadDataAndOptions cec48c5 add check for nil remoteValue 5a29d95 enable ignoreListOrderEnabled depending whether a resource or data source called the method 7378bc1 go mod dep updates 890eb6b vet cleanup beb4fa3 fix integration test adding the newly supported extension x-terraform-ignore-order: true 0cf8295 integrate processIgnoreOrderIfEnabled in updateStateWithPayloadData 172d295 add new use cases to check for input value being nil 488cb67 update test name to match the method under test 7f1f8c0 remove non needed switch 440babc Update TestEqual to TestEqualItems (new method name) 17452fe Add more test cases to TestCastValueToArray 04c14a4 Add TestCastValueToArray 4dbf266 Rename compare to equalItems (more descriptive) c5cc347 - rename the compareInputPropertyValueWithPayloadPropertyValue to a more clear name processIgnoreOrderIfEnabled - processIgnoreOrderIfEnabled now checks whether the property has the flag IgnoreItemsOrder enabled, otherwise returns the remote list (keeping the current behaviour) - if the casting returns nil we return the remotelist too (eg< use case for list of bools with the IgnoreItemsOrder set to true, this is not supported at the moment) ef12e1b Add TestValidateValueType 28ad45d Add bool switch case in compare method b6c4307 Add TestCompare for specSchemaDefinitionProperty 66240a8 Add test case to TestCompareInputPropertyValue afc971f fixed bug where once all the object prop values had been checked it was falling back to the regulat item check (instead of returning true) resulting into casting errors dd575ca fix typo 81479d7 remove unnecessary duplicated code de6be5f add support for compare and compareItems in the specSchemaDefinitionProperty 381cf8f Add float case to castValueToArray 29d5087 added int use case test coverage 593c526 cast to array of interfaces to simplify processing of different elem types a8150e9 Add test cases to TestCompareInputPropertyValueWithPayloadPropertyValue 337ae09 modify logic to cover the new set of use cases 16107a5 Add method (shouldIgnoreArrayItemsOrder) and related test to see if property has the x-terraform-ignore-order ext set 258e2a8 Merge branch 'ignore-array-prop-ordering' of github.com:dikhan/terraform-provider-openapi into ignore-array-prop-ordering 830e55a Update compareInputPropertyValueWithPayloadPropertyValue - cast to []string 05c25c3 Merge branch 'ignore-array-prop-ordering' of github.com:dikhan/terraform-provider-openapi into ignore-array-prop-ordering 8c9e2c1 add support for x-terraform-ignore-order extension 692767b Add initial checks on typeList in compareInputPropertyValueWithPayloadPropertyValue 8aeb727 add typeFloat and typeBool use case 7484ad8 create method that compares local proeprty value with remote 3582dd5 add TestAccCDN_CreateResourceWithIgnoreListOrderExtension

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.29.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.29.0_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.29.0_linux_amd64.tar.gz(8.75 MB)
    terraform-provider-openapi_0.29.0_windows_amd64.zip(8.71 MB)
  • v0.28.1(May 1, 2020)

    What's new?

    • PR #225 [FeatureRequest: Issue #224] Add telemetry to data sources

    Changelog

    a02d7cb Merge pull request #226 from dikhan/pump-v-0.28.1 abadc8e pump version to 0.28.1 7de5204 Merge pull request #225 from dikhan/add-telemetry-to-data-sources b52901e fix test ensuring we check the expected indexes contain the expected metric f9ea39d fix failing test a30327a Integrate submitTelemetryMetric into the resource factory aec649a Add TestDataSourceInstanceRead_Fails_NilOpenAPIResource 4d4094d test data source with filters in the integration test too dc0edb6 Update httpendpoint telemetry e2e test to check data source telemetry ef68816 update '.terraform.provider' docs a937e6d integrate telemetry into dataSourceInstanceFactory read operation 44fb943 add test to TestSubmitTelemetryMetric ee84ba8 Update data source factory to submit telemetry on read operation 5dce956 Create new functions to submit telemetry metrics for resources and data sources

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.28.1_checksums.txt(357 bytes)
    terraform-provider-openapi_0.28.1_darwin_amd64.tar.gz(9.14 MB)
    terraform-provider-openapi_0.28.1_linux_amd64.tar.gz(8.74 MB)
    terraform-provider-openapi_0.28.1_windows_amd64.zip(8.70 MB)
  • v0.28.0(Apr 27, 2020)

    What's new?

    • PR #222 [FeatureRequest: Issue #221] Plugin submits resource information and operation performed as part of telemetry metrics
    • PR #220 [FeatureRequest: Issue #219] Provider plugin submits tags as part of HTTP telemetry provider

    Changelog

    6f2c3a9 Merge pull request #223 from dikhan/version/update-to-0.28.0 db1df80 Update version to 0.28.0 1e1bbfd Merge pull request #222 from dikhan/feature/telemetry-support-resource-metrics 6cf4233 update graphite docs with tags info and 'terraform.provider' metric updates 62a46bc update http endpoint docs with new resource metric/tag format for '.terraform.provider' a12af43 fix log entries in the test api server 676b6cc fix flaky test 111fcd8 Merge branch 'feature/telemetry-support-resource-metrics' of github.com:dikhan/terraform-provider-openapi into feature/telemetry-support-resource-metrics 67a9ffe fix graphite test e7ffc30 Update assertions in e2e provider config test with http endpoint telemetry b7f08fe fix go vet issues b7efcb7 Add todo to implement sending the terraform version with the plugin execution counter 93c4328 Remove provider total runs counter from telemetry provider 4dc5d6f add e2e test to confirm metrics are being submitted correctly 07d134a Update resource create, read, update and delete methods to use telemetry handler stub 10b87b8 integrate telemetry metric into import operation 0edd263 Update resource delete method to submit telemetry metric 3a65717 Update resource update method to submit telemetry metric 7f18d35 Update resource read to submit telemetry metric 93e981c integrate submitTelemetryMetric into create operation 17eb2e6 add check for nil providerClient 0966080 Add submitTelemetryMetric to resourceFactory and associated test 8046a0d Update TestProviderClientGetTelemetryHandler to use &telemetryHandlerTimeoutSupport 54bcaf2 support GetTelemetryHandler() telemetryHandler in the ClientOpenAPI 9ac7ae6 integrate telemetryHandler into ProviderClient 4e65d49 Separate success and failure tests for SubmitPluginExecutionMetrics a655c3b Add SubmitResourceExecutionMetrics to telemetry handler 149c77d Update TelemetryProvider interface with IncServiceProviderResourceTotalRunsCounter f8edfc3 Add IncServiceProviderResourceTotalRunsCounter to the telemetry provider stub 70d3c83 fix failing test 7b3e783 add IncServiceProviderResourceTotalRunsCounter to graphite telemetry 04f8b72 use TelemetryResourceOperationCreate instead of hardcoded string 30f745d document operation with specific type TelemetryResourceOperation 7690e10 Add IncServiceProviderResourceTotalRunsCounter to HTTP endpoint telemetry 855f86d Merge pull request #220 from dikhan/feature/submit-provider-props-in-http-endpint-telemetry 964c721 return nil telemetry handler if telemetry validation fails d37d6ae check if telemetryProvider is nil before validating 40945a9 update doc with actual implementation behaviour aa54222 update e2e HTTPEndpointTelemetry test to include provider_schema_properties ead2375 validate telemetry provider before creating the telemetryHandlerTimeoutSupport 511fe4e update docs 08e3824 Merge branch 'feature/submit-provider-props-in-http-endpint-telemetry' of github.com:dikhan/terraform-provider-openapi into feature/submit-provider-props-in-http-endpint-telemetry 2d5c455 Update provider factory test to check for telemetry metric tags 24a56b2 Merge branch 'feature/submit-provider-props-in-http-endpint-telemetry' of github.com:dikhan/terraform-provider-openapi into feature/submit-provider-props-in-http-endpint-telemetry b2c5e53 updated telemetry documentation including provider_schema_properties information 0ed925f Merge branch 'feature/submit-provider-props-in-http-endpint-telemetry' of github.com:dikhan/terraform-provider-openapi into feature/submit-provider-props-in-http-endpint-telemetry 8a29e90 Update telemetry metric struct to submit a list of tags to be associated with each metric 5ccd8f1 add coverage to TestGetSchemaPropertyConfiguration 6c2803d add more coverage for TestTelemetryProviderHttpEndpointSubmitMetric 368c18f change TelemetryProviderConfiguration to have interface{} values instead 05f153e add telemetryProviderConfiguration as dependency to createNewRequest dda8a3b add TelemetryProviderConfiguration as input param for IncOpenAPIPluginVersionTotalRunsCounter and IncServiceProviderTotalRunsCounter 6c5fa6b Update provider factory test to check for expected headers from http endpoint telemetry b45f062 Update TelemetryProvider interface with a GetTelemetryProviderConfiguration 4fe281b Update e2e plugin config tests with new telemetry config 1654f33 Fix golint errors 75ce657 add resourceData dep to GetTelemetryHandler 262e956 Remove deprecated telemetry submit metrics method 04362ba Move telemetry handler and submit metric from plugin config to provider factory c5bfdde Remove telemetry handler and add todo to test logic after migrated e5101af Update test get telemetry config - expected type should be pointer eddb669 Update test to get service provider config de74810 Comment out Telemetry Handler SubmitPluginExecutionMetrics - pending changes to logic aa1d732 Fix plugin config marshal test 7620f64 add omit empty tags 944c7e7 update stub with GetTelemetryConfiguration implementation a89e1c7 telemetryHandlerTimeoutSupport now accepts resource data and telemetryProvider 989419c move TelemetryConfig to service configuration level

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.28.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.28.0_darwin_amd64.tar.gz(9.13 MB)
    terraform-provider-openapi_0.28.0_linux_amd64.tar.gz(8.74 MB)
    terraform-provider-openapi_0.28.0_windows_amd64.zip(8.70 MB)
  • v0.27.1(Apr 3, 2020)

    What's new?

    • PR #216 [BugFix: Issue #217] Fix marshal nil pointer caused when marshalling TelemetryProviderHTTPEndpoint

    Changelog

    00f4074 Merge pull request #218 from dikhan/version/update-to-0.27.1 81117e2 Merge branch 'master' into version/update-to-0.27.1 ce8da78 Update version to 0.27.1 5c2c992 Merge pull request #216 from dikhan/bugfix/telemetry_http_endpoint_marshall_issue 8de9eba fix marshall nil pointer caused when marshalling TelemetryProviderHTTPEndpoint

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.27.1_checksums.txt(357 bytes)
    terraform-provider-openapi_0.27.1_darwin_amd64.tar.gz(9.13 MB)
    terraform-provider-openapi_0.27.1_linux_amd64.tar.gz(8.74 MB)
    terraform-provider-openapi_0.27.1_windows_amd64.zip(8.70 MB)
  • v0.27.0(Apr 1, 2020)

    What's new?

    • PR #215 [BugFix: Issue #214] Fix x-terraform-sensitive description
    • PR #211 [BugFix: Issue #212] Removing extra ')' in Makefile
    • PR #210 [FeatureRequest: Issue #209] Add telemetry http endpoint support

    Changelog

    a21d807 Merge pull request #213 from dikhan/version-update-0.27.0 bf0abec Merge branch 'master' into version-update-0.27.0 bcd83c1 Merge pull request #215 from dikhan/bugfix/x-terraform-sensitive-doc fa642a9 fix x-terraform-sensitive description cd51785 Update version to 0.27.0 1b2abe8 Merge pull request #211 from dikhan/bugfix/makefile-travis-error 5ca09b0 Remove extra ')' in Makefile ef3d40a Merge pull request #210 from dikhan/feature/add-telemetry-http-endpoint-support 00a9df6 replace spaces withs tabs 6f95581 commenting out github release install step for now 2a657e5 uncomment github-release-notes installation 2e853d4 locking github.com/google/go-github dep to a compatible version for github.com/buchanae/github-release-notes 9328f93 commenting out github release install step for now 96e88d3 Merge branch 'feature/add-telemetry-http-endpoint-support' of github.com:dikhan/terraform-provider-openapi into feature/add-telemetry-http-endpoint-support ef2593f go mod deps updates 1b4ad37 Merge branch 'feature/add-telemetry-http-endpoint-support' of github.com:dikhan/terraform-provider-openapi into feature/add-telemetry-http-endpoint-support dde4ec5 Go mod updates a4254c8 Cleanup - lint errors (HTTP should be all caps) 583a7a2 make more explicit the test api endpoints 6357548 Some cleanup - add comments to test check functions and correct typo 06f45d3 created TestAcc_ProviderConfiguration_PluginExternalFile into e2e e88a278 Add integration test (TestAccProviderConfiguration_PluginExternalFile_WithTelemetry) with telemetry 88db5b5 Update comment for HttpEndpoint in TelemetryConfig struct 50a8748 Correction to httpendpoint docs - replace reference to Graphite bfe8115 Merge branch 'feature/add-telemetry-http-endpoint-support' of github.com:dikhan/terraform-provider-openapi into feature/add-telemetry-http-endpoint-support 4952cb2 update plugin config docs with http endpoint telemetry info eb596e6 Update TestGetTelemetryHandler with new test cases f461313 Merge branch 'feature/add-telemetry-http-endpoint-support' of github.com:dikhan/terraform-provider-openapi into feature/add-telemetry-http-endpoint-support 1370573 integrate HttpEndpoint into TelemetryConfig 8c7b168 add test to confirm nil telemetryProviders does not blow up 83b7e41 Refactor TestCreateNewRequest to use more descriptive assertions a95289e Merge branch 'feature/add-telemetry-http-endpoint-support' of github.com:dikhan/terraform-provider-openapi into feature/add-telemetry-http-endpoint-support 1d23e9a Add crappy path to TestCreateNewRequest - bad url 958358a add tests for createNewCounterMetric 52b88e5 add logic for IncServiceProviderTotalRunsCounter 68fbdad add test IncOpenAPIPluginVersionTotalRunsCounter 881c92c test failure scenarios 0e58456 Refactor TestCreateNewRequest - check only the OpenAPI user agent and not the os and arch 295f7a0 add happy path test for TestTelemetryProviderHttpEndpointSubmitMetric 38ac321 Add TestCreateNewRequest with happy path ec7ee4c Refactor telemetry provider httpendpoint ab0ba93 add content type header const e027816 add impl for IncOpenAPIPluginVersionTotalRunsCounter 31d6fc6 add TestTelemetryProviderHttpEndpoint_Validate test 89e993c add a quick todo as a reminder 8d341f7 create scaffolding for TelemetryProviderHttpEndpoint 97e21c7 re-organize a bit the code

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.27.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.27.0_darwin_amd64.tar.gz(9.16 MB)
    terraform-provider-openapi_0.27.0_linux_amd64.tar.gz(8.77 MB)
    terraform-provider-openapi_0.27.0_windows_amd64.zip(8.79 MB)
  • v0.26.0(Dec 28, 2019)

    What's new?

    • PR #205 [FeatureRequest: Issue #204] Provide telemetry in OpenAPI Terraform Provider

    Changelog

    b836442 Merge pull request #206 from dikhan/new-version/0.26.0 86fa8c7 [NewRelease] v0.26.0 d433468 Merge pull request #205 from dikhan/add-metrics 4f5b731 refactor graphite provider submitMetric to return result of c.Incr 8947947 add TestTelemetryProviderGraphite_BuildMetricName 190d9d4 expose telemetry configurtion on NewPluginConfigSchemaV1 cbab29d create assertExpectedMetric to reuse code across tests that need the udpserver 59f0419 go mod dep updates 6c5ecd3 fixing go vet issues 6ddd5b0 Merge branch 'add-metrics' of github.com:dikhan/terraform-provider-openapi into add-metrics 12e3a1f add a channel to udpServer 7d0b6e1 add documentation d576a44 Merge branch 'add-metrics' of github.com:dikhan/terraform-provider-openapi into add-metrics d9a02ea add more tests to cover when telemetry configuration is not present f9ed7ee Merge branch 'add-metrics' of github.com:dikhan/terraform-provider-openapi into add-metrics 8ea171e add tests for plugin version and service provider counters with a bad host ff6dd8b go mod dep updates 9b96879 submit metrics once the plugin config is configured with telemetry 01dfe0c create telemetry timeout ea00451 Merge branch 'add-metrics' of github.com:dikhan/terraform-provider-openapi into add-metrics aec4540 Merge branch 'add-metrics' of github.com:dikhan/terraform-provider-openapi into add-metrics 3c8c803 add happy path tests for IncOpenAPIPluginVersionTotalRunsCounter and IncServiceProviderTotalRunsCounter c370964 add logging to IncOpenAPIPluginVersionTotalRunsCounter and IncServiceProviderTotalRunsCounter 98fd3d8 updated test description to match reality aa7c26c Integrate GetTelemetryHandler into the PluginConfigSchema interface 36d7c49 Add GetTelemetryHandler in charge of building TelemetryHandler with validated telemetry providers 529deb8 Add TelemetryConfig to the PluginConfigSchemaV1 bff33c9 Merge branch 'add-metrics' of github.com:dikhan/terraform-provider-openapi into add-metrics f5ba459 remove terraform version counter 42558fc add implementaion for TelemetryHandler c582501 add TestTelemetryProviderGraphite_Validate db5ee3a add fields to struct 34797cd provide implementation for TelemetryConfig 5f03c38 add dd lib to push metrics to graphite

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.26.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.26.0_darwin_amd64.tar.gz(9.16 MB)
    terraform-provider-openapi_0.26.0_linux_amd64.tar.gz(8.77 MB)
    terraform-provider-openapi_0.26.0_windows_amd64.zip(8.79 MB)
  • v0.25.0(Dec 22, 2019)

    What's new?

    • PR #199 [FeatureRequest: Issue #198] Updating release documentation
    • PR #198 [FeatureRequest: Issue #197] Automate release deployments

    Changelog

    ed0d4c4 Merge pull request #203 from dikhan/quick-update 056d106 Merge branch 'quick-update' of github.com:dikhan/terraform-provider-openapi into quick-update bf76658 remove test from release-version 0e33fea Merge branch 'master' into quick-update 6ddd5f0 make sure we use gomodules when releasing too 19e1106 Merge pull request #202 from dikhan/quick-update bb37746 run test before releasing forcing deps to be pulled too e4aa09b Merge pull request #201 from dikhan/version/pump-up-0.25.0 687bf80 Merge branch 'master' into version/pump-up-0.25.0 bcc2626 update PR template to require 1 reviewer/assignee 8f00195 remove new lines in PR template 8931293 add release-notes to gitignore b34b52a Merge pull request #200 from dikhan/version/pump-up-0.25.0 36ca014 bump up version to 0.25.0 58850ee Merge pull request #199 from dikhan/new-release-docs 7f97af8 update go mod 92b418b update contribution guidelines 065d2d8 update bug report and feature request templates 6897d09 update the pull request template c43b44b add make target test-all (runs all tests, including int tests) 5958b76 update release docs with new process 8c5a6f0 remove delete-tag make target 1eeb924 add release-pre-requirements to makefile - installs deps if needed 47b9613 go mod updates 4892201 update release_notes.sh to use correct repo and PR title bf6ef47 Merge pull request #198 from dikhan/feature/automate-release-process 309a021 go mod version updates 7581c9d update travis pipeline to support automatic releases too 92dde69 update make release-version 79d8db0 add semver script to compare whether current proposed version is greater than latest release c398cb9 create release_notes script that produces a release note (release-notes.md) including PRs information

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.25.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.25.0_darwin_amd64.tar.gz(9.12 MB)
    terraform-provider-openapi_0.25.0_linux_amd64.tar.gz(8.73 MB)
    terraform-provider-openapi_0.25.0_windows_amd64.zip(8.76 MB)
  • v0.24.0(Dec 11, 2019)

    What's new?

    • Feature #188: Resource name cannot contain dashes
    • Bug Fix #190: Do not fail when provider property config cmd fails to execute or external file to get the value from does not exists
    • Feature #192: Improve TF plugin error messaging for missing values in required resource headers
    • Tech Debt #194: Fix deprecation goreleaser warning when releasing new version

    Changelog

    2c80032e Merge pull request #196 from dikhan/version/update-to-0.24.0 ad1b5988 bump up version to 0.24.0 c9bdaea7 Merge pull request #195 from dikhan/tech-debt/fix-deprecate-warn-goreleaser-config 5fc97504 Merge branch 'master' into tech-debt/fix-deprecate-warn-goreleaser-config 57bb20ba Merge pull request #193 from dikhan/feature/validate-secdefs-header-values-before-api-call 17e6fac7 Merge branch 'feature/validate-secdefs-header-values-before-api-call' of github.com:dikhan/terraform-provider-openapi into feature/validate-secdefs-header-values-before-api-call a7446672 go mod dep updates fc07ca9d Merge branch 'master' into feature/validate-secdefs-header-values-before-api-call 8632cf62 go mod updates 4f4587b5 typo fix 6a8d4024 Merge pull request #191 from dikhan/feature/do-not-fail-when-cmd-exec-fails 17cf167e Merge branch 'master' into tech-debt/fix-deprecate-warn-goreleaser-config 635b0b7f quick fix updating to archives as per deprecation warning and upgrade documentation c74aa9ad fix int test and update key name to represent the expected behaviour c7135d4e make it expliciut that the provider config 'required_header_example' is empty a7ed78f9 go mod dep updates 48a10838 remove no longer applicable tests since the check is done before API is performed instead 97347524 fix unit tests adding required flag set to true c1be2971 make the check safer comparing against the string trimmed cbd12848 add int tests covering APKIKeyHeader, APKIKeyQuery and RefreshToken c2357227 set authenticator value to empty if not present in the provider configuration 59afe8f1 fix unit tests dfb6574e return error when prepare auth fails 5e15b1a6 integrate authenticator.validate() when looping through the authenticators edf06f53 refactor prepareAuth test to use table tests 1f139b30 refactor test to use table driven 3d79d8c2 add new validate method to specAPIKeyAuthenticator d12eefac fix compilation issues after updating the authenticator struct 89dc9bd9 add validate function to check the apiKeyHeaderAuthenticator contains an api key value 1e171d07 add validate function to check the apiKeyQueryAuthenticator contains an api key value cee77ef1 add validate function to check the apiRefreshTokenAuthenticator contains an api key value 0579cae6 roll back changes related to config file path 7d676ea4 update expected error message when sec def is missing 6ed39bf9 fix integration test expected error 9112116c remove header validation from newProviderConfiguration c88495fe more user friendly error 1c802623 update error to be more user friendly 7227d0f8 validate if header is required and if the value is present a8a767d2 make field public dd974085 update header registration setting if header is required eb2cf50e fix compile issues a68e4cba add support in SpecHeaderParam to mark as required the parameter 24d9c53d add integration test documenting expected behaviour when required security definition for a resource is missing the value 30a1c005 add integration test documenting expected behaviour when required header for a resource is missing the value 043ed0de go mod dep updates 92ae3e7e fix lint issue ad179482 more go mod dep updates b1097d03 update int tests to document that failures to execute cmd or read external source file containing the property value will not stop the plugin execution 0e50ef99 [bug-fix] error out when external config file does not exists b650381c go mod dep updates c8128a49 update documentaiton bd98280d Merge branch 'master' into feature/do-not-fail-when-cmd-exec-fails e25c6ab0 Merge pull request #187 from smutel/feature/BeAbleToUseDash 7b0622e2 extend test to check default values too e168fbf7 don't stop plugin execution when provider schema property config contains a command that fails or fails to get the value from external source file 604a8037 provide more details in the error when cmd execution fails 0c95f975 test case when extenal file is json but the keyname is wrong 662e7c42 add coverage when external config file does not exists ca11f142 Merge branch 'master' into feature/BeAbleToUseDash 4128b6e6 Replace dash by underscore 0383df28 Change regex to be able to use dash in resource name 58689e82 Add tests for resource with dash

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.24.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.24.0_darwin_amd64.tar.gz(9.12 MB)
    terraform-provider-openapi_0.24.0_linux_amd64.tar.gz(8.73 MB)
    terraform-provider-openapi_0.24.0_windows_amd64.zip(8.76 MB)
  • v0.23.0(Nov 27, 2019)

    What's new?

    • Feature #184: Add support for x-terraform-resource-name on path level

    Changelog

    391a8c95 Merge pull request #189 from dikhan/bump-up-version-to-0.23.0 5c58b657 bump up version to 0.23.0 d5a7d3ff Merge pull request #186 from dikhan/tf-preferred-resource-name-on-path cf28316a extend fat tests to cover preferred name on root path lavel and data sources df55226f extend TestBuildResourceName with more test to meet acceptance criteria ef9f7c5c go mod dep updates 9049b458 quick refactor to bring getPreferredName under SpecV2Resource namespace 9e23f899 update documentation for x-terraform-resource-name f22147bb remove extra #'s in a couple headers in the docs - rendering incorrectly c536da0d go mod updates to golang b2d66a10 remove test cases from TestGetTerraformResource 88801c23 integrate getPreferredName into getParentResourceInfo and getResourceTerraformName 181af3d9 add getPreferredName func to get preferred name given a spec.PathItem 94d83895 remove todo for deprecating x-terraform-resource-name on post 12717dad go mod updates to golang ad509e7b Merge pull request #185 from dikhan/fix-subresource-parent-assert f4666461 go mod updates to golang 49bef1c9 remove TestGetTerraformCompliantResources failing assert on subresource parent property b6463439 remove todo in TestGetTerraformCompliantResources - assert instead on parentPropExists be3abc5e fix failing convey in TestGetTerraformCompliantResources da49c31e update swagger in gray_box_cdns_test to have x-terraform-resource-name on root path rather than on post 76698c3e add test case to TestResourceTerraformName - preferred name ext on both root and post levels 34daa8be refactor getResourceTerraformName when post has preferred name ext and root path has another extension 939bdf11 go mod updates to golang ea306d0f refactor getResourceTerraformName to check the root level path for the x-terraform-resource-name extension e3220455 extend TestGetResourceTerraformName with a case where x-terraform-resource-name is on the root level path 4dd23f51 new integration test TestAcc_PreferredResourceNameOnPathLevel

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.23.0_checksums.txt(357 bytes)
    terraform-provider-openapi_0.23.0_darwin_amd64.tar.gz(9.12 MB)
    terraform-provider-openapi_0.23.0_linux_amd64.tar.gz(8.73 MB)
    terraform-provider-openapi_0.23.0_windows_amd64.zip(8.76 MB)
  • v0.22.3(Nov 12, 2019)

    What's new?

    • Bug Fix #182: Parent id required arrays subresources

    Changelog

    a648b0b8 Merge pull request #183 from dikhan/update-version-0.22.3 e277406c pump up version to 0.22.3 682ebe59 Merge pull request #182 from dikhan/bugfix-181/parent-id-required-arrays-subresources 97634064 moved tests to either TestGetResourceSchema or TestGetSchemaDefinition to better document expected behaviour 8dd9ea16 flesh out TestGetSchemaDefinitionWithOptions tests 20d077b7 make use of map instead to avoid dups 8345e031 create getSchemaDefinitionWithOptions which will force parent props addition if dealing with first level 619eef07 document in tests two bugs found

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.22.3_checksums.txt(357 bytes)
    terraform-provider-openapi_0.22.3_darwin_amd64.tar.gz(9.12 MB)
    terraform-provider-openapi_0.22.3_linux_amd64.tar.gz(8.73 MB)
    terraform-provider-openapi_0.22.3_windows_amd64.zip(8.76 MB)
  • v0.22.2(Oct 31, 2019)

    What's new?

    • Feature #171: Support resources where POST operation does not expect any inputs
    • Bug Fix #176: Valid terraform compliant endpoint not available as resource in the plugin
    • Bug Fix #178: Internal process that checks terraform compliant resources is run twice

    Changelog

    3e592077 pump up minor and bug version 253b209c Merge pull request #177 from dikhan/bugfix/duplicate-resources a654640d add subresource root level get operation to reproduce bug found and confirm fix 3a1ae9b4 return the providerConfigEndPoints :) cee6ec13 go mod deps update 6e1db8a0 add subresource check and data source instance on subresource into fat test c0a3682d remove provider name from resource name list build a1d36aa0 pass in providerConfigurationEndPoints to createTerraformProviderSchema bbad6d3e implement getResourceNames that given the resource map builds the list of resource name list b74f9706 remove specAnalyser dep from providerConfigurationEndPoints and instead configure the struct with resourceNames fcbe235b acept providerConfigurationEndPoints as input dbdd80fc add test for subresource paths findMatchingResourceRootPath 944abca4 make isResourceInstanceEndPoint only return true if the path ends with path param or path param with trailing slash 221a3373 add more logging to isEndPointFullyTerraformResourceCompliant aaa6e921 add more logging to findMatchingResourceRootPath f19dc8cf Merge pull request #175 from dikhan/feature/post-opeartion-with-no-inputs bbe1408c update go mod deps ebd6ac12 fix go vet issues 753953bc add missing coverage for case where successful response schema is missing 80fc4422 update docu with the new use case b646b83c go fmt 92c23f5d update int test and make it green 3939a653 integrate (special case for resources with POST operations that do not expect any input) logic into validateRootPath dfdc4b29 add implementation for getSuccessfulResponseDefinition 11d03ee2 remove redundant tests in TestValidateResourceSchemaDefinition 6749ff50 add todos as ref to pick up next 7384ccc3 WIP implement validateResourceSchemaDefWithOptions 89fa2b20 add test for Test_getBodyParameterBodySchema 08732cf5 refactor getBodyParameterBodySchema to pull out logic into new function (bodyParameterExists) 8941d42f add unit test describing expected behaviour for resource that is missing post body operation 4e534788 add test for new use case where valid resource (with no inputs for creation) is not considered terraform compatible

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.22.2_checksums.txt(357 bytes)
    terraform-provider-openapi_0.22.2_darwin_amd64.tar.gz(9.12 MB)
    terraform-provider-openapi_0.22.2_linux_amd64.tar.gz(8.73 MB)
    terraform-provider-openapi_0.22.2_windows_amd64.zip(8.76 MB)
  • v0.21.2(Oct 25, 2019)

    What's new?

    • Bug Fix #169 : Do not error out when API returns properties that are not specified in the resource definition model

    Changelog

    9dcdbcc7 update go mod deps 96a7c861 pump bug version 3565e38a Merge pull request #174 from dikhan/api-props-not-in-schema-no-err ed38c9e9 update TestAccCDN_CreateWithZeroValues with new error message for updating an immutable prop 741126ff update go mod deps 3b04de5a update error messaging when user tries to update an immutable prop 770190d2 remove error when API returns property not specified in resource schema def

    Source code(tar.gz)
    Source code(zip)
    terraform-provider-openapi_0.21.2_checksums.txt(357 bytes)
    terraform-provider-openapi_0.21.2_darwin_amd64.tar.gz(9.12 MB)
    terraform-provider-openapi_0.21.2_linux_amd64.tar.gz(8.73 MB)
    terraform-provider-openapi_0.21.2_windows_amd64.zip(8.76 MB)
Owner
Daniel I. Khan Ramiro
Passionate software engineer, open source enthusiast, problem solver and always looking forward to learning new things. (twitter @Dani_Khan_)
Daniel I. Khan Ramiro
Terraform provider to help with various AWS automation tasks (mostly all that stuff we cannot accomplish with the official AWS terraform provider)

terraform-provider-awsutils Terraform provider for performing various tasks that cannot be performed with the official AWS Terraform Provider from Has

Cloud Posse 25 Dec 8, 2022
Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)

Terraform Provider for Azure (Resource Manager) Version 2.x of the AzureRM Provider requires Terraform 0.12.x and later, but 1.0 is recommended. Terra

null 0 Oct 16, 2021
Terraform-provider-mailcow - Terraform provider for Mailcow

Terraform Provider Scaffolding (Terraform Plugin SDK) This template repository i

Owen Valentine 0 Dec 31, 2021
Terraform-provider-buddy - Terraform Buddy provider For golang

Terraform Provider for Buddy Documentation Requirements Terraform >= 1.0.11 Go >

Buddy 1 Jan 5, 2022
Terraform-provider-vercel - Terraform Vercel Provider With Golang

Vercel Terraform Provider Website: https://www.terraform.io Documentation: https

Vercel 80 Dec 14, 2022
Terraform-provider-age - Age Terraform Provider with golang

Age Terraform Provider This provider lets you generate an Age key pair. Using th

ConsenSys Software 0 Feb 15, 2022
Kusk makes your OpenAPI definition the source of truth for API resources in your cluster

Kusk - use OpenAPI to configure Kubernetes What is Kusk? Developers deploying their REST APIs in Kubernetes shouldn't have to worry about managing res

kubeshop 7 Dec 16, 2022
kube-champ 43 Oct 19, 2022
Terraform-in-Terraform: Execute Modules directly from the Terraform Registry

Terraform-In-Terraform Provider This provider allows running Terraform in Terraform. This might seem insane but there are some edge cases where it com

WeakPixel 39 Dec 25, 2022
A Terraform provider for managing Pi-hole resources

terraform-provider-pihole Pi-hole is an ad blocking application which acts as a DNS proxy that returns empty responses when DNS requests for known adv

Ryan Wholey 22 Dec 28, 2022
Terraform utility provider for constructing bash scripts that use data from a Terraform module

Terraform Bash Provider This is a Terraform utility provider which aims to robustly generate Bash scripts which refer to data that originated in Terra

Martin Atkins 33 Sep 6, 2022
Quick start repository for creating a Terraform provider using terraform-plugin-framework

Terraform Provider Scaffolding (Terraform Plugin Framework) This template repository is built on the Terraform Plugin Framework. The template reposito

HashiCorp 70 Dec 15, 2022
Terraform Provider Scaffolding (Terraform Plugin SDK)

Terraform Provider Scaffolding (Terraform Plugin SDK) This template repository is built on the Terraform Plugin SDK. The template repository built on

Brian Flad 0 Feb 8, 2022
The k8s-generic-webhook is a library to simplify the implementation of webhooks for arbitrary customer resources (CR) in the operator-sdk or controller-runtime.

k8s-generic-webhook The k8s-generic-webhook is a library to simplify the implementation of webhooks for arbitrary customer resources (CR) in the opera

Norwin Schnyder 9 Nov 24, 2022
Hashicups-tf-provider - HashiCups Terraform Provider Tutorial

Terraform Provider HashiCups Run the following command to build the provider go

Andrew Xie 1 Jan 10, 2022
A tool to bring existing Azure resources under Terraform's management

Azure Terrafy A tool to bring your existing Azure resources under the management of Terraform. Install go install github.com/magodo/aztfy@latest Usage

magodo 0 Dec 9, 2021
A Terraform module that creates AWS alerts billing for your resources.

terraform-aws-billing-alarms terraform-aws-billing-alarms for project Replace name project to New Project agr 'terraform-aws-billing-alarms' 'new-pr

hadenlabs 1 Oct 20, 2021
A tool to bring existing Azure resources under Terraform's management

Azure Terrafy A tool to bring your existing Azure resources under the management of Terraform. Goal Azure Terrafy imports the resources inside a resou

Microsoft Azure 932 Jan 1, 2023
Simple tool to move Azure resources based on Terraform state

aztfmove Simple tool to move Azure resources based on Terraform state Goal It is sometimes inevitable to move Azure resources to a new subscription or

null 28 Dec 29, 2022