Initial Version (#1)

This commit is contained in:
M. Essam
2025-05-09 09:19:08 +02:00
committed by GitHub
parent 0b1d8762ad
commit c6be9227a9
75 changed files with 9416 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
# See GitHub's documentation for more information on this file:
# https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates
version: 2
updates:
# Maintain dependencies for Go modules
- package-ecosystem: "gomod"
directory: "/"
schedule:
# Check for updates to Go modules every weekday
interval: "daily"
- package-ecosystem: "gomod"
directory: "/tools"
schedule:
interval: "daily"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
+41
View File
@@ -0,0 +1,41 @@
# Terraform Provider release workflow.
name: Release
# This GitHub action creates a release when a tag that matches the pattern
# "v*" (e.g. v0.1.0) is created.
on:
push:
tags:
- 'v*'
# Releases need permissions to read and write the repository contents.
# GitHub considers creating releases and uploading assets as writing contents.
permissions:
contents: write
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
# Allow goreleaser to access older tag information.
fetch-depth: 0
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
with:
go-version-file: 'go.mod'
cache: true
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6.3.0
id: import_gpg
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@9c156ee8a17a598857849441385a2041ef570552 # v6.3.0
with:
args: release --clean
env:
# GitHub sets the GITHUB_TOKEN secret automatically.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
+85
View File
@@ -0,0 +1,85 @@
# 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'
push:
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
with:
go-version-file: 'go.mod'
cache: true
- run: go mod download
- run: go build -v .
- name: Run linters
uses: golangci/golangci-lint-action@1481404843c368bc19ca9406f87d6e0fc97bdcfd # v7.0.0
with:
version: latest
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
with:
go-version-file: 'go.mod'
cache: true
# We need the latest version of Terraform for our documentation generation to use
- uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
with:
terraform_wrapper: false
- run: make generate
- name: git diff
run: |
git diff --compact-summary --exit-code || \
(echo; echo "Unexpected difference in directories after code generation. Run 'make 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:
# list whatever Terraform versions here you would like to support
terraform:
- '1.0.*'
- '1.1.*'
- '1.2.*'
- '1.3.*'
- '1.4.*'
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
with:
go-version-file: 'go.mod'
cache: true
- uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
with:
terraform_version: ${{ matrix.terraform }}
terraform_wrapper: false
- run: go mod download
- env:
TF_ACC: "1"
run: go test -v -cover ./internal/provider/
timeout-minutes: 10
+35
View File
@@ -0,0 +1,35 @@
*.dll
*.exe
.DS_Store
example.tf
terraform.tfplan
terraform.tfstate
bin/
dist/
modules-dev/
/pkg/
website/.vagrant
website/.bundle
website/build
website/node_modules
.vagrant/
*.backup
./*.tfstate
.terraform/
*.log
*.bak
*~
.*.swp
.idea
*.iml
*.test
*.iml
website/vendor
# Test exclusions
!command/test-fixtures/**/*.tfstate
!command/test-fixtures/**/.terraform/
# Keep windows files with windows line endings
*.winfile eol=crlf
+44
View File
@@ -0,0 +1,44 @@
# Copyright (c) HashiCorp, Inc.
version: "2"
linters:
default: none
enable:
- copyloopvar
- durationcheck
- errcheck
- forcetypeassert
- godot
- ineffassign
- makezero
- misspell
- nilerr
- predeclared
- staticcheck
- unconvert
- unparam
- unused
- usetesting
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
issues:
max-issues-per-linter: 0
max-same-issues: 0
formatters:
enable:
- gofmt
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
+63
View File
@@ -0,0 +1,63 @@
# Copyright (c) HashiCorp, Inc.
# 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
builds:
- env:
# goreleaser does not work with CGO, it could also complicate
# usage by users in CI/CD systems like HCP Terraform where
# they are unable to install libraries.
- CGO_ENABLED=0
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
args:
# if you are using this in a GitHub action or some other automated pipeline, you
# need to pass the batch flag to indicate its not interactive.
- "--batch"
- "--local-user"
- "{{ .Env.GPG_FINGERPRINT }}" # set this environment variable for your signing key
- "--output"
- "${signature}"
- "--detach-sign"
- "${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
+24
View File
@@ -0,0 +1,24 @@
default: fmt lint install generate
build:
go build -v ./...
install: build
go install -v ./...
lint:
golangci-lint run
generate:
cd tools; go generate ./...
fmt:
gofmt -s -w -e .
test:
go test -v -cover -timeout=120s -parallel=10 ./...
testacc:
TF_ACC=1 go test -v -cover -timeout 120m ./...
.PHONY: fmt lint test testacc build install generate
+53
View File
@@ -0,0 +1,53 @@
# NetBird Terraform Provider
A Terraform Provider for managing your [NetBird](https://netbird.io) Account and its resources.
## Requirements
- [Terraform](https://developer.hashicorp.com/terraform/downloads) >= 1.0
- [Go](https://golang.org/doc/install) >= 1.23
- [NetBird Account](https://docs.netbird.io/)
## Building The Provider
1. Clone the repository
1. Enter the repository directory
1. Build the provider using the Go `install` command:
```shell
go install
```
## Adding Dependencies
This provider uses [Go modules](https://github.com/golang/go/wiki/Modules).
Please see the Go documentation for the most up to date information about using Go modules.
To add a new dependency `github.com/author/dependency` to your Terraform provider:
```shell
go get github.com/author/dependency
go mod tidy
```
Then commit the changes to `go.mod` and `go.sum`.
## Using the provider
Check usage in [docs](./docs/index.md).
## Developing the Provider
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above).
To compile the provider, run `go install`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
To generate or update documentation, run `make generate`.
In order to run the full suite of Acceptance tests, run `make testacc`.
*Note:* Acceptance tests create real resources, and often cost money to run.
```shell
make testacc
```
+33
View File
@@ -0,0 +1,33 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_account Data Source - netbird"
subcategory: ""
description: |-
Read Account-wide Settings
---
# netbird_account (Data Source)
Read Account-wide Settings
<!-- schema generated by tfplugindocs -->
## Schema
### Read-Only
- `groups_propagation_enabled` (Boolean) Allows propagate the new user auto groups to peers that belongs to the user
- `id` (String) The unique identifier of an account
- `jwt_allow_groups` (List of String) List of groups to which users are allowed access
- `jwt_groups_claim_name` (String) Name of the claim from which we extract groups names to add it to account groups.
- `jwt_groups_enabled` (Boolean) Allows extract groups from JWT claim and add it to account groups.
- `network_traffic_logs_enabled` (Boolean) Enables or disables network traffic logging. If enabled, all network traffic events from peers will be stored.
- `network_traffic_packet_counter_enabled` (Boolean) Enables or disables network traffic packet counter. If enabled, network packets and their size will be counted and reported. (This can have an slight impact on performance)
- `peer_approval_enabled` (Boolean) (Cloud only) Enables or disables peer approval globally. If enabled, all peers added will be in pending state until approved by an admin.
- `peer_inactivity_expiration` (Number) Period of time of inactivity after which peer session expires (seconds).
- `peer_inactivity_expiration_enabled` (Boolean) Enables or disables peer inactivity expiration globally. After peer's session has expired the user has to log in (authenticate). Applies only to peers that were added by a user (interactive SSO login).
- `peer_login_expiration` (Number) Period of time after which peer login expires (seconds).
- `peer_login_expiration_enabled` (Boolean) Enables or disables peer login expiration globally. After peer's login has expired the user has to log in (authenticate). Applies only to peers that were added by a user (interactive SSO login).
- `regular_users_view_blocked` (Boolean) Allows blocking regular users from viewing parts of the system.
- `routing_peer_dns_resolution_enabled` (Boolean) Enables or disables DNS resolution on the routing peers
+20
View File
@@ -0,0 +1,20 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_dns_settings Data Source - netbird"
subcategory: ""
description: |-
Read DNS Management Settings
---
# netbird_dns_settings (Data Source)
Read DNS Management Settings
<!-- schema generated by tfplugindocs -->
## Schema
### Read-Only
- `extra_dns_labels` (List of String) Groups whose DNS management is disabled
+29
View File
@@ -0,0 +1,29 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_group Data Source - netbird"
subcategory: ""
description: |-
Read Group metadata and associated resources and peers, see NetBird Docs https://docs.netbird.io/how-to/manage-network-access#groups for more information.
---
# netbird_group (Data Source)
Read Group metadata and associated resources and peers, see [NetBird Docs](https://docs.netbird.io/how-to/manage-network-access#groups) for more information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) Group ID
### Read-Only
- `issued` (String) Group issued by
- `name` (String) Group name identifier
- `peers` (List of String) List of peers ids
- `peers_count` (Number) Group peers count
- `resources` (List of String) List of network resource ids
- `resources_count` (Number) Group resources count
+40
View File
@@ -0,0 +1,40 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_nameserver_group Data Source - netbird"
subcategory: ""
description: |-
Read Nameserver Group settings
---
# netbird_nameserver_group (Data Source)
Read Nameserver Group settings
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) NameserverGroup ID
### Read-Only
- `description` (String) Description of the nameserver group
- `domains` (List of String) Match domain list. It should be empty only if primary is true.
- `enabled` (Boolean) Nameserver group status
- `groups` (List of String) Distribution group IDs that defines group of peers that will use this nameserver group
- `name` (String) Name of nameserver group
- `nameservers` (Attributes List) Nameserver list (see [below for nested schema](#nestedatt--nameservers))
- `primary` (Boolean) Defines if a nameserver group is primary that resolves all domains. It should be true only if domains list is empty.
- `search_domains_enabled` (Boolean) Search domain status for match domains. It should be true only if domains list is not empty.
<a id="nestedatt--nameservers"></a>
### Nested Schema for `nameservers`
Read-Only:
- `ip` (String) Nameserver IP
- `ns_type` (String) Nameserver Type
- `port` (Number) Nameserver Port
+29
View File
@@ -0,0 +1,29 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_network Data Source - netbird"
subcategory: ""
description: |-
Read Network Settings and Metadata, see NetBird Docs https://docs.netbird.io/how-to/networks for more information.
---
# netbird_network (Data Source)
Read Network Settings and Metadata, see [NetBird Docs](https://docs.netbird.io/how-to/networks) for more information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) Network ID
### Read-Only
- `description` (String) Network Description
- `name` (String) Network Name
- `policies` (List of String) Policy IDs associated with resources inside this Network
- `resources` (List of String) Network Resource IDs
- `routers` (List of String) Network Router IDs
- `routing_peers_count` (Number) Total number of peers inside all Network Routers
+29
View File
@@ -0,0 +1,29 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_network_resource Data Source - netbird"
subcategory: ""
description: |-
Read Network Resource settings and metadata, see NetBird Docs https://docs.netbird.io/how-to/networks#resources for more information.
---
# netbird_network_resource (Data Source)
Read Network Resource settings and metadata, see [NetBird Docs](https://docs.netbird.io/how-to/networks#resources) for more information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) The unique identifier of a resource
- `network_id` (String) The unique identifier of a network
### Read-Only
- `address` (String) Network resource address (either a direct host like 1.1.1.1 or 1.1.1.1/32, or a subnet like 192.168.178.0/24, or domains like example.com and *.example.com)
- `description` (String) NetworkResource Description
- `enabled` (Boolean) NetworkResource status
- `groups` (List of String) Group IDs containing the resource
- `name` (String) NetworkResource Name
+29
View File
@@ -0,0 +1,29 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_network_router Data Source - netbird"
subcategory: ""
description: |-
Read Network Router settings and metadata, see NetBird Docs https://docs.netbird.io/how-to/networks#routing-peers for more information.
---
# netbird_network_router (Data Source)
Read Network Router settings and metadata, see [NetBird Docs](https://docs.netbird.io/how-to/networks#routing-peers) for more information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) The unique identifier of a router
- `network_id` (String) The unique identifier of a network
### Read-Only
- `enabled` (Boolean) Network router status
- `masquerade` (Boolean) Indicate if peer should masquerade traffic to this route's prefix
- `metric` (Number) Route metric number. Lowest number has higher priority
- `peer` (String) Peer Identifier associated with route. This property can not be set together with peer_groups
- `peer_groups` (List of String) Peers Group Identifier associated with route. This property can not be set together with peer
+50
View File
@@ -0,0 +1,50 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_peer Data Source - netbird"
subcategory: ""
description: |-
Read Peer information.
---
# netbird_peer (Data Source)
Read Peer information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) Peer ID
### Optional
- `approval_required` (Boolean) Indicates whether peer needs approval
- `groups` (List of String) Peer groups
- `inactivity_expiration_enabled` (Boolean) Enable inactivity expiration for peer
- `login_expiration_enabled` (Boolean) Indicates whether login expiration is enabled for peer
- `name` (String) Peer Name
- `ssh_enabled` (Boolean) Enable SSH to Peer
### Read-Only
- `city_name` (String) Peer city name
- `connected` (Boolean) Peer Connection Status
- `connection_ip` (String) Peer Public IP
- `country_code` (String) Peer country code
- `dns_label` (String) Peer DNS Label
- `extra_dns_labels` (List of String) Peer extra DNS Labels
- `geoname_id` (Number) Peer Location ID
- `hostname` (String) Peer's HOSTNAME
- `ip` (String) Peer IP
- `kernel_version` (String) Peer Kernel Version
- `last_login` (String) Time of peer last login
- `last_seen` (String) Peer Last Seen timedate
- `login_expired` (Boolean) Indicates whether peer login is expired
- `os` (String) Peer OS
- `serial_number` (String) Peer device serial number
- `ui_version` (String) Peer UI Version
- `user_id` (String) User ID of peer
- `version` (String) Peer Version
+61
View File
@@ -0,0 +1,61 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_policy Data Source - netbird"
subcategory: ""
description: |-
Read Policy Settings, See NetBird Docs https://docs.netbird.io/how-to/manage-network-access#policies for more information.
---
# netbird_policy (Data Source)
Read Policy Settings, See [NetBird Docs](https://docs.netbird.io/how-to/manage-network-access#policies) for more information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) Policy ID
### Read-Only
- `action` (String) Policy Rule Action (accept|drop)
- `bidirectional` (Boolean) Policy Rule Bidirectional
- `description` (String) Policy description
- `destination_resource` (Object) Policy Rule Destination Resource (mutually exclusive with destinations) (see [below for nested schema](#nestedatt--destination_resource))
- `destinations` (List of String) Policy Rule Destination Groups (mutually exclusive with destination_resource)
- `enabled` (Boolean) Policy Rule Enabled
- `name` (String) Policy Name
- `port_ranges` (Attributes List) Policy Rule Port Ranges (mutually exclusive with ports) (see [below for nested schema](#nestedatt--port_ranges))
- `ports` (List of String) Policy Rule Ports (mutually exclusive with port_ranges)
- `protocol` (String) Policy Rule Protocol (tcp|udp|icmp|all)
- `source_resource` (Object) Policy Rule Source Resource (mutually exclusive with sources) (see [below for nested schema](#nestedatt--source_resource))
- `sources` (List of String) Policy Rule Source Groups (mutually exclusive with source_resource)
<a id="nestedatt--destination_resource"></a>
### Nested Schema for `destination_resource`
Read-Only:
- `id` (String)
- `type` (String)
<a id="nestedatt--port_ranges"></a>
### Nested Schema for `port_ranges`
Read-Only:
- `end` (Number)
- `start` (Number)
<a id="nestedatt--source_resource"></a>
### Nested Schema for `source_resource`
Read-Only:
- `id` (String)
- `type` (String)
+86
View File
@@ -0,0 +1,86 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_posture_check Data Source - netbird"
subcategory: ""
description: |-
Read Posture Check settings, see NetBird Docs https://docs.netbird.io/how-to/manage-posture-checks for more information.
---
# netbird_posture_check (Data Source)
Read Posture Check settings, see [NetBird Docs](https://docs.netbird.io/how-to/manage-posture-checks) for more information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) PostureCheck ID
### Read-Only
- `description` (String) PostureCheck description
- `geo_location_check` (Attributes) (see [below for nested schema](#nestedatt--geo_location_check))
- `name` (String) PostureCheck Name
- `netbird_version_check` (Attributes) (see [below for nested schema](#nestedatt--netbird_version_check))
- `os_version_check` (Attributes) (see [below for nested schema](#nestedatt--os_version_check))
- `peer_network_range_check` (Attributes) (see [below for nested schema](#nestedatt--peer_network_range_check))
- `process_check` (Attributes List) (see [below for nested schema](#nestedatt--process_check))
<a id="nestedatt--geo_location_check"></a>
### Nested Schema for `geo_location_check`
Read-Only:
- `action` (String)
- `locations` (Attributes List) (see [below for nested schema](#nestedatt--geo_location_check--locations))
<a id="nestedatt--geo_location_check--locations"></a>
### Nested Schema for `geo_location_check.locations`
Read-Only:
- `city_name` (String)
- `country_code` (String)
<a id="nestedatt--netbird_version_check"></a>
### Nested Schema for `netbird_version_check`
Read-Only:
- `min_version` (String)
<a id="nestedatt--os_version_check"></a>
### Nested Schema for `os_version_check`
Read-Only:
- `android_min_version` (String)
- `darwin_min_version` (String)
- `ios_min_version` (String)
- `linux_min_kernel_version` (String)
- `windows_min_kernel_version` (String)
<a id="nestedatt--peer_network_range_check"></a>
### Nested Schema for `peer_network_range_check`
Read-Only:
- `action` (String)
- `ranges` (List of String)
<a id="nestedatt--process_check"></a>
### Nested Schema for `process_check`
Read-Only:
- `linux_path` (String)
- `mac_path` (String)
- `windows_path` (String)
+37
View File
@@ -0,0 +1,37 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_setup_key Data Source - netbird"
subcategory: ""
description: |-
Read SetupKey settings and metadata, see NetBird Docs https://docs.netbird.io/how-to/register-machines-using-setup-keys for more information.
---
# netbird_setup_key (Data Source)
Read SetupKey settings and metadata, see [NetBird Docs](https://docs.netbird.io/how-to/register-machines-using-setup-keys) for more information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) SetupKey ID
### Read-Only
- `allow_extra_dns_labels` (Boolean)
- `auto_groups` (List of String)
- `ephemeral` (Boolean)
- `expires` (String) SetupKey Expiration Date
- `key` (String) Plaintext setup key
- `last_used` (String) Last usage time
- `name` (String) SetupKey Name
- `revoked` (Boolean)
- `state` (String)
- `type` (String)
- `updated_at` (String) Creation timestamp
- `usage_limit` (Number)
- `used_times` (Number)
- `valid` (Boolean)
+28
View File
@@ -0,0 +1,28 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "netbird_token Data Source - netbird"
subcategory: ""
description: |-
Read Personal Access Token metadata, see NetBird Docs https://docs.netbird.io/how-to/access-netbird-public-api#creating-an-access-token for more information.
---
# netbird_token (Data Source)
Read Personal Access Token metadata, see [NetBird Docs](https://docs.netbird.io/how-to/access-netbird-public-api#creating-an-access-token) for more information.
<!-- schema generated by tfplugindocs -->
## Schema
### Required
- `id` (String) Token ID
- `user_id` (String) User ID
### Read-Only
- `created_at` (String) Creation timestamp
- `expiration_date` (String) Token Expiration Date
- `last_used` (String) Last usage time
- `name` (String) Token Name

Some files were not shown because too many files have changed in this diff Show More