Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions docs/data-sources/image.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,18 @@ The Linode Image resource exports the following attributes:

* `is_public` - True if the Image is public.

* `is_shared` - True if the Image is shared.

* `image_sharing` - Details about image sharing, including who the image is shared with and by.
* `shared_with` - Details about who the image is shared with.
* `sharegroup_count` - The number of sharegroups the private image is present in.
* `sharegroup_list_url` - The GET api url to view the sharegroups in which the image is shared.
* `shared_by` - Details about who the image is shared by.
* `sharegroup_id` - The sharegroup_id from the im_ImageShare row.
* `sharegroup_uuid` - The sharegroup_uuid from the im_ImageShare row.
* `sharegroup_label` - The label from the associated im_ImageShareGroup row.
* `source_image_id` - The image id of the base image (will only be shown to producers, will be null for consumers).

* `size` - The minimum size this Image needs to deploy. Size is in MB. example: 2500

* `status` - The current status of this image. (`creating`, `pending_upload`, `available`)
Expand Down
12 changes: 12 additions & 0 deletions docs/data-sources/images.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,18 @@ Each Linode image will be stored in the `images` attribute and will export the f

* `is_public` - True if the Image is public.

* `is_shared` - True if the Image is shared.

* `image_sharing` - Details about image sharing, including who the image is shared with and by.
* `shared_with` - Details about who the image is shared with.
* `sharegroup_count` - The number of sharegroups the private image is present in.
* `sharegroup_list_url` - The GET api url to view the sharegroups in which the image is shared.
* `shared_by` - Details about who the image is shared by.
* `sharegroup_id` - The sharegroup_id from the im_ImageShare row.
* `sharegroup_uuid` - The sharegroup_uuid from the im_ImageShare row.
* `sharegroup_label` - The label from the associated im_ImageShareGroup row.
* `source_image_id` - The image id of the base image (will only be shown to producers, will be null for consumers).

* `size` - The minimum size this Image needs to deploy. Size is in MB. example: 2500

* `status` - The current status of this image. (`creating`, `pending_upload`, `available`)
Expand Down
47 changes: 47 additions & 0 deletions docs/data-sources/producer_image_share_group.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
page_title: "Linode: linode_producer_image_share_group"
description: |-
Provides details about an Image Share Group created by a producer.
---

# Data Source: linode\producer\_image\_share\_group

`linode_producer_image_share_group` provides details about an Image Share Group.
For more information, see the [Linode APIv4 docs](TODO).


## Example Usage

The following example shows how the datasource might be used to obtain additional information about an Image Share Group.

```hcl
data "linode_producer_image_share_group" "sg" {
id = 12345
}
```

## Argument Reference

* `id` - (Required) The ID of the Image Share Group.

## Attributes Reference

In addition to all arguments above, the following attributes are exported:

* `uuid` - The UUID of the Image Share Group.

* `label` - The label of the Image Share Group.

* `description` - The description of the Image Share Group.

* `is_suspended` - Whether the Image Share Group is suspended.

* `images_count` - The number of images in the Image Share Group.

* `members_count` - The number of members in the Image Share Group.

* `created` - The date and time the Image Share Group was created.

* `updated` - The date and time the Image Share Group was last updated.

* `expiry` - The date and time the Image Share Group will expire.
93 changes: 93 additions & 0 deletions docs/data-sources/producer_image_share_group_image_shares.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
page_title: "Linode: linode_producer_image_share_group_image_shares"
description: |-
Lists Images shared in the specified Image Share Group on your account.
---

# Data Source: linode\producer\_image\_share\_group\_image\_shares

Provides information about a list of Images shared in the specified Image Share Group that match a set of filters.
For more information, see the [Linode APIv4 docs](TODO).

## Example Usage

The following example shows how one might use this data source to list Images shared in an Image Share Group.

```hcl
data "linode_producer_image_share_group_image_shares" "all" {}

data "linode_producer_image_share_group_image_shares" "filtered" {
filter {
name = "label"
values = ["my-label"]
}
}

output "all-shared-images" {
value = data.linode_producer_image_share_group_image_shares.all.image_shares
}

output "filtered-shared-images" {
value = data.linode_producer_image_share_group_image_shares.filtered.image_shares
}
```

