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
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"
"errors"
"fmt"

Expand All @@ -16,6 +17,9 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/private_nic_datasource.md
var privateNicDataSourceDescription string

func DataSourcePrivateNIC() *schema.Resource {
// Generate datasource schema from resource
dsSchema := datasource.SchemaFromResourceSchema(ResourcePrivateNIC().SchemaFunc())
Expand All @@ -36,6 +40,7 @@ func DataSourcePrivateNIC() *schema.Resource {
return &schema.Resource{
ReadContext: DataSourceInstancePrivateNICRead,
Schema: dsSchema,
Description: privateNicDataSourceDescription,
}
}

Expand Down
2 changes: 2 additions & 0 deletions internal/services/instance/descriptions/image.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Creates and manages Scaleway Instance Images.
For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-images-list-instance-images).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about an instance image.
1 change: 1 addition & 0 deletions internal/services/instance/descriptions/ip.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Creates and manages Scaleway compute Instance IPs. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-ips-list-all-flexible-ips).
1 change: 1 addition & 0 deletions internal/services/instance/descriptions/ip_datasource.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about an instance IP.
3 changes: 3 additions & 0 deletions internal/services/instance/descriptions/ip_reverse_dns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manages Scaleway compute Instance IPs Reverse DNS.

Please check our [guide](https://www.scaleway.com/en/docs/compute/instances/how-to/configure-reverse-dns/) for more details
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Creates and manages Compute Instance Placement Groups. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-list-placement-groups).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about a Security Group.
2 changes: 2 additions & 0 deletions internal/services/instance/descriptions/private_nic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Creates and manages Scaleway Instance Private NICs. For more information, see
the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about an instance private NIC.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Creates and manages Scaleway compute Instance security groups. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-list-security-groups).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about a Security Group.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Creates and manages Scaleway compute Instance security group rules. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-list-security-groups).

This resource can be used to externalize rules from a `scaleway_instance_security_group` to solve circular dependency problems. When using this resource do not forget to set `external_rules = true` on the security group.

~> **Warning:** In order to guaranty rules order in a given security group only one scaleway_instance_security_group_rules is allowed per security group.
3 changes: 3 additions & 0 deletions internal/services/instance/descriptions/server.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Creates and manages Scaleway compute Instances. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-instances-list-all-instances).

Please check our [FAQ - Instances](https://www.scaleway.com/en/docs/faq/instances).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about an instance server.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about a server type.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about multiple instance servers.
3 changes: 3 additions & 0 deletions internal/services/instance/descriptions/snapshot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Creates and manages Scaleway Compute Snapshots.
For more information,
see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-snapshots-list-snapshots).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about an instance snapshot.
9 changes: 9 additions & 0 deletions internal/services/instance/descriptions/user_data.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Creates and manages Scaleway compute Instance User Data values.

User data is a key value store API you can use to provide data from and to your server without authentication. It is the mechanism by which a user can pass information contained in a local file to an Instance at launch time.

The typical use case is to pass something like a shell script or a configuration file as user data.

