diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..ad20a6d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,31 @@ +name: Release + +on: + push: + tags: + - "v*" + +permissions: + contents: write + id-token: write + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + # Allow goreleaser to access older tag information. + fetch-depth: 0 + - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 + with: + go-version-file: "go.mod" + cache: true + - name: Install cosign + uses: sigstore/cosign-installer@v3 + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@286f3b13b1b49da4ac219696163fb8c1c93e1200 # v6.0.0 + with: + args: release --clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..6876f10 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,79 @@ +# Terraform Provider testing workflow. +name: Tests + +# This GitHub action runs your tests for each pull request and push. +# Optionally, you can turn it on using a schedule for regular testing. +on: + pull_request: + paths-ignore: + - "README.md" + +# Testing only needs permissions to read the repository contents. +permissions: + contents: read + +jobs: + # Ensure project builds before running testing matrix + build: + name: Build + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 + with: + go-version-file: "go.mod" + cache: true + - run: go mod download + - run: go build -v . + - name: Run linters + uses: golangci/golangci-lint-action@a4f60bb28d35aeee14e6880718e0c85ff1882e64 # v6.0.1 + with: + version: latest + + generate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 + with: + go-version-file: "go.mod" + cache: true + - run: go generate ./... + - name: git diff + run: | + git diff --compact-summary --exit-code || \ + (echo; echo "Unexpected difference in directories after code generation. Run 'go generate ./...' command and commit."; exit 1) + + # Run acceptance tests in a matrix with Terraform CLI versions + # test: + # name: Terraform Provider Acceptance Tests + # needs: build + # runs-on: ubuntu-latest + # timeout-minutes: 15 + # strategy: + # fail-fast: false + # matrix: + # terraform: + # - "1.6.*" + # - "1.7.*" + # - "1.8.*" + # - "1.9.*" + # - "1.10.*" + # steps: + # - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + # - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 + # with: + # go-version-file: "go.mod" + # cache: true + # - uses: hashicorp/setup-terraform@651471c36a6092792c552e8b1bef71e592b462d8 # v3.1.1 + # with: + # terraform_version: ${{ matrix.terraform }} + # terraform_wrapper: false + # - run: go mod download + # - env: + # DESCOPE_PROJECT_ID: ${{ secrets.DESCOPE_PROJECT_ID }} + # DESCOPE_MANAGEMENT_KEY: ${{ secrets.DESCOPE_MANAGEMENT_KEY }} + # TF_ACC: "1" + # run: go test -v -cover ./provider/ + # timeout-minutes: 10 diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..4c6bb5a --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,27 @@ +# Visit https://golangci-lint.run/ for usage documentation +# and information on other useful linters +issues: + max-per-linter: 0 + max-same-issues: 0 + +linters: + disable-all: true + enable: + - durationcheck + - errcheck + - exportloopref + - forcetypeassert + - godot + - gofmt + - gosimple + - ineffassign + - makezero + - misspell + - nilerr + - predeclared + - staticcheck + - tenv + - unconvert + - unparam + - unused + - vet diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..e14ef97 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,61 @@ +# Visit https://goreleaser.com for documentation on how to customize this +# behavior. +version: 2 +before: + hooks: + # this is just an example and not a requirement for provider building/publishing + - go mod tidy +env: + - CGO_ENABLED=0 + - COSIGN_YES=true +builds: + - mod_timestamp: "{{ .CommitTimestamp }}" + flags: + - -trimpath + ldflags: + - "-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}" + goos: + - freebsd + - windows + - linux + - darwin + goarch: + - amd64 + - "386" + - arm + - arm64 + ignore: + - goos: darwin + goarch: "386" + binary: "{{ .ProjectName }}_v{{ .Version }}" +archives: + - format: zip + name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" +checksum: + extra_files: + - glob: "terraform-registry-manifest.json" + name_template: "{{ .ProjectName }}_{{ .Version }}_manifest.json" + name_template: "{{ .ProjectName }}_{{ .Version }}_SHA256SUMS" + algorithm: sha256 +signs: + - artifacts: checksum + cmd: cosign + signature: "${artifact}.sig" + certificate: "${artifact}.pem" + args: + [ + "sign-blob", + "--output-signature", + "${artifact}.sig", + "--output-certificate", + "${artifact}.pem", + "${artifact}", + ] +release: + extra_files: + - glob: "terraform-registry-manifest.json" + name_template: "{{ .ProjectName }}_{{ .Version }}_manifest.json" + # If you want to manually examine the release before its live, uncomment this line: + # draft: true +changelog: + disable: true diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6f35277 --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +default: testacc + +# Run acceptance tests +.PHONY: testacc +testacc: + TF_ACC=1 go test ./... -v $(TESTARGS) -timeout 120m \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..b666d05 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,22 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "descope Provider" +subcategory: "" +description: |- + +--- + +# descope Provider + + + + + + +## Schema + +### Optional + +- `base_url` (String) +- `management_key` (String, Sensitive) +- `project_id` (String) diff --git a/docs/resources/project.md b/docs/resources/project.md new file mode 100644 index 0000000..6c97039 --- /dev/null +++ b/docs/resources/project.md @@ -0,0 +1,1684 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "descope_project Resource - descope" +subcategory: "" +description: |- + +--- + +# descope_project (Resource) + + + + + + +## Schema + +### Required + +- `name` (String) + +### Optional + +- `applications` (Attributes) (see [below for nested schema](#nestedatt--applications)) +- `attributes` (Attributes) (see [below for nested schema](#nestedatt--attributes)) +- `authentication` (Attributes) (see [below for nested schema](#nestedatt--authentication)) +- `authorization` (Attributes) (see [below for nested schema](#nestedatt--authorization)) +- `connectors` (Attributes) (see [below for nested schema](#nestedatt--connectors)) +- `flows` (Attributes Map) (see [below for nested schema](#nestedatt--flows)) +- `jwt_templates` (Attributes) (see [below for nested schema](#nestedatt--jwt_templates)) +- `project_settings` (Attributes) (see [below for nested schema](#nestedatt--project_settings)) +- `styles` (Attributes) (see [below for nested schema](#nestedatt--styles)) +- `tag` (String) + +### Read-Only + +- `id` (String) The ID of this resource. + + +### Nested Schema for `applications` + +Optional: + +- `oidc` (Attributes List) (see [below for nested schema](#nestedatt--applications--oidc)) +- `saml` (Attributes List) (see [below for nested schema](#nestedatt--applications--saml)) + + +### Nested Schema for `applications.oidc` + +Required: + +- `name` (String) + +Optional: + +- `claims` (List of String) +- `description` (String) +- `disabled` (Boolean) +- `id` (String) +- `login_page_url` (String) +- `logo` (String) + + + +### Nested Schema for `applications.saml` + +Required: + +- `name` (String) + +Optional: + +- `acs_allowed_callback_urls` (List of String) +- `attribute_mapping` (Attributes List) (see [below for nested schema](#nestedatt--applications--saml--attribute_mapping)) +- `default_relay_state` (String) +- `description` (String) +- `disabled` (Boolean) +- `dynamic_configuration` (Attributes) (see [below for nested schema](#nestedatt--applications--saml--dynamic_configuration)) +- `id` (String) +- `login_page_url` (String) +- `logo` (String) +- `manual_configuration` (Attributes) (see [below for nested schema](#nestedatt--applications--saml--manual_configuration)) +- `subject_name_id_format` (String) +- `subject_name_id_type` (String) + + +### Nested Schema for `applications.saml.attribute_mapping` + +Required: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `applications.saml.dynamic_configuration` + +Required: + +- `metadata_url` (String) + + + +### Nested Schema for `applications.saml.manual_configuration` + +Required: + +- `acs_url` (String) +- `certificate` (String) +- `entity_id` (String) + + + + + +### Nested Schema for `attributes` + +Optional: + +- `tenant` (Attributes List) (see [below for nested schema](#nestedatt--attributes--tenant)) +- `user` (Attributes List) (see [below for nested schema](#nestedatt--attributes--user)) + + +### Nested Schema for `attributes.tenant` + +Required: + +- `name` (String) +- `type` (String) + +Optional: + +- `select_options` (List of String) + + + +### Nested Schema for `attributes.user` + +Required: + +- `name` (String) +- `type` (String) + +Optional: + +- `select_options` (List of String) +- `widget_authorization` (Attributes) (see [below for nested schema](#nestedatt--attributes--user--widget_authorization)) + + +### Nested Schema for `attributes.user.widget_authorization` + +Optional: + +- `edit_permissions` (List of String) +- `view_permissions` (List of String) + + + + + +### Nested Schema for `authentication` + +Optional: + +- `embedded_link` (Attributes) (see [below for nested schema](#nestedatt--authentication--embedded_link)) +- `enchanted_link` (Attributes) (see [below for nested schema](#nestedatt--authentication--enchanted_link)) +- `magic_link` (Attributes) (see [below for nested schema](#nestedatt--authentication--magic_link)) +- `oauth` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth)) +- `otp` (Attributes) (see [below for nested schema](#nestedatt--authentication--otp)) +- `password` (Attributes) (see [below for nested schema](#nestedatt--authentication--password)) +- `sso` (Attributes) (see [below for nested schema](#nestedatt--authentication--sso)) +- `totp` (Attributes) (see [below for nested schema](#nestedatt--authentication--totp)) +- `webauthn` (Attributes) (see [below for nested schema](#nestedatt--authentication--webauthn)) + + +### Nested Schema for `authentication.embedded_link` + +Optional: + +- `enabled` (Boolean) +- `expiration_time` (Number) +- `expiration_time_unit` (String) + + + +### Nested Schema for `authentication.enchanted_link` + +Optional: + +- `email_service` (Attributes) (see [below for nested schema](#nestedatt--authentication--enchanted_link--email_service)) +- `enabled` (Boolean) +- `expiration_time` (Number) +- `expiration_time_unit` (String) +- `redirect_url` (String) + + +### Nested Schema for `authentication.enchanted_link.email_service` + +Required: + +- `connector` (String) + +Optional: + +- `templates` (Attributes List) (see [below for nested schema](#nestedatt--authentication--enchanted_link--email_service--templates)) + + +### Nested Schema for `authentication.enchanted_link.email_service.templates` + +Required: + +- `name` (String) +- `subject` (String) + +Optional: + +- `active` (Boolean) +- `html_body` (String) +- `plain_text_body` (String) +- `use_plain_text_body` (Boolean) + +Read-Only: + +- `id` (String) + + + + + +### Nested Schema for `authentication.magic_link` + +Optional: + +- `email_service` (Attributes) (see [below for nested schema](#nestedatt--authentication--magic_link--email_service)) +- `enabled` (Boolean) +- `expiration_time` (Number) +- `expiration_time_unit` (String) +- `redirect_url` (String) +- `text_service` (Attributes) (see [below for nested schema](#nestedatt--authentication--magic_link--text_service)) + + +### Nested Schema for `authentication.magic_link.email_service` + +Required: + +- `connector` (String) + +Optional: + +- `templates` (Attributes List) (see [below for nested schema](#nestedatt--authentication--magic_link--email_service--templates)) + + +### Nested Schema for `authentication.magic_link.email_service.templates` + +Required: + +- `name` (String) +- `subject` (String) + +Optional: + +- `active` (Boolean) +- `html_body` (String) +- `plain_text_body` (String) +- `use_plain_text_body` (Boolean) + +Read-Only: + +- `id` (String) + + + + +### Nested Schema for `authentication.magic_link.text_service` + +Required: + +- `connector` (String) + +Optional: + +- `templates` (Attributes List) (see [below for nested schema](#nestedatt--authentication--magic_link--text_service--templates)) + + +### Nested Schema for `authentication.magic_link.text_service.templates` + +Required: + +- `body` (String) +- `name` (String) + +Optional: + +- `active` (Boolean) + +Read-Only: + +- `id` (String) + + + + + +### Nested Schema for `authentication.oauth` + +Optional: + +- `custom` (Attributes Map) (see [below for nested schema](#nestedatt--authentication--oauth--custom)) +- `disabled` (Boolean) +- `system` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system)) + + +### Nested Schema for `authentication.oauth.custom` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--custom--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.custom.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system` + +Optional: + +- `apple` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--apple)) +- `discord` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--discord)) +- `facebook` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--facebook)) +- `github` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--github)) +- `gitlab` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--gitlab)) +- `google` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--google)) +- `linkedin` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--linkedin)) +- `microsoft` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--microsoft)) +- `slack` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--slack)) + + +### Nested Schema for `authentication.oauth.system.apple` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--apple--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.apple.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system.discord` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--discord--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.discord.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system.facebook` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--facebook--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.facebook.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system.github` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--github--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.github.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system.gitlab` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--gitlab--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.gitlab.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system.google` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--google--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.google.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system.linkedin` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--linkedin--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.linkedin.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system.microsoft` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--microsoft--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.microsoft.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + +### Nested Schema for `authentication.oauth.system.slack` + +Optional: + +- `authorization_endpoint` (String) +- `claim_mapping` (Map of String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `description` (String) +- `disabled` (Boolean) +- `grant_type` (String) +- `issuer` (String) +- `jwks_endpoint` (String) +- `logo` (String) +- `merge_user_accounts` (Boolean) +- `prompts` (List of String) +- `provider_token_management` (Attributes) (see [below for nested schema](#nestedatt--authentication--oauth--system--slack--provider_token_management)) +- `scopes` (List of String) +- `token_endpoint` (String) +- `user_info_endpoint` (String) + + +### Nested Schema for `authentication.oauth.system.slack.provider_token_management` + +Optional: + +- `callback_domain` (String) +- `redirect_url` (String) + + + + + + +### Nested Schema for `authentication.otp` + +Optional: + +- `domain` (String) +- `email_service` (Attributes) (see [below for nested schema](#nestedatt--authentication--otp--email_service)) +- `enabled` (Boolean) +- `expiration_time` (Number) +- `expiration_time_unit` (String) +- `text_service` (Attributes) (see [below for nested schema](#nestedatt--authentication--otp--text_service)) +- `voice_service` (Attributes) (see [below for nested schema](#nestedatt--authentication--otp--voice_service)) + + +### Nested Schema for `authentication.otp.email_service` + +Required: + +- `connector` (String) + +Optional: + +- `templates` (Attributes List) (see [below for nested schema](#nestedatt--authentication--otp--email_service--templates)) + + +### Nested Schema for `authentication.otp.email_service.templates` + +Required: + +- `name` (String) +- `subject` (String) + +Optional: + +- `active` (Boolean) +- `html_body` (String) +- `plain_text_body` (String) +- `use_plain_text_body` (Boolean) + +Read-Only: + +- `id` (String) + + + + +### Nested Schema for `authentication.otp.text_service` + +Required: + +- `connector` (String) + +Optional: + +- `templates` (Attributes List) (see [below for nested schema](#nestedatt--authentication--otp--text_service--templates)) + + +### Nested Schema for `authentication.otp.text_service.templates` + +Required: + +- `body` (String) +- `name` (String) + +Optional: + +- `active` (Boolean) + +Read-Only: + +- `id` (String) + + + + +### Nested Schema for `authentication.otp.voice_service` + +Required: + +- `connector` (String) + +Optional: + +- `templates` (Attributes List) (see [below for nested schema](#nestedatt--authentication--otp--voice_service--templates)) + + +### Nested Schema for `authentication.otp.voice_service.templates` + +Required: + +- `body` (String) +- `name` (String) + +Optional: + +- `active` (Boolean) + +Read-Only: + +- `id` (String) + + + + + +### Nested Schema for `authentication.password` + +Optional: + +- `email_service` (Attributes) (see [below for nested schema](#nestedatt--authentication--password--email_service)) +- `enabled` (Boolean) +- `expiration` (Boolean) +- `expiration_weeks` (Number) +- `lock` (Boolean) +- `lock_attempts` (Number) +- `lowercase` (Boolean) +- `min_length` (Number) +- `non_alphanumeric` (Boolean) +- `number` (Boolean) +- `reuse` (Boolean) +- `reuse_amount` (Number) +- `uppercase` (Boolean) + + +### Nested Schema for `authentication.password.email_service` + +Required: + +- `connector` (String) + +Optional: + +- `templates` (Attributes List) (see [below for nested schema](#nestedatt--authentication--password--email_service--templates)) + + +### Nested Schema for `authentication.password.email_service.templates` + +Required: + +- `name` (String) +- `subject` (String) + +Optional: + +- `active` (Boolean) +- `html_body` (String) +- `plain_text_body` (String) +- `use_plain_text_body` (Boolean) + +Read-Only: + +- `id` (String) + + + + + +### Nested Schema for `authentication.sso` + +Optional: + +- `enabled` (Boolean) +- `merge_users` (Boolean) + + + +### Nested Schema for `authentication.totp` + +Optional: + +- `enabled` (Boolean) + + + +### Nested Schema for `authentication.webauthn` + +Optional: + +- `enabled` (Boolean) +- `top_level_domain` (String) + + + + +### Nested Schema for `authorization` + +Optional: + +- `permissions` (Attributes List) (see [below for nested schema](#nestedatt--authorization--permissions)) +- `roles` (Attributes List) (see [below for nested schema](#nestedatt--authorization--roles)) + + +### Nested Schema for `authorization.permissions` + +Required: + +- `name` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `authorization.roles` + +Required: + +- `name` (String) + +Optional: + +- `description` (String) +- `permissions` (List of String) + +Read-Only: + +- `id` (String) + + + + +### Nested Schema for `connectors` + +Optional: + +- `abuseipdb` (Attributes List) (see [below for nested schema](#nestedatt--connectors--abuseipdb)) +- `amplitude` (Attributes List) (see [below for nested schema](#nestedatt--connectors--amplitude)) +- `audit_webhook` (Attributes List) (see [below for nested schema](#nestedatt--connectors--audit_webhook)) +- `aws_s3` (Attributes List) (see [below for nested schema](#nestedatt--connectors--aws_s3)) +- `aws_translate` (Attributes List) (see [below for nested schema](#nestedatt--connectors--aws_translate)) +- `clear` (Attributes List) (see [below for nested schema](#nestedatt--connectors--clear)) +- `datadog` (Attributes List) (see [below for nested schema](#nestedatt--connectors--datadog)) +- `devrev_grow` (Attributes List) (see [below for nested schema](#nestedatt--connectors--devrev_grow)) +- `docebo` (Attributes List) (see [below for nested schema](#nestedatt--connectors--docebo)) +- `forter` (Attributes List) (see [below for nested schema](#nestedatt--connectors--forter)) +- `google_cloud_translation` (Attributes List) (see [below for nested schema](#nestedatt--connectors--google_cloud_translation)) +- `hibp` (Attributes List) (see [below for nested schema](#nestedatt--connectors--hibp)) +- `http` (Attributes List) (see [below for nested schema](#nestedatt--connectors--http)) +- `hubspot` (Attributes List) (see [below for nested schema](#nestedatt--connectors--hubspot)) +- `intercom` (Attributes List) (see [below for nested schema](#nestedatt--connectors--intercom)) +- `newrelic` (Attributes List) (see [below for nested schema](#nestedatt--connectors--newrelic)) +- `recaptcha` (Attributes List) (see [below for nested schema](#nestedatt--connectors--recaptcha)) +- `recaptcha_enterprise` (Attributes List) (see [below for nested schema](#nestedatt--connectors--recaptcha_enterprise)) +- `rekognition` (Attributes List) (see [below for nested schema](#nestedatt--connectors--rekognition)) +- `salesforce` (Attributes List) (see [below for nested schema](#nestedatt--connectors--salesforce)) +- `segment` (Attributes List) (see [below for nested schema](#nestedatt--connectors--segment)) +- `sendgrid` (Attributes List) (see [below for nested schema](#nestedatt--connectors--sendgrid)) +- `smtp` (Attributes List) (see [below for nested schema](#nestedatt--connectors--smtp)) +- `sumologic` (Attributes List) (see [below for nested schema](#nestedatt--connectors--sumologic)) +- `telesign` (Attributes List) (see [below for nested schema](#nestedatt--connectors--telesign)) +- `traceable` (Attributes List) (see [below for nested schema](#nestedatt--connectors--traceable)) +- `twilio_core` (Attributes List) (see [below for nested schema](#nestedatt--connectors--twilio_core)) +- `twilio_verify` (Attributes List) (see [below for nested schema](#nestedatt--connectors--twilio_verify)) +- `veriff` (Attributes List) (see [below for nested schema](#nestedatt--connectors--veriff)) + + +### Nested Schema for `connectors.abuseipdb` + +Required: + +- `api_key` (String, Sensitive) +- `name` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.amplitude` + +Required: + +- `api_key` (String, Sensitive) +- `name` (String) + +Optional: + +- `description` (String) +- `server_url` (String) +- `server_zone` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.audit_webhook` + +Required: + +- `base_url` (String) +- `name` (String) + +Optional: + +- `audit_filters` (String) +- `authentication` (Attributes) (see [below for nested schema](#nestedatt--connectors--audit_webhook--authentication)) +- `description` (String) +- `headers` (Map of String) +- `hmac_secret` (String, Sensitive) +- `insecure` (Boolean) + +Read-Only: + +- `id` (String) + + +### Nested Schema for `connectors.audit_webhook.authentication` + +Optional: + +- `api_key` (Attributes) (see [below for nested schema](#nestedatt--connectors--audit_webhook--authentication--api_key)) +- `basic` (Attributes) (see [below for nested schema](#nestedatt--connectors--audit_webhook--authentication--basic)) +- `bearer_token` (String, Sensitive) + + +### Nested Schema for `connectors.audit_webhook.authentication.api_key` + +Required: + +- `key` (String) +- `token` (String, Sensitive) + + + +### Nested Schema for `connectors.audit_webhook.authentication.basic` + +Required: + +- `password` (String, Sensitive) +- `username` (String) + + + + + +### Nested Schema for `connectors.aws_s3` + +Required: + +- `access_key_id` (String, Sensitive) +- `bucket` (String) +- `name` (String) +- `region` (String) +- `secret_access_key` (String, Sensitive) + +Optional: + +- `audit_filters` (String) +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.aws_translate` + +Required: + +- `access_key_id` (String) +- `name` (String) +- `region` (String) +- `secret_access_key` (String, Sensitive) + +Optional: + +- `description` (String) +- `session_token` (String, Sensitive) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.clear` + +Required: + +- `api_key` (String, Sensitive) +- `name` (String) +- `project_id` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.datadog` + +Required: + +- `api_key` (String, Sensitive) +- `name` (String) + +Optional: + +- `audit_enabled` (Boolean) +- `audit_filters` (String) +- `description` (String) +- `site` (String) +- `troubleshoot_log_enabled` (Boolean) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.devrev_grow` + +Required: + +- `api_key` (String, Sensitive) +- `name` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.docebo` + +Required: + +- `base_url` (String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `name` (String) +- `password` (String, Sensitive) +- `username` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.forter` + +Required: + +- `name` (String) +- `secret_key` (String, Sensitive) +- `site_id` (String) + +Optional: + +- `description` (String) +- `override_ip_address` (String) +- `override_user_email` (String) +- `overrides` (Boolean) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.google_cloud_translation` + +Required: + +- `name` (String) +- `project_id` (String) +- `service_account_json` (String, Sensitive) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.hibp` + +Required: + +- `name` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.http` + +Required: + +- `base_url` (String) +- `name` (String) + +Optional: + +- `authentication` (Attributes) (see [below for nested schema](#nestedatt--connectors--http--authentication)) +- `description` (String) +- `headers` (Map of String) +- `hmac_secret` (String, Sensitive) +- `include_headers_in_context` (Boolean) +- `insecure` (Boolean) + +Read-Only: + +- `id` (String) + + +### Nested Schema for `connectors.http.authentication` + +Optional: + +- `api_key` (Attributes) (see [below for nested schema](#nestedatt--connectors--http--authentication--api_key)) +- `basic` (Attributes) (see [below for nested schema](#nestedatt--connectors--http--authentication--basic)) +- `bearer_token` (String, Sensitive) + + +### Nested Schema for `connectors.http.authentication.api_key` + +Required: + +- `key` (String) +- `token` (String, Sensitive) + + + +### Nested Schema for `connectors.http.authentication.basic` + +Required: + +- `password` (String, Sensitive) +- `username` (String) + + + + + +### Nested Schema for `connectors.hubspot` + +Required: + +- `access_token` (String, Sensitive) +- `name` (String) + +Optional: + +- `base_url` (String) +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.intercom` + +Required: + +- `name` (String) +- `token` (String, Sensitive) + +Optional: + +- `description` (String) +- `region` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.newrelic` + +Required: + +- `api_key` (String, Sensitive) +- `name` (String) + +Optional: + +- `audit_enabled` (Boolean) +- `audit_filters` (String) +- `data_center` (String) +- `description` (String) +- `troubleshoot_log_enabled` (Boolean) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.recaptcha` + +Required: + +- `name` (String) +- `secret_key` (String, Sensitive) +- `site_key` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.recaptcha_enterprise` + +Required: + +- `api_key` (String, Sensitive) +- `name` (String) +- `project_id` (String) +- `site_key` (String) + +Optional: + +- `assessment_score` (Number) +- `description` (String) +- `override_assessment` (Boolean) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.rekognition` + +Required: + +- `access_key_id` (String) +- `collection_id` (String) +- `name` (String) +- `secret_access_key` (String, Sensitive) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.salesforce` + +Required: + +- `base_url` (String) +- `client_id` (String) +- `client_secret` (String, Sensitive) +- `name` (String) +- `version` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.segment` + +Required: + +- `name` (String) +- `write_key` (String, Sensitive) + +Optional: + +- `description` (String) +- `host` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.sendgrid` + +Required: + +- `authentication` (Attributes) (see [below for nested schema](#nestedatt--connectors--sendgrid--authentication)) +- `name` (String) +- `sender` (Attributes) (see [below for nested schema](#nestedatt--connectors--sendgrid--sender)) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + +### Nested Schema for `connectors.sendgrid.authentication` + +Required: + +- `api_key` (String, Sensitive) + + + +### Nested Schema for `connectors.sendgrid.sender` + +Required: + +- `email` (String) + +Optional: + +- `name` (String) + + + + +### Nested Schema for `connectors.smtp` + +Required: + +- `authentication` (Attributes) (see [below for nested schema](#nestedatt--connectors--smtp--authentication)) +- `name` (String) +- `sender` (Attributes) (see [below for nested schema](#nestedatt--connectors--smtp--sender)) +- `server` (Attributes) (see [below for nested schema](#nestedatt--connectors--smtp--server)) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + +### Nested Schema for `connectors.smtp.authentication` + +Required: + +- `password` (String, Sensitive) +- `username` (String) + +Optional: + +- `method` (String) + + + +### Nested Schema for `connectors.smtp.sender` + +Required: + +- `email` (String) + +Optional: + +- `name` (String) + + + +### Nested Schema for `connectors.smtp.server` + +Required: + +- `host` (String) + +Optional: + +- `port` (Number) + + + + +### Nested Schema for `connectors.sumologic` + +Required: + +- `http_source_url` (String, Sensitive) +- `name` (String) + +Optional: + +- `audit_enabled` (Boolean) +- `audit_filters` (String) +- `description` (String) +- `troubleshoot_log_enabled` (Boolean) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.telesign` + +Required: + +- `api_key` (String, Sensitive) +- `customer_id` (String) +- `name` (String) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.traceable` + +Required: + +- `name` (String) +- `secret_key` (String, Sensitive) + +Optional: + +- `description` (String) +- `eu_region` (Boolean) + +Read-Only: + +- `id` (String) + + + +### Nested Schema for `connectors.twilio_core` + +Required: + +- `account_sid` (String) +- `authentication` (Attributes) (see [below for nested schema](#nestedatt--connectors--twilio_core--authentication)) +- `name` (String) +- `senders` (Attributes) (see [below for nested schema](#nestedatt--connectors--twilio_core--senders)) + +Optional: + +- `description` (String) + +Read-Only: + +- `id` (String) + + +### Nested Schema for `connectors.twilio_core.authentication` + +Optional: + +- `api_key` (String, Sensitive) +- `api_secret` (String, Sensitive) +- `auth_token` (String, Sensitive) + + + +### Nested Schema for `connectors.twilio_core.senders` + +Required: + +- `sms` (Attributes) (see [below for nested schema](#nestedatt--connectors--twilio_core--senders--sms)) + +Optional: + +- `voice` (Attributes) (see [below for nested schema](#nestedatt--connectors--twilio_core--senders--voice)) + + +### Nested Schema for `connectors.twilio_core.senders.sms` + +Optional: + +- `messaging_service_sid` (String) +- `phone_number` (String) + + + +### Nested Schema for `connectors.twilio_core.senders.voice` + +Required: + +- `phone_number` (String) + + + + + +### Nested Schema for `connectors.twilio_verify` + +Required: + +- `account_sid` (String) +- `authentication` (Attributes) (see [below for nested schema](#nestedatt--connectors--twilio_verify--authentication)) +- `name` (String) +- `service_sid` (String) + +Optional: + +- `description` (String) +- `sender` (String) + +Read-Only: + +- `id` (String) + + +### Nested Schema for `connectors.twilio_verify.authentication` + +Optional: + +- `api_key` (String, Sensitive) +- `api_secret` (String, Sensitive) +- `auth_token` (String, Sensitive) + + + + +### Nested Schema for `connectors.veriff` + +Required: + +- `api_key` (String) +- `name` (String) +- `secret_key` (String, Sensitive) + +Optional: + +- `base_url` (String) +- `description` (String) + +Read-Only: + +- `id` (String) + + + + +### Nested Schema for `flows` + +Required: + +- `data` (String) + + + +### Nested Schema for `jwt_templates` + +Optional: + +- `templates` (Attributes List) (see [below for nested schema](#nestedatt--jwt_templates--templates)) + + +### Nested Schema for `jwt_templates.templates` + +Required: + +- `name` (String) +- `template` (String) +- `type` (String) + +Optional: + +- `auth_schema` (String) +- `conformance_issuer` (Boolean) +- `description` (String) + +Read-Only: + +- `id` (String) + + + + +### Nested Schema for `project_settings` + +Optional: + +- `access_key_jwt_template` (String) +- `cookie_policy` (Number) +- `domain` (String) +- `enable_inactivity` (Boolean) +- `inactivity_time` (String) +- `refresh_token_expiration` (String) +- `user_jwt_template` (String) + + + +### Nested Schema for `styles` + +Required: + +- `data` (String) diff --git a/go.mod b/go.mod index 2808c38..f280538 100644 --- a/go.mod +++ b/go.mod @@ -4,24 +4,55 @@ go 1.21 require ( github.com/descope/go-sdk v1.6.5 + github.com/hashicorp/terraform-plugin-docs v0.19.4 github.com/hashicorp/terraform-plugin-framework v1.10.0 github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 + github.com/hashicorp/terraform-plugin-go v0.23.0 github.com/hashicorp/terraform-plugin-log v0.9.0 + github.com/hashicorp/terraform-plugin-testing v1.9.0 github.com/iancoleman/strcase v0.3.0 ) require ( + github.com/BurntSushi/toml v1.2.1 // indirect + github.com/Kunde21/markdownfmt/v3 v3.1.0 // indirect + github.com/Masterminds/goutils v1.1.1 // indirect + github.com/Masterminds/semver/v3 v3.2.0 // indirect + github.com/Masterminds/sprig/v3 v3.2.3 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect + github.com/agext/levenshtein v1.2.2 // indirect + github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect + github.com/armon/go-radix v1.0.0 // indirect + github.com/bgentry/speakeasy v0.1.0 // indirect + github.com/bmatcuk/doublestar/v4 v4.6.1 // indirect + github.com/cloudflare/circl v1.3.7 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/fatih/color v1.17.0 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/golang/protobuf v1.5.4 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/cli v1.1.6 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-checkpoint v0.5.0 // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.6.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect + github.com/hashicorp/hc-install v0.7.0 // indirect + github.com/hashicorp/hcl/v2 v2.21.0 // indirect + github.com/hashicorp/logutils v1.0.0 // indirect + github.com/hashicorp/terraform-exec v0.21.0 // indirect + github.com/hashicorp/terraform-json v0.22.1 // indirect + github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/yamux v0.1.1 // indirect + github.com/huandu/xstrings v1.3.3 // indirect + github.com/imdario/mergo v0.3.15 // indirect github.com/lestrrat-go/blackmagic v1.0.2 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect github.com/lestrrat-go/httprc v1.0.6 // indirect @@ -30,17 +61,36 @@ require ( github.com/lestrrat-go/option v1.0.1 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect + github.com/mitchellh/go-wordwrap v1.0.0 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/oklog/run v1.1.0 // indirect + github.com/posener/complete v1.2.3 // indirect github.com/segmentio/asm v1.2.0 // indirect + github.com/shopspring/decimal v1.3.1 // indirect + github.com/spf13/cast v1.5.0 // indirect + github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect + github.com/yuin/goldmark v1.7.1 // indirect + github.com/yuin/goldmark-meta v1.1.0 // indirect + github.com/zclconf/go-cty v1.14.4 // indirect + go.abhg.dev/goldmark/frontmatter v0.2.0 // indirect golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect + golang.org/x/mod v0.19.0 // indirect golang.org/x/net v0.27.0 // indirect + golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.23.0 // indirect golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.23.0 // indirect + google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240805194559-2c9e96a0b5d4 // indirect google.golang.org/grpc v1.65.0 // indirect google.golang.org/protobuf v1.34.2 // indirect + gopkg.in/yaml.v2 v2.3.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index a4a9b8b..8863b0a 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,36 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/Kunde21/markdownfmt/v3 v3.1.0 h1:KiZu9LKs+wFFBQKhrZJrFZwtLnCCWJahL+S+E/3VnM0= +github.com/Kunde21/markdownfmt/v3 v3.1.0/go.mod h1:tPXN1RTyOzJwhfHoon9wUr4HGYmWgVxSQN6VBJDkrVc= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= +github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= +github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg= +github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= +github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= +github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= +github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= +github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bmatcuk/doublestar/v4 v4.6.1 h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I= +github.com/bmatcuk/doublestar/v4 v4.6.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -7,23 +38,73 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnN github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/descope/go-sdk v1.6.5 h1:49S5Yw81r+2bueCmIxMalEjtjJubSrCxU0QXiyUn32g= github.com/descope/go-sdk v1.6.5/go.mod h1:0gMVEB7wV2jlcNN3ZkhkKtGx4l1vJWpBF7Kq8Haq8sU= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= +github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= +github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= +github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/hashicorp/cli v1.1.6 h1:CMOV+/LJfL1tXCOKrgAX0uRKnzjj/mpmqNXloRSy2K8= +github.com/hashicorp/cli v1.1.6/go.mod h1:MPon5QYlgjjo0BSoAiN0ESeT5fRzDjVRp+uioJ0piz4= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= +github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUKaCaGKZ/dR2roBXv0vKbSCnssIldfQdI= +github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs= github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/hc-install v0.7.0 h1:Uu9edVqjKQxxuD28mR5TikkKDd/p55S8vzPC1659aBk= +github.com/hashicorp/hc-install v0.7.0/go.mod h1:ELmmzZlGnEcqoUMKUuykHaPCIR1sYLYX+KSggWSKZuA= +github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14= +github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= +github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVWkd/RG0D2XQ= +github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= +github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= +github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= +github.com/hashicorp/terraform-plugin-docs v0.19.4 h1:G3Bgo7J22OMtegIgn8Cd/CaSeyEljqjH3G39w28JK4c= +github.com/hashicorp/terraform-plugin-docs v0.19.4/go.mod h1:4pLASsatTmRynVzsjEhbXZ6s7xBlUw/2Kt0zfrq8HxA= github.com/hashicorp/terraform-plugin-framework v1.10.0 h1:xXhICE2Fns1RYZxEQebwkB2+kXouLC932Li9qelozrc= github.com/hashicorp/terraform-plugin-framework v1.10.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= @@ -32,28 +113,44 @@ github.com/hashicorp/terraform-plugin-go v0.23.0 h1:AALVuU1gD1kPb48aPQUjug9Ir/12 github.com/hashicorp/terraform-plugin-go v0.23.0/go.mod h1:1E3Cr9h2vMlahWMbsSEcNrOCxovCZhOOIXjFHbjc/lQ= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 h1:kJiWGx2kiQVo97Y5IOGR4EMcZ8DtMswHhUuFibsCQQE= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0/go.mod h1:sl/UoabMc37HA6ICVMmGO+/0wofkVIRxf+BMb/dnoIg= +github.com/hashicorp/terraform-plugin-testing v1.9.0 h1:xOsQRqqlHKXpFq6etTxih3ubdK3HVDtfE1IY7Rpd37o= +github.com/hashicorp/terraform-plugin-testing v1.9.0/go.mod h1:fhhVx/8+XNJZTD5o3b4stfZ6+q7z9+lIWigIYdT6/44= github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4= +github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= +github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= +github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= +github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lestrrat-go/blackmagic v1.0.2 h1:Cg2gVSc9h7sz9NOByczrbUvLopQmXrfFx//N+AkAr5k= github.com/lestrrat-go/blackmagic v1.0.2/go.mod h1:UrEqBzIR2U6CnzVyUtfM6oZNMt/7O7Vohk2J0OGSAtU= github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= -github.com/lestrrat-go/httprc v1.0.5 h1:bsTfiH8xaKOJPrg1R+E3iE/AWZr/x0Phj9PBTG/OLUk= -github.com/lestrrat-go/httprc v1.0.5/go.mod h1:mwwz3JMTPBjHUkkDv/IGJ39aALInZLrhBp0X7KGUZlo= github.com/lestrrat-go/httprc v1.0.6 h1:qgmgIRhpvBqexMJjA/PmwSvhNk679oqD1RbovdCGW8k= github.com/lestrrat-go/httprc v1.0.6/go.mod h1:mwwz3JMTPBjHUkkDv/IGJ39aALInZLrhBp0X7KGUZlo= github.com/lestrrat-go/iter v1.0.2 h1:gMXo1q4c2pHmC3dn8LzRhJfP1ceCbgSiT9lUydIzltI= github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4= -github.com/lestrrat-go/jwx/v2 v2.0.21 h1:jAPKupy4uHgrHFEdjVjNkUgoBKtVDgrQPB/h55FHrR0= -github.com/lestrrat-go/jwx/v2 v2.0.21/go.mod h1:09mLW8zto6bWL9GbwnqAli+ArLf+5M33QLQPDggkUWM= github.com/lestrrat-go/jwx/v2 v2.1.1 h1:Y2ltVl8J6izLYFs54BVcpXLv5msSW4o8eXwnzZLI32E= github.com/lestrrat-go/jwx/v2 v2.1.1/go.mod h1:4LvZg7oxu6Q5VJwn7Mk/UwooNRnTHUpXBj2C4j3HNx0= github.com/lestrrat-go/option v1.0.1 h1:oAzP2fvZGQKWkvHa1/SAcFolBEca1oN+mQ7eooNBEYU= @@ -67,62 +164,145 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= +github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= +github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= +github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= +github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= +github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= +github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark v1.7.1 h1:3bajkSilaCbjdKVsKdZjZCLBNPL9pYzrCakKaf4U49U= +github.com/yuin/goldmark v1.7.1/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E= +github.com/yuin/goldmark-meta v1.1.0 h1:pWw+JLHGZe8Rk0EGsMVssiNb/AaPMHfSRszZeUeiOUc= +github.com/yuin/goldmark-meta v1.1.0/go.mod h1:U4spWENafuA7Zyg+Lj5RqK/MF+ovMYtBvXi1lBb2VP0= +github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= +github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= +go.abhg.dev/goldmark/frontmatter v0.2.0 h1:P8kPG0YkL12+aYk2yU3xHv4tcXzeVnN+gU0tJ5JnxRw= +go.abhg.dev/goldmark/frontmatter v0.2.0/go.mod h1:XqrEkZuM57djk7zrlRUB02x8I5J0px76YjkOzhB4YlU= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto/googleapis/rpc v0.0.0-20240805194559-2c9e96a0b5d4 h1:OsSGQeIIsyOEOimVxLEIL4rwGcnrjOydQaiA2bOnZUM= google.golang.org/genproto/googleapis/rpc v0.0.0-20240805194559-2c9e96a0b5d4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= -google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= -google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/entities/entities.go b/internal/entities/entities.go index 881722b..c698a6c 100644 --- a/internal/entities/entities.go +++ b/internal/entities/entities.go @@ -6,23 +6,23 @@ import ( "github.com/hashicorp/terraform-plugin-framework/diag" ) -// Interface representation for req.Plan and req.State in resource operations +// Interface representation for req.Plan and req.State in resource operations. type entitySource interface { Get(context.Context, any) diag.Diagnostics } -// Interface representation for resp.State in resource operations +// Interface representation for resp.State in resource operations. type entityTarget interface { Set(context.Context, any) diag.Diagnostics } -// Loads data from the source Terraform plan or state into the model object +// Loads data from the source Terraform plan or state into the model object. func load[T any](ctx context.Context, source entitySource, model *T, diagnostics *diag.Diagnostics) { diags := source.Get(ctx, model) diagnostics.Append(diags...) } -// Saves data from the model object to the target Terraform state +// Saves data from the model object to the target Terraform state. func save[T any](ctx context.Context, target entityTarget, model *T, diagnostics *diag.Diagnostics) { diags := target.Set(ctx, model) diagnostics.Append(diags...) diff --git a/main.go b/main.go index 85ddbfd..b44dc91 100644 --- a/main.go +++ b/main.go @@ -9,8 +9,12 @@ import ( "github.com/hashicorp/terraform-plugin-framework/providerserver" ) -var version string = "dev" -var debug bool +//go:generate go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs generate -provider-name descope + +var ( + version = "dev" + debug bool +) func main() { flag.BoolVar(&debug, "debug", false, "set to true to run the provider with support for debuggers") @@ -18,7 +22,7 @@ func main() { ctx := context.Background() opts := providerserver.ServeOpts{ - Address: "descope/descope", + Address: "registry.terraform.io/descope/descope", Debug: debug, } diff --git a/provider/provider.go b/provider/provider.go index b98c02c..5c3a259 100644 --- a/provider/provider.go +++ b/provider/provider.go @@ -5,7 +5,6 @@ import ( "os" "github.com/descope/terraform-provider-descope/internal/infra" - "github.com/descope/terraform-provider-descope/internal/resources" "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/path" "github.com/hashicorp/terraform-plugin-framework/provider" @@ -119,6 +118,6 @@ func (p *descopeProvider) DataSources(_ context.Context) []func() datasource.Dat func (p *descopeProvider) Resources(_ context.Context) []func() resource.Resource { return []func() resource.Resource{ - resources.NewProjectResource, + NewProjectResource, } } diff --git a/provider/provider_test.go b/provider/provider_test.go new file mode 100644 index 0000000..d553691 --- /dev/null +++ b/provider/provider_test.go @@ -0,0 +1,22 @@ +package provider + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-framework/providerserver" + "github.com/hashicorp/terraform-plugin-go/tfprotov6" +) + +// testAccProtoV6ProviderFactories are used to instantiate a provider during +// acceptance testing. The factory function will be invoked for every Terraform +// CLI command executed to create a provider server to which the CLI can +// reattach. +var testAccProtoV6ProviderFactories = map[string]func() (tfprotov6.ProviderServer, error){ + "descope": providerserver.NewProtocol6WithError(New("test")()), +} + +func testAccPreCheck(t *testing.T) { + // You can add code here to run prior to any test case execution, for example assertions + // about the appropriate environment variables being set are common to see in a pre-check + // function. +} diff --git a/internal/resources/project.go b/provider/resource_project.go similarity index 99% rename from internal/resources/project.go rename to provider/resource_project.go index ca7b2d5..604dc91 100644 --- a/internal/resources/project.go +++ b/provider/resource_project.go @@ -1,4 +1,4 @@ -package resources +package provider import ( "context" diff --git a/provider/resource_project_test.go b/provider/resource_project_test.go new file mode 100644 index 0000000..6c4a631 --- /dev/null +++ b/provider/resource_project_test.go @@ -0,0 +1,52 @@ +package provider + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" +) + +func TestAccProjectResource(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + ProtoV6ProviderFactories: testAccProtoV6ProviderFactories, + Steps: []resource.TestStep{ + // Create and Read testing + { + Config: testAccProjectResourceConfig("one"), // need a dynamic value for parallel testing + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttrSet("descope_project.test", "id"), + resource.TestCheckResourceAttr("descope_project.test", "name", "one"), + ), + }, + // ImportState testing + { + ResourceName: "descope_project.test", + ImportState: true, + ImportStateVerify: true, + // This is not normally necessary, but is here because this + // example code does not have an actual upstream service. + // Once the Read method is able to refresh information from + // the upstream service, this can be removed. + ImportStateVerifyIgnore: []string{"name", "one"}, + }, + // Update and Read testing + { + Config: testAccProjectResourceConfig("two"), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("descope_project.test", "name", "two"), + ), + }, + // Delete testing automatically occurs in TestCase + }, + }) +} + +func testAccProjectResourceConfig(name string) string { + return fmt.Sprintf(` +resource "descope_project" "test" { + name = %[1]q +} +`, name) +} diff --git a/tools/tools.go b/tools/tools.go new file mode 100644 index 0000000..2c4f8fb --- /dev/null +++ b/tools/tools.go @@ -0,0 +1,8 @@ +//go:build tools + +package tools + +import ( + // Documentation generation + _ "github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs" +)