## Argument Reference

The following arguments are supported:

* `sharegroup_id` - (Required) The ID of the Image Share Group to list shared Images from.

* [`filter`](#filter) - (Optional) A set of filters used to select Image Share Groups that meet certain requirements.

### Filter

* `name` - (Required) The name of the field to filter by. See the [Filterable Fields section](#filterable-fields) for a complete list of filterable fields.

* `values` - (Required) A list of values for the filter to allow. These values should all be in string form.

* `match_by` - (Optional) The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)

## Attributes Reference

Each Image Share will be stored in the `images_shares` attribute and will export the following attributes:

* `id` - The unique ID assigned to this Image Share.

* `label` - The label of the Image Share.

* `capabilities` - The capabilities of the Image represented by the Image Share.

* `created` - When this Image Share was created.

* `deprecated` - Whether this Image is deprecated.

* `description` - A description of the Image Share.

* `is_public` - True if the Image is public.

* `image_sharing` - Details about image sharing, including who the image is shared with and by.
* `shared_with` - Details about who the image is shared with.
* `sharegroup_count` - The number of sharegroups the private image is present in.
* `sharegroup_list_url` - The GET api url to view the sharegroups in which the image is shared.
* `shared_by` - Details about who the image is shared by.
* `sharegroup_id` - The sharegroup_id from the im_ImageShare row.
* `sharegroup_uuid` - The sharegroup_uuid from the im_ImageShare row.
* `sharegroup_label` - The label from the associated im_ImageShareGroup row.
* `source_image_id` - The image id of the base image (will only be shown to producers, will be null for consumers).

* `size` - The minimum size this Image needs to deploy. Size is in MB. example: 2500

* `status` - The current status of this image. (`creating`, `pending_upload`, `available`)

* `type` - How the Image was created. Manual Images can be created at any time. "Automatic" Images are created automatically from a deleted Linode. (`manual`, `automatic`)

* `tags` - A list of customized tags.

* `total_size` - The total size of the image in all available regions.

## Filterable Fields

* `id`

* `label`
79 changes: 79 additions & 0 deletions docs/data-sources/producer_image_share_groups.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
page_title: "Linode: linode_producer_image_share_groups"
description: |-
Lists Image Share Groups on your account.
---

# Data Source: linode\producer\_image\_share\_groups

Provides information about a list of Image Share Groups that match a set of filters.
For more information, see the [Linode APIv4 docs](TODO).

## Example Usage

The following example shows how one might use this data source to list Image Share Groups.

```hcl
data "linode_producer_image_share_groups" "all" {}

data "linode_producer_image_share_groups" "filtered" {
filter {
name = "label"
values = ["my-label"]
}
}

output "all-share-groups" {
value = data.linode_producer_image_share_groups.all.image_share_groups
}

output "filtered-share-groups" {
value = data.linode_producer_image_share_groups.filtered.image_share_groups
}
```

## Argument Reference

The following arguments are supported:

* [`filter`](#filter) - (Optional) A set of filters used to select Image Share Groups that meet certain requirements.

### Filter

* `name` - (Required) The name of the field to filter by. See the [Filterable Fields section](#filterable-fields) for a complete list of filterable fields.

* `values` - (Required) A list of values for the filter to allow. These values should all be in string form.

* `match_by` - (Optional) The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)

## Attributes Reference

In addition to all arguments above, the following attributes are exported:

* `id` - The ID of the Image Share Group.

* `uuid` - The UUID of the Image Share Group.

* `label` - The label of the Image Share Group.

* `description` - The description of the Image Share Group.

* `is_suspended` - Whether the Image Share Group is suspended.

* `images_count` - The number of images in the Image Share Group.

* `members_count` - The number of members in the Image Share Group.

* `created` - The date and time the Image Share Group was created.

* `updated` - The date and time the Image Share Group was last updated.

* `expiry` - The date and time the Image Share Group will expire.

## Filterable Fields

* `id`

* `label`

* `is_suspended`
12 changes: 12 additions & 0 deletions docs/resources/image.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,18 @@ This resource exports the following attributes:

* `is_public` - True if the Image is public.

* `is_shared` - True if the Image is shared.

* `image_sharing` - Details about image sharing, including who the image is shared with and by.
* `shared_with` - Details about who the image is shared with.
* `sharegroup_count` - The number of sharegroups the private image is present in.
* `sharegroup_list_url` - The GET api url to view the sharegroups in which the image is shared.
* `shared_by` - Details about who the image is shared by.
* `sharegroup_id` - The sharegroup_id from the im_ImageShare row.
* `sharegroup_uuid` - The sharegroup_uuid from the im_ImageShare row.
* `sharegroup_label` - The label from the associated im_ImageShareGroup row.
* `source_image_id` - The image id of the base image (will only be shown to producers, will be null for consumers).

* `size` - The minimum size this Image needs to deploy. Size is in MB.

* `type` - How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode.
Expand Down
81 changes: 81 additions & 0 deletions docs/resources/producer_image_share_group.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
page_title: "Linode: linode_producer_image_share_group"
description: |-
Manages an Image Share Group.
---

# linode\producer\_image\_share\_group

Manages an Image Share Group.
For more information, see the [Linode APIv4 docs](TODO).

## Example Usage

Create an Image Share Group without any Images:

```terraform
resource "linode_producer_image_share_group" "test-empty" {
label = "my-image-share-group"
description = "My description."
}
```

Create an Image Share Group with one Image:

```terraform
resource "linode_producer_image_share_group" "test-images" {
label = "my-image-share-group"
description = "My description."
images = [
{
id = "private/12345"
label = "my-image"
description = "My image description."
},
]
}
```

## Argument Reference

The following arguments are supported:

* `label` - (Required) The label of the Image Share Group.

* `description` - (Optional) The description of the Image Share Group

* [`images`](#images) - (Optional) A list of Images to include in the Image Share Group.

## Attributes Reference

In addition to all the arguments above, the following attributes are exported.

* `id` - The ID of the Image Share Group.

* `uuid` - The UUID of the Image Share Group.

* `label` - The label of the Image Share Group.

* `description` - The description of the Image Share Group.

* `is_suspended` - Whether the Image Share Group is suspended.

* `images_count` - The number of images in the Image Share Group.

* `members_count` - The number of members in the Image Share Group.

* `created` - The date and time the Image Share Group was created.

* `updated` - The date and time the Image Share Group was last updated.

* `expiry` - The date and time the Image Share Group will expire.

### Images

Represents a single Image shared in an Image Share Group.

* `id` - (Required) The ID of the Image to share. This must be in the format `private/<image_id>`.

* `label` - (Optional) The label of the Image Share.

* `description` - (Optional) The description of the Image Share.
18 changes: 10 additions & 8 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@ require (
github.com/linode/linodego v1.57.0
github.com/linode/linodego/k8s v1.25.2
github.com/stretchr/testify v1.11.1
golang.org/x/crypto v0.41.0
golang.org/x/net v0.43.0
golang.org/x/crypto v0.42.0
golang.org/x/net v0.44.0
golang.org/x/sync v0.17.0
)

replace github.com/linode/linodego => github.com/ezilber-akamai/linodego v0.0.0-20251006201737-d25cd1461fd9

require (
github.com/ProtonMail/go-crypto v1.1.6 // indirect
github.com/agext/levenshtein v1.2.2 // indirect
Expand Down Expand Up @@ -101,13 +103,13 @@ require (
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
github.com/zclconf/go-cty v1.16.3 // indirect
golang.org/x/mod v0.26.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sys v0.35.0 // indirect
golang.org/x/term v0.34.0 // indirect
golang.org/x/text v0.28.0 // indirect
golang.org/x/mod v0.27.0 // indirect
golang.org/x/oauth2 v0.31.0 // indirect
golang.org/x/sys v0.36.0 // indirect
golang.org/x/term v0.35.0 // indirect
golang.org/x/text v0.29.0 // indirect
golang.org/x/time v0.6.0 // indirect
golang.org/x/tools v0.35.0 // indirect
golang.org/x/tools v0.36.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
google.golang.org/grpc v1.75.1 // indirect
Expand Down
Loading