You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
878 lines
23 KiB
878 lines
23 KiB
package schemas
|
|
|
|
import (
|
|
"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
|
|
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
|
|
"github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier"
|
|
"github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier"
|
|
"github.com/hashicorp/terraform-plugin-framework/schema/validator"
|
|
"github.com/hashicorp/terraform-plugin-framework/types"
|
|
)
|
|
|
|
func MakeSchemaResourceVINS() map[string]schema.Attribute {
|
|
return map[string]schema.Attribute{
|
|
// required attributes
|
|
"name": schema.StringAttribute{
|
|
Required: true,
|
|
Description: "vins name",
|
|
},
|
|
|
|
// optional attributes
|
|
"rg_id": schema.Int64Attribute{
|
|
Optional: true, // either rg_id or account_id must be specified
|
|
Computed: true,
|
|
Description: "resource group id, used for creating vins in resource group",
|
|
},
|
|
"account_id": schema.Int64Attribute{
|
|
Optional: true, // either rg_id or account_id must be specified
|
|
Computed: true,
|
|
Description: "account id, used for creating vins in account",
|
|
},
|
|
|
|
"ipcidr": schema.StringAttribute{
|
|
Optional: true,
|
|
Description: "private network IP CIDR, used for creating vins either in resource group or in account",
|
|
},
|
|
"pre_reservations_num": schema.Int64Attribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
Description: "number of pre created reservations, used for creating vins either in resource group or in account",
|
|
// default is 32
|
|
},
|
|
"description": schema.StringAttribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
Description: "description, used for creating vins either in resource group or in account",
|
|
// default is ""
|
|
},
|
|
"dns": schema.SetAttribute{
|
|
Optional: true,
|
|
ElementType: types.StringType,
|
|
Description: "list of DNS ip address",
|
|
},
|
|
|
|
"gid": schema.Int64Attribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
Description: "grid (platform) ID, used for creating vins in account",
|
|
},
|
|
|
|
"enable": schema.BoolAttribute{
|
|
Optional: true,
|
|
Description: "flag to enable/disable vins",
|
|
// default is true
|
|
},
|
|
"permanently": schema.BoolAttribute{
|
|
Optional: true,
|
|
Description: "flag to delete vins permanently",
|
|
// default is false
|
|
},
|
|
"force": schema.BoolAttribute{
|
|
Optional: true,
|
|
Description: "flag to force delete of non-empty vins",
|
|
// default is false
|
|
},
|
|
"restore": schema.BoolAttribute{
|
|
Optional: true,
|
|
Description: "flag to restore vins",
|
|
// default is false
|
|
},
|
|
"vnfdev_start": schema.BoolAttribute{
|
|
Optional: true,
|
|
Description: "true to start vnfdev, false to stop vnfdev",
|
|
// default is false
|
|
},
|
|
"vnfdev_reset": schema.BoolAttribute{
|
|
Optional: true,
|
|
Description: "reset ViNS's primary vnf device",
|
|
// default is false
|
|
},
|
|
"vnfdev_restart": schema.BoolAttribute{
|
|
Optional: true,
|
|
Description: "flag to restart vnfdev",
|
|
// default is false
|
|
},
|
|
"vnfdev_redeploy": schema.BoolAttribute{
|
|
Optional: true,
|
|
Description: "flag to redeploy vnfdev",
|
|
// default is false
|
|
},
|
|
|
|
"ext_net": schema.SingleNestedAttribute{
|
|
Optional: true,
|
|
Description: "connect/disconnect vins to/from external network",
|
|
Attributes: map[string]schema.Attribute{
|
|
"ext_net_id": schema.Int64Attribute{
|
|
Optional: true,
|
|
Description: "external network ID",
|
|
// default is -1
|
|
},
|
|
"ext_net_ip": schema.StringAttribute{
|
|
Optional: true,
|
|
Description: "directly set IP address",
|
|
// default is ""
|
|
},
|
|
},
|
|
},
|
|
"ip": schema.ListNestedAttribute{
|
|
Optional: true,
|
|
Description: "ip reserve/release",
|
|
NestedObject: schema.NestedAttributeObject{
|
|
Attributes: map[string]schema.Attribute{
|
|
"type": schema.StringAttribute{
|
|
Required: true,
|
|
Description: "type of the reservation",
|
|
Validators: []validator.String{
|
|
stringvalidator.OneOfCaseInsensitive("DHCP", "VIP", "EXCLUDED"), // case is ignored
|
|
},
|
|
},
|
|
"ip_addr": schema.StringAttribute{
|
|
Optional: true,
|
|
Description: "IP address to use. Non-empty string is required for type EXCLUDE. Ignored for types DHCP and VIP.",
|
|
},
|
|
"mac_addr": schema.StringAttribute{
|
|
Optional: true,
|
|
Description: "MAC address to associate with IP reservation. Ignored for type EXCLUDE, non-empty string is required for DHCP and VIP.",
|
|
},
|
|
"compute_id": schema.Int64Attribute{
|
|
Optional: true,
|
|
Description: "ID of the compute, associated with this reservation of type DHCP. Ignored for other types.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"nat_rule": schema.ListNestedAttribute{
|
|
Optional: true,
|
|
Description: "create/delete NAT (port forwarding rule) on vins",
|
|
NestedObject: schema.NestedAttributeObject{
|
|
Attributes: map[string]schema.Attribute{
|
|
"int_ip": schema.StringAttribute{
|
|
Required: true,
|
|
Description: "internal IP address to apply this rule to",
|
|
},
|
|
"int_port": schema.Int64Attribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
Description: "internal IP port number to use for this rule",
|
|
},
|
|
"ext_port_start": schema.Int64Attribute{
|
|
Required: true,
|
|
Description: "external IP start port to use for this rule",
|
|
},
|
|
"ext_port_end": schema.Int64Attribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
Description: "external IP end port to use for this rule",
|
|
},
|
|
"proto": schema.StringAttribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
Description: "IP protocol type (tcp or udp)",
|
|
Validators: []validator.String{
|
|
stringvalidator.OneOf("tcp", "udp"), // case is not ignored
|
|
},
|
|
},
|
|
"rule_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
Description: "rule id",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"default_qos": schema.SingleNestedAttribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"e_rate": schema.Int64Attribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
},
|
|
"guid": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"in_burst": schema.Int64Attribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
},
|
|
"in_rate": schema.Int64Attribute{
|
|
Optional: true,
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
|
|
// computed attributes
|
|
"id": schema.StringAttribute{
|
|
Computed: true,
|
|
PlanModifiers: []planmodifier.String{
|
|
stringplanmodifier.UseStateForUnknown(),
|
|
},
|
|
},
|
|
"vins_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
Description: "Unique ID of the ViNS. If ViNS ID is specified, then ViNS name, rg_id and account_id are ignored.",
|
|
},
|
|
"last_updated": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"vnf_dev": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"ckey": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"account_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"capabilities": schema.ListAttribute{
|
|
Computed: true,
|
|
ElementType: types.StringType,
|
|
},
|
|
"config": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"mgmt": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"ip_addr": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"password": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"ssh_key": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"user": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
"resources": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"cpu": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"ram": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"stack_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"uuid": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"config_saved": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"custom_precfg": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"description": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"gid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"interfaces": schema.ListNestedAttribute{
|
|
Computed: true,
|
|
NestedObject: schema.NestedAttributeObject{
|
|
Attributes: map[string]schema.Attribute{
|
|
"conn_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"conn_type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"def_gw": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"enabled": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"flipgroup_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"ip_address": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"listen_ssh": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"mac": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"name": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"net_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"net_mask": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"net_type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"node_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"pci_slot": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"qos": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"e_rate": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"in_burst": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"in_rate": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
"target": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"vnfs": schema.ListAttribute{
|
|
Computed: true,
|
|
ElementType: types.Int64Type,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"lock_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"meta": schema.ListAttribute{
|
|
Computed: true,
|
|
ElementType: types.StringType,
|
|
},
|
|
"milestones": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"name": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"tech_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"vnc_password": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"vins": schema.ListAttribute{
|
|
Computed: true,
|
|
ElementType: types.Int64Type,
|
|
},
|
|
},
|
|
},
|
|
"account_name": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"created_by": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"created_time": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"default_gw": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"deleted_by": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"deleted_time": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"lock_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"manager_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"manager_type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"milestones": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"net_mask": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"network": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"redundant": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"rg_name": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"sec_vnf_dev_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"updated_by": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"updated_time": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"user_managed": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"vnfs": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"dhcp": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"ckey": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"account_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"config": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"default_gw": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"dns": schema.ListAttribute{
|
|
Computed: true,
|
|
ElementType: types.StringType,
|
|
},
|
|
"ip_end": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"ip_start": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"lease": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"netmask": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"network": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"reservations": schema.ListNestedAttribute{
|
|
Computed: true,
|
|
NestedObject: schema.NestedAttributeObject{
|
|
Attributes: map[string]schema.Attribute{
|
|
"client_type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"desc": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"domainname": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"hostname": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"ip": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"mac": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"vm_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"created_time": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"devices": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"primary": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"dev_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"iface01": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"iface02": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"gid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"dhcp_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"lock_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"milestones": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"owner_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"owner_type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"pure_virtual": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"routes": schema.ListNestedAttribute{
|
|
Computed: true,
|
|
NestedObject: schema.NestedAttributeObject{
|
|
Attributes: map[string]schema.Attribute{
|
|
"route_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"compute_ids": schema.ListAttribute{
|
|
Computed: true,
|
|
ElementType: types.Int64Type,
|
|
},
|
|
"destination": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"gateway": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"netmask": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"tech_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
"gw": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"ckey": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"account_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"config": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"default_gw": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"ext_net_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"ext_net_ip": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"ext_netmask": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"qos": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"e_rate": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"in_burst": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"in_rate": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"created_time": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"devices": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"primary": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"dev_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"iface01": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"iface02": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"gid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"gw_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"lock_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"milestones": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"owner_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"owner_type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"pure_virtual": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"routes": schema.ListNestedAttribute{
|
|
Computed: true,
|
|
NestedObject: schema.NestedAttributeObject{
|
|
Attributes: map[string]schema.Attribute{
|
|
"compute_ids": schema.ListAttribute{
|
|
Computed: true,
|
|
ElementType: types.Int64Type,
|
|
},
|
|
"route_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"destination": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"netmask": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"gateway": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"tech_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
"nat": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"ckey": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"account_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"config": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"net_mask": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"network": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"rules": schema.ListNestedAttribute{
|
|
Computed: true,
|
|
NestedObject: schema.NestedAttributeObject{
|
|
Attributes: map[string]schema.Attribute{
|
|
"rule_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"local_ip": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"local_port": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"protocol": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"public_port_end": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"public_port_start": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"vm_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"vm_name": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"created_time": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"devices": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"primary": schema.SingleNestedAttribute{
|
|
Computed: true,
|
|
Attributes: map[string]schema.Attribute{
|
|
"dev_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"iface01": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"iface02": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"gid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"nat_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"lock_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"milestones": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"owner_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"owner_type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"pure_virtual": schema.BoolAttribute{
|
|
Computed: true,
|
|
},
|
|
"routes": schema.ListNestedAttribute{
|
|
Computed: true,
|
|
NestedObject: schema.NestedAttributeObject{
|
|
Attributes: map[string]schema.Attribute{
|
|
"compute_ids": schema.ListAttribute{
|
|
Computed: true,
|
|
ElementType: types.Int64Type,
|
|
},
|
|
"route_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
"guid": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"destination": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"netmask": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"gateway": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"tech_status": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
"type": schema.StringAttribute{
|
|
Computed: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"vxlan_id": schema.Int64Attribute{
|
|
Computed: true,
|
|
},
|
|
}
|
|
}
|