For more information about [user_data](https://www.scaleway.com/en/developers/api/instance/#path-user-data-list-user-data) check [our documentation guide](https://www.scaleway.com/en/docs/compute/instances/how-to/use-boot-modes/#how-to-use-cloud-init).

About cloud-init documentation please check [the official documentation](https://cloudinit.readthedocs.io/en/latest/).
2 changes: 2 additions & 0 deletions internal/services/instance/descriptions/volume.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Creates and manages Scaleway compute Instance Volumes.
For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-volumes-list-volumes).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Gets information about an instance volume.
5 changes: 5 additions & 0 deletions internal/services/instance/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
Expand All @@ -19,8 +20,12 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/image.md
var imageDescription string

func ResourceImage() *schema.Resource {
return &schema.Resource{
Description: imageDescription,
CreateContext: ResourceInstanceImageCreate,
ReadContext: ResourceInstanceImageRead,
UpdateContext: ResourceInstanceImageUpdate,
Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/image_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"
"fmt"
"sort"

Expand All @@ -15,10 +16,14 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/types"
)

//go:embed descriptions/image_datasource.md
var imageDataSourceDescription string

func DataSourceImage() *schema.Resource {
return &schema.Resource{
ReadContext: DataSourceInstanceImageRead,
SchemaFunc: dataSourceImageSchema,
Description: imageDataSourceDescription,
}
}

Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/ip.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand All @@ -14,8 +15,12 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/ip.md
var ipDescription string

func ResourceIP() *schema.Resource {
return &schema.Resource{
Description: ipDescription,
CreateContext: ResourceInstanceIPCreate,
ReadContext: ResourceInstanceIPRead,
UpdateContext: ResourceInstanceIPUpdate,
Expand Down
8 changes: 6 additions & 2 deletions internal/services/instance/ip_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand All @@ -15,6 +16,9 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/ip_datasource.md
var ipDataSourceDescription string

func DataSourceIP() *schema.Resource {
// Generate datasource schema from resource
dsSchema := datasource.SchemaFromResourceSchema(ResourceIP().SchemaFunc())
Expand All @@ -38,8 +42,8 @@ func DataSourceIP() *schema.Resource {

return &schema.Resource{
ReadContext: DataSourceInstanceIPRead,

Schema: dsSchema,
Description: ipDataSourceDescription,
Schema: dsSchema,
}
}

Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/ip_reverse_dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"
"fmt"

"github.com/hashicorp/terraform-plugin-log/tflog"
Expand All @@ -15,8 +16,12 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/locality/zonal"
)

//go:embed descriptions/ip_reverse_dns.md
var ipReverseDnsDescription string

func ResourceIPReverseDNS() *schema.Resource {
return &schema.Resource{
Description: ipReverseDnsDescription,
CreateContext: ResourceInstanceIPReverseDNSCreate,
ReadContext: ResourceInstanceIPReverseDNSRead,
UpdateContext: ResourceInstanceIPReverseDNSUpdate,
Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/placement_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand All @@ -14,8 +15,12 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/placement_group.md
var placementDescription string

func ResourcePlacementGroup() *schema.Resource {
return &schema.Resource{
Description: placementDescription,
CreateContext: ResourceInstancePlacementGroupCreate,
ReadContext: ResourceInstancePlacementGroupRead,
UpdateContext: ResourceInstancePlacementGroupUpdate,
Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/placement_group_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand All @@ -11,6 +12,9 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/placement_group_datasource.md
var placementGroupDataSourceDescription string

func DataSourcePlacementGroup() *schema.Resource {
// Generate datasource schema from resource
dsSchema := datasource.SchemaFromResourceSchema(ResourcePlacementGroup().SchemaFunc())
Expand All @@ -29,6 +33,7 @@ func DataSourcePlacementGroup() *schema.Resource {
return &schema.Resource{
ReadContext: DataSourcePlacementGroupRead,
Schema: dsSchema,
Description: placementGroupDataSourceDescription,
}
}

Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/private_nic.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"
"fmt"

"github.com/hashicorp/go-cty/cty"
Expand All @@ -20,8 +21,12 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/types"
)

//go:embed descriptions/private_nic.md
var privateNicDescription string

func ResourcePrivateNIC() *schema.Resource {
return &schema.Resource{
Description: privateNicDescription,
CreateContext: ResourceInstancePrivateNICCreate,
ReadContext: ResourceInstancePrivateNICRead,
UpdateContext: ResourceInstancePrivateNICUpdate,
Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/security_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"
"fmt"
"sort"

Expand All @@ -18,8 +19,12 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/security_group.md
var securityGroupDescription string

func ResourceSecurityGroup() *schema.Resource {
return &schema.Resource{
Description: securityGroupDescription,
CreateContext: ResourceInstanceSecurityGroupCreate,
ReadContext: ResourceInstanceSecurityGroupRead,
UpdateContext: ResourceInstanceSecurityGroupUpdate,
Expand Down
8 changes: 6 additions & 2 deletions internal/services/instance/security_group_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand All @@ -12,6 +13,9 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/security_group_datasource.md
var securityGroupDataSourceDescription string

func DataSourceSecurityGroup() *schema.Resource {
// Generate datasource schema from resource
dsSchema := datasource.SchemaFromResourceSchema(ResourceSecurityGroup().SchemaFunc())
Expand All @@ -30,8 +34,8 @@ func DataSourceSecurityGroup() *schema.Resource {

return &schema.Resource{
ReadContext: DataSourceInstanceSecurityGroupRead,

Schema: dsSchema,
Description: securityGroupDataSourceDescription,
Schema: dsSchema,
}
}

Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/security_group_rules.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,19 @@ package instance

import (
"context"
_ "embed"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
)

//go:embed descriptions/security_group_rules.md
var securityGroupRulesDescription string

func ResourceSecurityGroupRules() *schema.Resource {
return &schema.Resource{
Description: securityGroupRulesDescription,
CreateContext: ResourceInstanceSecurityGroupRulesCreate,
ReadContext: ResourceInstanceSecurityGroupRulesRead,
UpdateContext: ResourceInstanceSecurityGroupRulesUpdate,
Expand Down
5 changes: 5 additions & 0 deletions internal/services/instance/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package instance
import (
"bytes"
"context"
_ "embed"
"errors"
"fmt"
"io"
Expand Down Expand Up @@ -40,8 +41,12 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/server.md
var serverDescription string

func ResourceServer() *schema.Resource {
return &schema.Resource{
Description: serverDescription,
CreateContext: ResourceInstanceServerCreate,
ReadContext: ResourceInstanceServerRead,
UpdateContext: ResourceInstanceServerUpdate,
Expand Down
8 changes: 6 additions & 2 deletions internal/services/instance/server_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package instance

import (
"context"
_ "embed"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand All @@ -12,6 +13,9 @@ import (
"github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
)

//go:embed descriptions/server_datasource.md
var serverDataSourceDescription string

func DataSourceServer() *schema.Resource {
// Generate datasource schema from resource
dsSchema := datasource.SchemaFromResourceSchema(ResourceServer().SchemaFunc())
Expand All @@ -30,8 +34,8 @@ func DataSourceServer() *schema.Resource {

return &schema.Resource{
ReadContext: DataSourceInstanceServerRead,

Schema: dsSchema,
Description: serverDataSourceDescription,
Schema: dsSchema,
}
}

Expand Down
Loading
Loading