hashicorp / terraform-provider-http

Utility provider for interacting with generic HTTP servers as part of a Terraform configuration.
https://registry.terraform.io/providers/hashicorp/http/latest
Mozilla Public License 2.0
206 stars 116 forks source link

Addressing #241 and #192 - Allow 'PUT' requests #298

Closed rovangju closed 7 months ago

rovangju commented 1 year ago

I think PUT falls in the spirit of idempotent design guidance and shouldn't negatively impact stability.

Some resources for consideration:

A PUT operation is a critical operation for applying updates to resources.

hashicorp-cla commented 1 year ago

CLA assistant check
All committers have signed the CLA.

sean-freeman commented 8 months ago

@austinvalle @bflad @bendbennett @DanielMSchmidt As recent approvers, please can this small PR be reviewed and rejected or approved? The Terraform Provider already accepts POST, which has unlimited operations, and PUT is the same except limited to create/update operations - there should be no reason this PR is left open.

bendbennett commented 8 months ago

@sean-freeman thank you for raising this.

The description for the method attribute states:

The HTTP Method for the request. Allowed methods are a subset of methods defined in RFC7231 namely, GET, HEAD, and POST. POST support is only intended for read-only URLs, such as submitting a search.

As such, the POST operation, although allowed, was only ever intended to be used for read-only operations. Given that the http provider exposes a single data source, intended for performing reads, it seems unlikely that the allowed methods would be expanded to include methods which are explicitly for mutation (e.g., PUT).

I will consult with the rest of the team to confirm/refute the opinion expressed ,and then either close or review this PR.

bendbennett commented 7 months ago

Following consultation with the team, it has been agreed that adding further HTTP methods which are explicitly for mutation is outside of the intended scope of the http data source.

@rovangju thank you for your original submission, but unfortunately for the reasons stated we are unable to incorporate your changes into the provider at this time.

Perhaps the restapi provider might prove to be a suitable alternative, as the restapi_object resource allows POST, GET, PUT and DELETE operations.

github-actions[bot] commented 4 months ago

I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions. If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.