Skip to content

Commit

Permalink
chore: factorize apps schema
Browse files Browse the repository at this point in the history
  • Loading branch information
miton18 committed Nov 4, 2024
1 parent f9ba81b commit f6ea79d
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 164 deletions.
24 changes: 24 additions & 0 deletions pkg/attributes/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,30 @@ import (
"go.clever-cloud.com/terraform-provider/pkg"
)

type Runtime struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Dependencies types.Set `tfsdk:"dependencies"`
Deployment *Deployment `tfsdk:"deployment"`
Hooks *Hooks `tfsdk:"hooks"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`
}

// This attributes are used on several runtimes
var runtimeCommon = map[string]schema.Attribute{
// client provided
Expand Down
24 changes: 1 addition & 23 deletions pkg/resources/docker/resource_docker_schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,29 +19,7 @@ import (
)

type Docker struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Docker related
attributes.Runtime
Dockerfile types.String `tfsdk:"dockerfile"`
ContainerPort types.Int64 `tfsdk:"container_port"`
ContainerPortTCP types.Int64 `tfsdk:"container_port_tcp"`
Expand Down
24 changes: 1 addition & 23 deletions pkg/resources/java/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,7 @@ import (
)

type Java struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Java related
attributes.Runtime
JavaVersion types.String `tfsdk:"java_version"`
}

Expand Down
25 changes: 1 addition & 24 deletions pkg/resources/nodejs/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,7 @@ import (
)

type NodeJS struct {
// Common
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Node
attributes.Runtime
DevDependencies types.Bool `tfsdk:"dev_dependencies"`
StartScript types.String `tfsdk:"start_script"`
PackageManager types.String `tfsdk:"package_manager"`
Expand Down
24 changes: 1 addition & 23 deletions pkg/resources/php/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,7 @@ import (
)

type PHP struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// PHP related
attributes.Runtime
PHPVersion types.String `tfsdk:"php_version"`
WebRoot types.String `tfsdk:"webroot"`
RedisSessions types.Bool `tfsdk:"redis_sessions"`
Expand Down
25 changes: 1 addition & 24 deletions pkg/resources/python/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,7 @@ import (
)

type Python struct {
// Common
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Python
attributes.Runtime
PythonVersion types.String `tfsdk:"python_version"`
PipRequirements types.String `tfsdk:"pip_requirements"`
}
Expand Down
24 changes: 1 addition & 23 deletions pkg/resources/scala/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,13 @@ import (
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/resource"
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
"github.com/hashicorp/terraform-plugin-framework/types"
"go.clever-cloud.com/terraform-provider/pkg"
"go.clever-cloud.com/terraform-provider/pkg/application"
"go.clever-cloud.com/terraform-provider/pkg/attributes"
)

type Scala struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

attributes.Runtime
// Scala related
}

Expand Down
26 changes: 2 additions & 24 deletions pkg/resources/static/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,14 @@ import (
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/resource"
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
"github.com/hashicorp/terraform-plugin-framework/types"
"go.clever-cloud.com/terraform-provider/pkg"
"go.clever-cloud.com/terraform-provider/pkg/application"
"go.clever-cloud.com/terraform-provider/pkg/attributes"
)

type Static struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Scala related
attributes.Runtime
// Static related
}

//go:embed doc.md
Expand Down

0 comments on commit f6ea79d

Please sign in to comment.