diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5dc2cb0..edcab30 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,20 +12,20 @@ jobs: goreleaser: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: fetch-depth: 0 - - uses: actions/setup-go@v5 + - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 with: go-version-file: go.mod - name: Import GPG key - uses: crazy-max/ghaction-import-gpg@v6 + uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6 id: import_gpg with: gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} passphrase: ${{ secrets.PASSPHRASE }} - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v6 + uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6 with: args: release --clean env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a44bdab..a313eda 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,12 +6,15 @@ on: push: branches: [main] +permissions: + contents: read + jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 with: go-version-file: go.mod - run: go build -v ./... @@ -19,19 +22,19 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 with: go-version-file: go.mod - - uses: golangci/golangci-lint-action@v7 + - uses: golangci/golangci-lint-action@9fae48acfc02a90574d7c304a1758ef9895495fa # v7 with: version: v2.11.4 test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 with: go-version-file: go.mod - run: go test -v -cover -timeout=120s -parallel=10 ./... @@ -39,11 +42,11 @@ jobs: generate: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 with: go-version-file: go.mod - - run: go install github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs@latest + - run: go install github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs@v0.24.0 - run: tfplugindocs generate --provider-dir . --provider-name cloudzero - name: Verify no generated changes run: | diff --git a/.gitignore b/.gitignore index 551902e..a459e21 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,6 @@ dist/ *.tfstate *.tfstate.backup *.log +.env test/e2e-aws-account/.terraform* test/e2e-aws-account/terraform.tfstate* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..acbf62e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,43 @@ +# Contributing to terraform-provider-cloudzero + +Thank you for your interest in contributing! + +## Inbound Licensing + +By submitting a contribution to this project, you agree that your contribution +is licensed under the Apache License, Version 2.0, the same license that covers +this project. You retain copyright to your contributions. + +## How to Contribute + +1. Fork the repository and create a branch from `main`. +2. Make your changes, including tests for any new functionality. +3. Ensure all tests pass: `make test` +4. Ensure lint passes: `make lint` +5. Open a pull request against `main` with a clear description of the change. + +## Development Setup + +**Requirements:** Go >= 1.24, Terraform >= 1.3 + +```bash +# Build +make build + +# Run unit tests +make test + +# Run acceptance tests (requires a CloudZero API key) +export CLOUDZERO_API_KEY="your-api-key" +make testacc +``` + +## Reporting Security Issues + +Please do **not** open a public GitHub issue for security vulnerabilities. +See [SECURITY.md](./SECURITY.md) for responsible disclosure instructions. + +## Code of Conduct + +Be respectful and constructive. We follow the +[Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). diff --git a/LICENSE b/LICENSE index 1db91ac..682a6c3 100644 --- a/LICENSE +++ b/LICENSE @@ -1,29 +1,194 @@ -BSD 3-Clause License - -Copyright (c) 2016-present, CloudZero, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship made available under + the License, as indicated by a copyright notice that is included in + or attached to the work (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean, as submitted to the Licensor for inclusion + in the Work by the copyright owner or by an individual or Legal Entity + authorized to submit on behalf of the copyright owner. For the purposes + of this definition, "submitted" means any form of electronic, verbal, + or written communication sent to the Licensor or its representatives, + including but not limited to communication on electronic mailing lists, + source code control systems, and issue tracking systems that are managed + by, or on behalf of, the Licensor for the purpose of discussing and + improving the Work, but excluding communication that is conspicuously + marked or otherwise designated in writing by the copyright owner as + "Not a Contribution." + + "Contributor" shall mean Licensor and any Legal Entity on behalf of + whom a Contribution has been received by the Licensor and incorporated + within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by the combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a cross-claim + or counterclaim in a lawsuit) alleging that the Work or any + Contribution embodied within the Work constitutes direct or contributory + patent infringement, then any patent licenses granted to You under + this License for that Work shall terminate as of the date such + litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative + Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, You must include a readable copy of the + attribution notices contained within such NOTICE file, in + at least one of the following places: within a NOTICE text + file distributed as part of the Derivative Works; within + the Source form or documentation, if provided along with the + Derivative Works; or, within a display generated by the + Derivative Works, if and wherever such third-party notices + normally appear. The contents of the NOTICE file are for + informational purposes only and do not modify the License. + You may add Your own attribution notices within Derivative + Works that You distribute, alongside or as an addendum to + the NOTICE text from the Work, provided that such additional + attribution notices cannot be construed as modifying the License. + + You may add Your own license statement for Your modifications and + may provide additional grant of rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the + Contribution, either on their own terms or on the terms of this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or reproducing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or exemplary damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or all other + commercial damages or losses), even if such Contributor has been + advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may offer such + obligations only on your own behalf and on your sole responsibility, + not on behalf of any other Contributor, and only if You agree to + indemnify, defend, and hold each Contributor harmless for any + liability incurred by, or claims asserted against, such Contributor + by reason of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format in question. It may also be + prepended to each source file to provide the most convenient + search for applicable law. You may also add a "work" name and + description if desired. + + Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..97323c9 --- /dev/null +++ b/NOTICE @@ -0,0 +1,5 @@ +Terraform Provider for CloudZero +Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. + +This product is licensed under the Apache License, Version 2.0. +You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 diff --git a/README.md b/README.md index d6d489c..9e027f1 100644 --- a/README.md +++ b/README.md @@ -162,4 +162,12 @@ Then `go install .` and run `terraform plan` against your configs (skip `terrafo ## License -BSD 3-Clause License. See [LICENSE](LICENSE). +This project is licensed under the Apache License, Version 2.0 — see the +[LICENSE](./LICENSE) file for details. + +## Trademarks + +"CloudZero" and the CloudZero logo are trademarks of CloudZero, Inc. Use of +these trademarks is limited to identification and attribution as required by +the Apache License. You may not use CloudZero trademarks in a way that +suggests endorsement or affiliation without written permission. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..c6d93d6 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,26 @@ +# Security Policy + +## Reporting a Vulnerability + +Please **do not** report security vulnerabilities through public GitHub issues. + +Instead, email **security@cloudzero.com** with: + +- A description of the vulnerability and its potential impact +- Steps to reproduce or a proof-of-concept (if available) +- Any suggested mitigations + +We will acknowledge your report within **2 business days** and provide a +timeline for a fix. We ask that you give us reasonable time to address the +issue before any public disclosure. + +## Supported Versions + +We provide security fixes for the latest released version of this provider. +We recommend always using the latest version. + +## Scope + +This policy covers the `terraform-provider-cloudzero` source code and +published binaries. It does not cover the CloudZero SaaS platform itself +(report those issues through your CloudZero account support channel). diff --git a/internal/client/aws_account.go b/internal/client/aws_account.go index 4a5c799..1a76f90 100644 --- a/internal/client/aws_account.go +++ b/internal/client/aws_account.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package client import ( diff --git a/internal/client/budgets.go b/internal/client/budgets.go index 8169240..e1e923e 100644 --- a/internal/client/budgets.go +++ b/internal/client/budgets.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package client import ( diff --git a/internal/client/client.go b/internal/client/client.go index 44c1090..a343010 100644 --- a/internal/client/client.go +++ b/internal/client/client.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package client import ( diff --git a/internal/client/errors.go b/internal/client/errors.go index e471e73..5ce6231 100644 --- a/internal/client/errors.go +++ b/internal/client/errors.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package client // NotFoundError is returned when the API returns 404. diff --git a/internal/client/insights.go b/internal/client/insights.go index ffdc85d..21b4330 100644 --- a/internal/client/insights.go +++ b/internal/client/insights.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package client import ( diff --git a/internal/client/pagination.go b/internal/client/pagination.go index e8a7076..40a2706 100644 --- a/internal/client/pagination.go +++ b/internal/client/pagination.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package client import "context" diff --git a/internal/client/views.go b/internal/client/views.go index 1dd8a8f..0a21839 100644 --- a/internal/client/views.go +++ b/internal/client/views.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package client import ( diff --git a/internal/datasources/budgets/data_source.go b/internal/datasources/budgets/data_source.go index 0dcf62b..b1ac515 100644 --- a/internal/datasources/budgets/data_source.go +++ b/internal/datasources/budgets/data_source.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package budgets import ( diff --git a/internal/datasources/views/data_source.go b/internal/datasources/views/data_source.go index 9acfca8..2ed3920 100644 --- a/internal/datasources/views/data_source.go +++ b/internal/datasources/views/data_source.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package views import ( diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 7ba6dfd..0e80921 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package provider import ( @@ -63,6 +66,7 @@ func (p *CloudZeroProvider) Schema(_ context.Context, _ provider.SchemaRequest, }, "test_key": schema.StringAttribute{ Optional: true, + Sensitive: true, Description: "If set, all API mutations are scoped to this test namespace " + "and expire after 1 hour. May also be set via the CLOUDZERO_TEST_KEY " + "environment variable. Used for acceptance testing.", diff --git a/internal/resources/aws_account/resource.go b/internal/resources/aws_account/resource.go index dfe0d10..c7d5f56 100644 --- a/internal/resources/aws_account/resource.go +++ b/internal/resources/aws_account/resource.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package aws_account import ( diff --git a/internal/resources/budget/helpers.go b/internal/resources/budget/helpers.go index 8dc6910..2dad203 100644 --- a/internal/resources/budget/helpers.go +++ b/internal/resources/budget/helpers.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package budget import ( diff --git a/internal/resources/budget/resource.go b/internal/resources/budget/resource.go index c266fd3..69a6347 100644 --- a/internal/resources/budget/resource.go +++ b/internal/resources/budget/resource.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package budget import ( diff --git a/internal/resources/budget/resource_test.go b/internal/resources/budget/resource_test.go index e6ecc2f..b77b981 100644 --- a/internal/resources/budget/resource_test.go +++ b/internal/resources/budget/resource_test.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package budget_test import ( diff --git a/internal/resources/insight/resource.go b/internal/resources/insight/resource.go index e7c28f9..0e2ef63 100644 --- a/internal/resources/insight/resource.go +++ b/internal/resources/insight/resource.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package insight import ( diff --git a/internal/resources/insight/resource_test.go b/internal/resources/insight/resource_test.go index 7080a58..c04a5dd 100644 --- a/internal/resources/insight/resource_test.go +++ b/internal/resources/insight/resource_test.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package insight_test import ( diff --git a/internal/resources/insight/validators.go b/internal/resources/insight/validators.go index 506b3a3..93aeb54 100644 --- a/internal/resources/insight/validators.go +++ b/internal/resources/insight/validators.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package insight import ( diff --git a/internal/resources/view/helpers.go b/internal/resources/view/helpers.go index 6137b8d..1ebed99 100644 --- a/internal/resources/view/helpers.go +++ b/internal/resources/view/helpers.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package view import ( diff --git a/internal/resources/view/resource.go b/internal/resources/view/resource.go index db6441a..ca87e78 100644 --- a/internal/resources/view/resource.go +++ b/internal/resources/view/resource.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package view import ( diff --git a/internal/resources/view/resource_test.go b/internal/resources/view/resource_test.go index f3521db..e58df21 100644 --- a/internal/resources/view/resource_test.go +++ b/internal/resources/view/resource_test.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package view_test import ( diff --git a/main.go b/main.go index 7c21af7..3c7e173 100644 --- a/main.go +++ b/main.go @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright (c) CloudZero, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + package main import (