Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add aws_workspaces_directory.saml_properties #39060

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

ablackrw
Copy link

Description

Adds the saml_properties structure within the aws_workspaces_directory resource and datasource to allow Terraform management of the SAML 2.0 integration in AWS Workspaces.

Relations

Closes #29359

References

Setting up SAML 2.0

Output from Acceptance Testing

% make testacc TESTS=TestAccWorkSpacesDataSource_serial/Directory PKG=workspaces 
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.5 test ./internal/service/workspaces/... -v -count 1 -parallel 20 -run='TestAccWorkSpacesDataSource_serial/Directory'  -timeout 360m
=== RUN   TestAccWorkSpacesDataSource_serial
=== PAUSE TestAccWorkSpacesDataSource_serial
=== CONT  TestAccWorkSpacesDataSource_serial
=== RUN   TestAccWorkSpacesDataSource_serial/Directory
=== RUN   TestAccWorkSpacesDataSource_serial/Directory/basic
--- PASS: TestAccWorkSpacesDataSource_serial (683.86s)
    --- PASS: TestAccWorkSpacesDataSource_serial/Directory (683.86s)
        --- PASS: TestAccWorkSpacesDataSource_serial/Directory/basic (683.86s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/workspaces688.387s
% make testacc TESTS=TestAccWorkSpaces_serial/Directory/basic PKG=workspaces
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.5 test ./internal/service/workspaces/... -v -count 1 -parallel 20 -run='TestAccWorkSpaces_serial/Directory/basic'  -timeout 360m
=== RUN   TestAccWorkSpaces_serial
=== PAUSE TestAccWorkSpaces_serial
=== CONT  TestAccWorkSpaces_serial
=== RUN   TestAccWorkSpaces_serial/Directory
=== RUN   TestAccWorkSpaces_serial/Directory/basic
--- PASS: TestAccWorkSpaces_serial (744.87s)
    --- PASS: TestAccWorkSpaces_serial/Directory (744.87s)
        --- PASS: TestAccWorkSpaces_serial/Directory/basic (744.87s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/workspaces749.414s
% make testacc TESTS=TestAccWorkSpaces_serial/Directory/workspaceSamlProperties PKG=workspaces
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.5 test ./internal/service/workspaces/... -v -count 1 -parallel 20 -run='TestAccWorkSpaces_serial/Directory/workspaceSamlProperties'  -timeout 360m
=== RUN   TestAccWorkSpaces_serial
=== PAUSE TestAccWorkSpaces_serial
=== CONT  TestAccWorkSpaces_serial
=== RUN   TestAccWorkSpaces_serial/Directory
=== RUN   TestAccWorkSpaces_serial/Directory/workspaceSamlProperties
--- PASS: TestAccWorkSpaces_serial (779.96s)
    --- PASS: TestAccWorkSpaces_serial/Directory (779.96s)
        --- PASS: TestAccWorkSpaces_serial/Directory/workspaceSamlProperties (779.96s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/workspaces784.458s

* `directory.go` (`ResourceDirectory()`): Add `saml_properties` structure to schema.
  (`resourceDirectoryCreate()`): Call `ModifySamlProperties` if `saml_properties` structure is present.
  (`resourceDirectoryRead()`): Store `directory.SamlProperties` in `saml_properties` structure.
  (`resourceDirectoryUpdate()`): Call `ModifySamlProperties` if `saml_properties` structure has changed.
  (`ExpandSAMLProperties()`): Add expander for `types.SamlProperties`.
  (`FlattenSAMLProperties()`): Add flattener for `types.SamlProperties`.
  (`SamlStatusEnumValues()`): Add helper for listing `types.SamlStatusEnum` values.
* `directory_data_source.go` (`DataSourceDirectory()`): Add `saml_properties` structure to schema.
  (`dataSourceDirectoryRead()`): Store `directory.SamlProperties` in `saml_properties` structure.
* `directory_data_source_test.go` (`testAccDirectoryDataSource_basic()`): Validate `saml_properties` structure data matches resource object.
  `testAccDirectoryDataSourceConfig_basic()`: Add `saml_properties` structure to reference object.
* `directory_test.go` (`testAccDirectory_basic()`): Validate default values of `saml_properties` structure.
  (`testAccDirectory_SamlProperties()`): Validate `saml_properties` structure is correctly mutated.
  (`TestExpandSAMLProperties()`): Unit test expander.
  (`TestFlattenSAMLProperties()`): Unit test flattener.
  (`testAccDirectoryConfig_samlPropertiesFull()`): Helper to generate state for `testAccDirectory_SamlProperties()`.
  (`testAccDirectoryConfig_samlPropertiesRSPN()`): Helper to generate state for `testAccDirectory_SamlProperties()`.
  (`testAccDirectoryConfig_samlPropertiesUAU()`): Helper to generate state for `testAccDirectory_SamlProperties()`.
  (`testAccDirectoryConfig_samlPropertiesEmpty()`): Helper to generate state for `testAccDirectory_SamlProperties()`.
* `workspaces_test.go` (`TestAccWorkSpaces_serial()`): Add `testAccDirectory_SamlProperties` as subtest.
* `workspaces_directory.html.markdown`: Document new `saml_properties` structure.
@ablackrw ablackrw requested a review from a team as a code owner August 27, 2024 22:18
Copy link

Community Note

Voting for Prioritization

  • Please vote on this pull request by adding a 👍 reaction to the original post to help the community and maintainers prioritize this pull request.
  • Please see our prioritization guide for information on how we prioritize.
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.

For Submitters

  • Review the contribution guide relating to the type of change you are making to ensure all of the necessary steps have been taken.
  • For new resources and data sources, use skaff to generate scaffolding with comments detailing common expectations.
  • Whether or not the branch has been rebased will not impact prioritization, but doing so is always a welcome surprise.

@github-actions github-actions bot added documentation Introduces or discusses updates to documentation. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. service/workspaces Issues and PRs that pertain to the workspaces service. needs-triage Waiting for first response or review from a maintainer. labels Aug 27, 2024
* `directory_data_source_test.go` (`testAccDirectoryDataSource_basic()`): Make `saml_properties` testing more robust.
  (`testAccDirectoryDataSourceConfig_basic()`): Remove use of hardcoded URI, replace with dynamic value.
@ablackrw
Copy link
Author

With the modification to directory_data_source_test.go, I've rerun the test, producing the following output

% make testacc TESTS=TestAccWorkSpacesDataSource_serial/Directory PKG=workspaces
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.0 test ./internal/service/workspaces/... -v -count 1 -parallel 20 -run='TestAccWorkSpacesDataSource_serial/Directory'  -timeout 360m
=== RUN   TestAccWorkSpacesDataSource_serial
=== PAUSE TestAccWorkSpacesDataSource_serial
=== CONT  TestAccWorkSpacesDataSource_serial
=== RUN   TestAccWorkSpacesDataSource_serial/Directory
=== RUN   TestAccWorkSpacesDataSource_serial/Directory/basic
--- PASS: TestAccWorkSpacesDataSource_serial (781.68s)
    --- PASS: TestAccWorkSpacesDataSource_serial/Directory (781.68s)
        --- PASS: TestAccWorkSpacesDataSource_serial/Directory/basic (781.68s)
PASS
ok  	github.com/hashicorp/terraform-provider-aws/internal/service/workspaces786.621s

@justinretzolk justinretzolk added enhancement Requests to existing resources that expand the functionality or scope. and removed needs-triage Waiting for first response or review from a maintainer. labels Aug 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Introduces or discusses updates to documentation. enhancement Requests to existing resources that expand the functionality or scope. service/workspaces Issues and PRs that pertain to the workspaces service. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Enhancement]: workspace saml integration
2 participants